Implementation. ConstructorTGraphicButton.Create(AOwner:TComponent);
...
Constructor TGraphicButton.Create(AOwner:TComponent);
Begin
inherited Create(AOwner); // вызываем унаследованный конструктор
FButtonColor:=clwhite; // цвет кнопки – белый
FBorderColor:=clblack; // цвет рамки – черный
FOverColor:=clyellow; // цвет при наведении указателя мыши – желтый
FButtonText:='Кнопка'; // текст кнопки
Color:=ButtonColor; // текущий цвет – ButtonColor – белый
end;
…
Для того чтобы мы могли использовать константы цвета clWhite, clBlack, clYellow – необходимо подключить модуль Graphics в разделе uses:
…
Interface
Uses
SysUtils, Classes, Controls, Graphics;
…
Для того чтобы компонент изменял свой цвет при наведении указателя мыши, мы должны переопределить и реализовать метод MouseMove компонента:
…
Protected
…
Procedure MouseMove(ShiftState:TShiftState;X,Y:integer); override;
…
Implementation
…
Procedure TGraphicButton.MouseMove(ShiftState:TShiftState;X,Y:integer);
Begin
Color:=OverColor; // текущим цветом становится цвет OverColor (цвет при наведении)
// вызываем унаследованный метод MouseMove, так как он запускает событие OnMouseMove
// если этого не сделать, то обработчик события OnMouseMove просто не будет запускаться –
// механизм события не будет работать
inherited MouseMove(ShiftState,X,Y);
end;
…
При наведении указателя мыши на область графической кнопки ее цвет изменится. Для того чтобы вернуть первоначальный цвет ButtonColor, после того как указатель покинет графическую область кнопки – необходимо объявить и реализовать обработчик сообщения CM_MOUSELEAVE операционной системы:
…
Дата добавления: 2015-09-18 | Просмотры: 512 | Нарушение авторских прав
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
|