IZONE- http://www.izcity.com/- бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Нестандартный интерфейс - просто! Часть вторая

Данила Лепихин

Второй вариант - используем все тот же Label и Shape. Shape интересен тем, что кроме фона (свойство Brush) имеет границу (Pen), а также тем, что может быть как прямоугольной, так и овальной (круглой) формы. Рисуем прямоугольник в нужном месте на форме, устанавливаем размеры: Height=41, Width=129. Цвет фона Brush->Color изменяем на 0x00A00000. Теперь граница - открываем набор свойств Pen, в поле свойства Color вводим значение 0x00FF8080, в поле свойства Width - 3. Обратимся к свойству Shape, здесь имеется набор констант, придающих вашей кнопке различные формы: круг (stCircle), эллипс (stEllipse), прямоугольник (stRectangle), скругленный прямоугольник (stRoundRect) и два квадрата - скругленный и простой. Форма - дело вкуса, я выбрал для наглядности эллипс. Приступим к надписи. Её необходимо поместить поверх эллипса. Установим размеры: Height=25, Width=113. Для того чтобы фон надписи не мешал нам, делаем ее прозрачной: свойство Transparent переключаем на True. Цвет шрифта (Font->Color) выбираем 0x00C08000, размер шрифта лучше увеличить, скажем, до 12. Естественно, чтобы надпись находилась посередине кнопки, необходимо свойство Alignment изменить на taCenter, а Layout на tlCenter, Autosize отключим. Код практически аналогичен приведенному в предыдущем примере. В обработчике событий надписи OnMouseMove пишем:

if(Label1->Tag==0) {
Label1->Font->Color=clAqua; // Изменяем цвет шрифта
Shape1->Brush->Color=0x00АА8080; // Изменяем цвет фона
Shape1->Pen->Color=clFuchia; // Изменяем цвет границы
Label1->Tag=1;
}

Для того, чтобы "покинутая" мышью кнопка возвратила свои начальные цвета, в обработчике событий формы OnMouseMove вводим строки:

if(Label1->Tag==1) {
Label1->Font->Color=0x00С08000;
Shape1->Brush->Color=0x00A00000;
Shape1->Pen->Color=0x00АА8080;
Label1->Tag=0;
}

Также по аналогии с предыдущим примером обрабатываем событие надписи OnMouseDown:

Label1->Font->Color=0x00Ф00000;
Shape1->Brush->Color=clBlack;
Shape1->Pen->Color=clPurple;

и событие OnMouseUp:

Label1->Font->Color=clAqua;
Shape1->Brush->Color=0x00A00000;
Shape1->Pen->Color=clFuchia;

Теперь при соответствующих событиях наша кнопка меняет цвета фона, границы и шрифта! Здесь надо заметить, что это далеко не все, что можно менять в такой кнопке. Так как самые очевидные вещи далеко не всегда замечаются, хочу обратить ваше внимание на то, что кроме цветов кнопки можно изменять ее форму, размер шрифта (и даже сам шрифт), толщину границы, одним словом все свойства использованных нами компонентов. Возможности широчайшие и скомбинировав свойства соответствующим образом, можно добиться потрясающих эффектов.

Cайт автора: http://www.ldbsoft.nm.ru/

 


Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com