昨天我提了这个问题,答案不怎么满意,我想今天有人能给我满意的答案。
在mainform中有“确定”按钮,可以显示form2窗口,用的是showmodal方法,在form2也有“确定”按钮,可以显示form3,用的也是showmodal方法。此时,按下form2的“确定”,应该关闭form2,并显示form3,可是这一点做不到,请问哪位高手有好的方法,比如调用API函数等,请给出具体的源代码。
但不我不希望用旁门邪道,什么隐藏form2,设置form2的left属性啊,这样的请不要回答。

解决方案 »

  1.   

    设置form2确定的modalresult =mrOk
    form1确定
      if  form2.ShowModal=1 then
       form3.showmodal 
      

  2.   

    form2.modalresult:=100;
    form3:=tform3.create(application);
    try
      if form3.showmodal=mrok then
        {do somethint};
    finally
      form3.free;
      form3:=nil;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      form2.ShowModal;
    end;procedure TForm2.Button1Click(Sender: TObject);
    begin
      Hide;
      form3.ShowModal;
      Show;// close;
    end;
      

  4.   

    我试了一下OK啦
    MainForm和Form2的按钮的ModalResut都设置成mrOk
    MainForm的按钮事件
    procedure TMainForm.Button1Click(Sender: TObject);
    begin
      try
       form2.showmodal;
      finally
        case form2.ModalResult of
        mrOK:
          begin
            try
             form3.ShowModal;
            finally
            end;
          end;
        end;
      end;
    end;
      

  5.   

    MainForm的“确定”按钮的Click方法:
    if (某条件被满足) then begin
       ModalResult:=mrOK;
       with TForm2.Create(Application) do begin
         ShowModal;
         Free;
       end;
    end;
    Form2的“确定”按钮的Click方法:
    if (某协条件被满足) then begin
       ModalResult:=mrOK;
       with TForm3.Create(Application) do begin
         ShowModal;
         Free;
       end;
    end;