这是一个组件包装的一个Form,在同一个单元里
:
:
TForm1 = class(TForm)
btnMyButton: TButton;
btnCancel: TButton;
:
:
end;
:
:
TMyCtrl = class(TComponent)
private
frmMyForm : TForm1;
:
: protected
procedure doMySomethings;
public
constructor create(aowner: TComponent); override;
destructor Destroy; override;
procedure showMyForm;
published
:
end; :
:
procedure TMyCtrl.showMyForm;
begin
frmMyForm:=TForm1.Create(Application);
try
frmMyForm.ShowModal;
finally
frmMyForm.Free;
end;
end;现在的问题是:
在类TForm1中的btnMyButton的onclick事件中如何调用类TMyCtrl的成员:doMySomethings。要求是:
1.不使用全局变量
2.不使用动态指定事件
:
:
TForm1 = class(TForm)
btnMyButton: TButton;
btnCancel: TButton;
:
:
end;
:
:
TMyCtrl = class(TComponent)
private
frmMyForm : TForm1;
:
: protected
procedure doMySomethings;
public
constructor create(aowner: TComponent); override;
destructor Destroy; override;
procedure showMyForm;
published
:
end; :
:
procedure TMyCtrl.showMyForm;
begin
frmMyForm:=TForm1.Create(Application);
try
frmMyForm.ShowModal;
finally
frmMyForm.Free;
end;
end;现在的问题是:
在类TForm1中的btnMyButton的onclick事件中如何调用类TMyCtrl的成员:doMySomethings。要求是:
1.不使用全局变量
2.不使用动态指定事件
解决方案 »
- 求救,一个菜鸟问题???
- 如何限制双击form上边的标题栏最大化?(在线等待!)
- 排序问题
- 用delphi调用word的问题,如何新建一个word文档
- 我想做一个程序,检测windwos是否安装了.net的frmaework,mdac2.7和ie6,请教怎么作啊
- 在窗体上有一combobox控件,请问是执行formcreate事件,还是....
- Name not unique in this context 问题!!急急!
- Delphi制作多语种工程的问题
- 已按字段一进行排序,如何同时对字段二进行排序???????????
- 百万火急,想给100分,可是我没办法,只能给50分.
- 请问在做分布式多层应用的朋友,是用MIDAS呢还是用MTS/COM+?
- 我用的数据库是ms server200,在delphi中设置了查询,怎么把结果输出到excel中?
begin
如何调用doMySomethings????????????????end;
private
frmMyForm : TForm1;
:
:
TForm1类是TMyCtrl类的一个成员
click:tnotifyevent;
procedure onclick(sender:tobject);procedure tmyctrl.create
begin
....
click:=onclick;
form1.button1.onclick:=click;
....
end;proceudre tmyctrl.onlick(sender:tobject);
begin
......
end;
form1.button1.onclick:=click;
需在form1 create后调用
但doMySomethings是TMyCtrl的实例方法,所以你通过类名称引用来调用的话,
编译的时候是通不过的。解决的方法是把doMySomethings定义成类方法,就可以调用了,
不过类方法中,只能调用类变量