这种多窗体方法我也用过,不是很好,
直接在一个窗体上用TPannel分放各个步骤的控件就行了,如果你的向导不是很复杂。
实在要用多窗体,可以在主窗体中统一控制,如:
...
Case frmStep2.ShowModal of //设置不同按钮的ModalResult=想要的值,为Integer;
  101:frmStep1.ShowModal;
  102:frmStep3.ShowModal;
  mrOK:完成;
  mrCancel:取消;
  xxx:...;
End;

解决方案 »

  1.   

    或者以下代码也可实现,不在主窗体中控制:
    procedure TForm2.Button1Click(Sender: TObject);
    begin
    Close;
    end;procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    Action:=caFree;
    end;procedure TForm2.FormDestroy(Sender: TObject);
    begin
    form3.ShowModal;
    end;
      

  2.   

    看看我的。
    我有四步。
    四个社会窗体均是在操作按纽创建。procedure TF_1.N22Click(Sender: TObject);
    begin
            N33.Click ; //close the all
            Try
                    F_4 := TF_4.Create( Self ) ;
                    F_5 := TF_5.Create( Self ) ;
                    F_6 := TF_6.Create( Self ) ;
                    F_7 := TF_7.Create( Self ) ;
                    F_4.ShowModal ;
            Finally                F_4.Free ;
                    F_5.Free ;
                    F_6.Free ;
                    F_7.Free ;         End ;                                                
                    
    end;第一个窗体
    中的下一步
    procedure TF_4.Button1Click(Sender: TObject);
    begin
            F_1.S_patid_F1 := Trim( Edit1.Text ) ;
            F_1.S_patname := Edit2.Text ;
            F_5.Show ;
            F_4.Hide ;
    end;
    第一个窗体取消操作procedure TF_4.Button3Click(Sender: TObject);
    begin
            Close ;
    end;
    第二个窗体下步操作。
    procedure TF_5.Button1Click(Sender: TObject);
    begin
            F_1.S_bcase := Edit2.Text ;
            F_1.S_bfeature := Edit3.Text ;
            F_1.S_bdrname := Edit4.Text ;
            F_1.S_bzyno := Edit7.Text ;
            F_6.Show ;
            F_5.Hide ;
    end;
    上一步操作procedure TF_5.Button2Click(Sender: TObject);
    begin
            F_4.Show ;
            F_5.Hide ;
    end;取消操作略
    中间差不多。
      

  3.   

    我其实就是一种让它隐藏方法。
    如果有其它的方法请告诉我
    [email protected]