+ -
当前位置:首页 → 问答吧 → 请问怎样在初始化时设置方法?

请问怎样在初始化时设置方法?

时间:2011-11-17

来源:互联网

Form2
procedure TForm2.test2();
begin
  ShowMessage('test2');
end;  


Form1调用Form2

procedure TForm1.test1();
begin
  ShowMessage('test1');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 vForm:TForm2;
begin
vForm:= TForm2.Create(self);
vForm.test2:=test1; 这边要怎么写呢?
vForm.ShowModal;
end;

初始化时,想替换Form2的test2为Form1的test1方法



作者: life923   发布时间: 2011-11-17

form2 uses form1 在需要用test1的地方 form1.test1

作者: garnel   发布时间: 2011-11-18

方法很多除了1L另外
delphi里是可以使用函数指针的
http://wenku.baidu.com/view/c713d1cca1c7aa00b52acb75.html

作者: funxu   发布时间: 2011-11-18

引用 1 楼 garnel 的回复:
form2 uses form1 在需要用test1的地方 form1.test1


不是 我是想在 form1控制 form2不动

作者: life923   发布时间: 2011-11-18

这么做:先定义一个类型
TTestCall = procedure of object;
然后在Form2里面声明一个公共变量
FTest2: TTestCall;

你在Test2里面直接调用FTest2;

在form1里面让
vForm.Ftest2 := test1;
就可以了。

作者: AnSunny   发布时间: 2011-11-18

使用继承;
Form1继承TForm2,可以直接使用基类方法,也可以重写

作者: kaikai_kk   发布时间: 2011-11-18