我想动态地创建TImage
控件,然后拖放它们。但是如果我想将用于拖动的过程分配给此Image的一个事件,它会给我:
错误:为调用“ClickEvent”指定的参数数目错误
下面是我的代码:
procedure ClickEvent(Sender:TObject; Button:TMouseButton; Shift:TShiftstate; X,Y:Integer);
begin
if Button = mbLeft then TControl(Sender).BeginDrag(False);
end;
在这里,我创建Image并添加属性:
procedure SpawnCard(Ort:TWinControl; sKarte:TKarteClass; Liste: Array of TKarte; BilderListe:Array of TCustomImage);
var
Bild:TImage;
begin
Liste[High(Liste)]:=sKarte.Create();
Bild:=TImage.Create(Combat);
with Bild do
begin
OnMouseDown:=ClickEvent;
Parent:=Ort;
Top:=1;
Left:=200*length(BilderListe);
width:=200;
height:=300;
Proportional:=True;
Stretch:=True;
Picture.LoadFromFile(Liste[High(Liste)].PicPath);
end;
BilderListe[High(BilderListe)]:=Bild;
end;
我不想调用ClickEvent
,我只想把它赋给事件。
1条答案
按热度按时间8yparm6h1#
TImage.OnMouseDown
(继承自其父类TControl
)是一个TMouseEvent
属性。正如您所看到的,它被声明为“of object”,这意味着它需要一个方法指针(请参见Method Pointers section)。
范例1:
在窗体(或任何其他对象)上声明
ClickEvent
:然后,您可以按如下方式指定它:
范例2:
将
ClickEvent
声明为class method:然后,您可以按如下方式指定它: