关于类的设计 我想设计一个类,是一个带一个image 的tabsheet。 我不知道怎么写构造函数比较合适,另外,我要把image的双击事件封装在类里面,不知怎么写,最好能有个例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TYourClss=class(TTabSheet);private FOnImgDbClk: TNotifyEvent; Img: TImage; procedure ImgDbClick(Sender: TObject); //...public constructor Create(AOwner: TComponet); override;published property OnImgDbClick: TNotifyEvent read FOnImgDbClk write FOnImgDbClk;//.....................TYourClss.ImgDbClick(Sender: TObject);begin if Assigned(FOnImgDbClk) then FonImgDbClk(Self);end; constructor ....begin Inherited; Img := TImage.Create(Self); Img.Parent := Self;end;destructor...begin Img.Free; inherited;end; 多谢赐教,还烦请解释一下为什么 “if Assigned(FOnImgDbClk) then FonImgDbClk(Self);”可以将FOnImgDbClk与ImgDbClick联系起来,怎么就能接受双击的消息了呢 “if Assigned(FOnImgDbClk) then FonImgDbClk(Self);”可以将FOnImgDbClk与ImgDbClick联系起来,这是 TNotifyEvent 的原理, Inside VCL.怎么就能接受双击的消息了呢界面上写代码,调用时的执行 我知道事件方法是个指针,但这段代码里FOnImgDbClk是我要设计的属性,ImgDbClick是我要设计的方法,我完全可以另外起个名字叫个FAAAAA什么的,我想问的是他们是怎么接受双击时间的? FonImgDbClk(Self); 鼠标双击,发送消息,响应事件 那我响应双击的事件写在if Assigned(FOnImgDbClk) then FonImgDbClk(Self);”下面? 构造函数中少东西了constructor ....begin Inherited; Img := TImage.Create(Self); Img.Parent := Self; Img.ONDbClick:=ImgDbClick; //这样就联系起来了end; 以luyuhai(大海)的为基础 constructor ....begin Inherited; Img := TImage.Create(Self); Img.Parent := Self; Img.alient := alClient; Img.show(); Img.ONDbClick:=ImgDbClick; //这样就联系起来了end;Img.ondbclick := ImgDbClick的意思就是在控件内部用imgDblClick方法相应image的onclick事件,然后在imgDblClick方法中触发yourclass类的某个事件句柄。我前一阵子写了一个关于控件开发的教程,讲的比较清楚,希望对你有帮助,可以去我的blog上看看,地址:http://www.blogjava.net/huanzhugege/ delphi真难啊。 如何把OleVariant数据保存到文件中??? 多年没来Delphi版发贴了, 散分(三). 求设计方法 树形结构的数据库设计和查询 ADOConnection1的难题,请教高手指点谜经?在线等待~~~~~~~ 求一段代码:实现类似QQ登录窗口可删除的ComboBox 急用!谁能帮我解决阿,谢谢! 关于屏蔽WebBrowser菜单 Delphi7中Sql修改语句怎麽写?(急) 请问下面的小程序在什么情况下才会出错? 期待高手: TClientSocket 如何接收记录类型(record)? xml的一个小问题(急)
private
FOnImgDbClk: TNotifyEvent;
Img: TImage;
procedure ImgDbClick(Sender: TObject);
//...
public
constructor Create(AOwner: TComponet); override;
published
property OnImgDbClick: TNotifyEvent read FOnImgDbClk write FOnImgDbClk;
//.....................
TYourClss.ImgDbClick(Sender: TObject);
begin
if Assigned(FOnImgDbClk) then
FonImgDbClk(Self);
end;
constructor ....
begin
Inherited;
Img := TImage.Create(Self);
Img.Parent := Self;
end;
destructor...
begin
Img.Free;
inherited;
end;
“if Assigned(FOnImgDbClk) then FonImgDbClk(Self);”可以将FOnImgDbClk与ImgDbClick联系起来,
这是 TNotifyEvent 的原理, Inside VCL.怎么就能接受双击的消息了呢界面上写代码,调用时的执行
鼠标双击,发送消息,响应事件
begin
Inherited;
Img := TImage.Create(Self);
Img.Parent := Self;
Img.ONDbClick:=ImgDbClick; //这样就联系起来了
end;
constructor ....
begin
Inherited;
Img := TImage.Create(Self);
Img.Parent := Self;
Img.alient := alClient;
Img.show();
Img.ONDbClick:=ImgDbClick; //这样就联系起来了
end;
Img.ondbclick := ImgDbClick的意思就是在控件内部用imgDblClick方法相应image的onclick事件,然后在imgDblClick方法中触发yourclass类的某个事件句柄。
我前一阵子写了一个关于控件开发的教程,讲的比较清楚,希望对你有帮助,可以去我的blog上看看,地址:http://www.blogjava.net/huanzhugege/