我想在form1中调用form2中的botton单击事件的过程,但老是出错,我是如下操作的:首先新建一个from2 ,加一个button,单击并写如下代码:procedure TForm2.Button1Click(Sender: TObject);
 var message1:string;
begin
 begin
  message1:='hello i am from form2';
  showmessage(message1);
 end;
end;然后把这个 procedure TForm2.Button1Click(Sender: TObject); 放到 unit2的public中。接着我在unit1 的use中加入 unit2,最后在form1的一个button事件中加入如下代码:procedure TForm1.Button10Click(Sender: TObject);
begin
 unit2.Button1Click(Sender: TObject)
end;我主要是看看可不可以在一个form中调用另一个form的过程,如果可以的话,那应该显示message1中的字符串 hello i am  from form2 才对啊。可是提示[Error] Unit1.pas(205): Undeclared identifier: 'Button1Click'。请问什么原因啊,本人刚学delphi,这个问题是不是很笨!

解决方案 »

  1.   

    肯定可以的,应该是FORM2.Button1Click(nil);
      

  2.   

    你的Buitton1Click函数是类TForm2的一个Public普通函数而非类函数,所以只能使用“变量.Button1Click()”的调用形式。如果Button1Click是定义在Unit2单元中的一个公共函数(而不是类的成员函数),则可以使用unit2.Button1Click(Sender: TObject) 的形式调用。
      

  3.   

    我所说的“变量.Button1Click()”中的“变量”的类型是TForm2的类型。
    另外,如果你将其定义成一个类函数(不是类的成员函数),即函数前加Class关键字,则可以使用TForm2.Button1Click形式来调用。
      

  4.   

    一般是这样调用的FORM2.Button1Click(nil);