Form2
procedure TForm2.test2();
begin
  ShowMessage('test2');
end;  
Form1调用Form2procedure 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方法

解决方案 »

  1.   

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

  2.   

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

  3.   


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

  4.   

    这么做:先定义一个类型
    TTestCall = procedure of object;
    然后在Form2里面声明一个公共变量
    FTest2: TTestCall;你在Test2里面直接调用FTest2;在form1里面让
    vForm.Ftest2 := test1;
    就可以了。
      

  5.   

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