Вниз
Скачать: CL | DM;

Помогите с созданием компонента   Найти похожие ветки 

 
tytus   (2006-03-21 13:22) [0]

Добрый день мастера. Пытаюсь создать наследник TCustomControl (в нем есть канва и хендл). Мне нужно чтобы было что-то похожее на Button, но чтобы были события OnMouseEnter и OnMouseLeave. Сообщения компонентом перехватываются (CM_MOUSEENTER...), но только компонент не прорисовывается на форме. Как правильно сие оформить?


 
clickmaker ©   (2006-03-21 13:25) [1]

Перекрыть Paint и в нем рисовать


 
tytus   (2006-03-21 13:29) [2]

>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:30) [3]


> tytus   (21.03.06 13:29) [2]

а что должно быть?


 
tytus   (2006-03-21 13:33) [4]

>[2]
Frame3D рисует 3D рамку вокруг компонента у которого есть канва.(ExtCtrls)


 
balepa ©   (2006-03-21 13:38) [5]

Может еще inherited после
ClRect:=BoundsRect;
Frame3D(Canvas,clRect,FOnColor,FBottomColor,2);


 
tytus   (2006-03-21 13:42) [6]

и еще, когда устанавливаю компонент, то выдается ошибка <Abstract Error>


 
MBo ©   (2006-03-21 13:43) [7]

Ну рисуется уголок слева-вверху. Так что ищи ошибку у себя

 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;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.032 c
15-1142243603
Lock
2006-03-13 12:53
2006.04.02
Delphi 8 Arhitect, ECO- проекты


2-1142863112
Tonich
2006-03-20 16:58
2006.04.02
C++


2-1142520097
Fenix
2006-03-16 17:41
2006.04.02
Динамически создать ListView


2-1142807079
Farpik
2006-03-20 01:24
2006.04.02
Блокировать клавиши.


2-1142950916
RomanH
2006-03-21 17:21
2006.04.02
MDI Окна




   Наверх