![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с созданием компонента [D7, XP]
tytus © (2006-03-21 13:22:00)Добрый день мастера. Пытаюсь создать наследник TCustomControl (в нем есть канва и хендл). Мне нужно чтобы было что-то похожее на Button, но чтобы были события OnMouseEnter и OnMouseLeave. Сообщения компонентом перехватываются (CM_MOUSEENTER...), но только компонент не прорисовывается на форме. Как правильно сие оформить?
MBo (2006-03-21 13:43:00) [1]Ну рисуется уголок слева-вверху. Так что ищи ошибку у себя
TMy=class(TCustomControl)
protected
procedure Paint; override;
end;
procedure TMy.Paint;
var
R: TRect;
begin
R:=BoundsRect;
Frame3D(Canvas, R, clGreen, clWhite, 3);
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
with TMy.Create(Self) do begin
Parent:=Self;
BoundsRect:=Rect(10,10,100,100);
end;
end;
tytus (2006-03-21 13:42:00) [2]и еще, когда устанавливаю компонент, то выдается ошибка <Abstract Error>
balepa (2006-03-21 13:38:00) [3]Может еще inherited после
ClRect:=BoundsRect;
Frame3D(Canvas,clRect,FOnColor,FBottomColor,2);
tytus (2006-03-21 13:33:00) [4]>[2]
Frame3D рисует 3D рамку вокруг компонента у которого есть канва.(ExtCtrls)
clickmaker (2006-03-21 13:30:00) [5]
> tytus (21.03.06 13:29) [2]
а что должно быть?
tytus (2006-03-21 13:29:00) [6]>clickmaster[1]
protected
{ Protected declarations }
procedure Paint;override;
...
procedure TClButton.Paint;
var
ClRect:TRect;
begin
ClRect:=BoundsRect;
Frame3D(Canvas,clRect,FOnColor,FBottomColor,2);
end;
... и ничеГО!!!
clickmaker (2006-03-21 13:25:00) [7]Перекрыть Paint и в нем рисовать