有三个form
form1为主窗体.
form2中有个事件打开form3.
我想要在form3中填完资料后点击按钮才能用form2.
也就是form3要比较强制性显示.直到点击form3的完成按钮.

解决方案 »

  1.   

    不行的..关闭后回来form2后onactivate事件不能触发呀.?
      

  2.   

    不行的..关闭后回来form2后onactivate事件不能触发呀.?
    -------------------------------------------
    因为form2本来就是active的。你是不是要在form3关闭的时候在form2上执行一些代码,如果是这样的话,可以这样:form3 unit的interface部分定义一个event:
    type
         TYourEvent = procedure (Sender: TObject{;还可以加很多参数}) of object;Tform3定义的private部分定义一个变量:
         FOnYour: TYourEvent;
    public部分定义一个属性:
         property OnYour: TYourEvent read FOnYour write FOnYour;form3的OnClose过程中执行:
         if Assigned(FOnYour) then
              FOnYour(Sender{,还可以加很多参数});Tform2的private部分定义一个过程,过程的参数和上面的TYourEvent一致:
         procedure Form3Your(Sender: TObject{;还可以加很多参数});form2中调用form3的ShowModal之前(必须在form3创建后)给form3的OnYour属性赋值,指定你定义的过程:
         Form3.OnYour := Form3Your;然后你就可以在procedure TForm2.Form3Your(Sender: TObject{;还可以加很多参数})的过程中添加你的处理代码。
    procedure TForm2.Form3Your(Sender: TObject{;还可以加很多参数});
    begin
         //你的代码
    end;
    -------------------------------------------
    以上代码实际上就是定义了一个你自己的事件并处理。
      

  3.   

    我有些看不懂.但是第一句话讲到点了."因为form2本来就是active的"这就是问题的根源.
    我会慢慢地直到看懂你说的.
    谢谢了.