想在主窗体mainform中调用子窗体(用一个edit输入窗体编码,然后按钮就调用子窗体),因为子窗体太多,有60多个,不想用if then来判断,想用一段程序来实现,不知道哪位做过类似的程序,谢谢了!
要用到如下代码:if not assigned(f_A1101) then
       begin
        application.CreateForm(tf_A1101,f_A1101);
        try
        f_A1101.showmodal;
        finally
        FreeAndNil(f_A1101);
        end;
       end
      else
        f_A1101.show;

解决方案 »

  1.   

    能否给出具体点的代码,谢谢,关键是application.createform(TXXX,XXX);
    XXX.showmodal;这一步很不好实现,能否给出一个具体点的!谢谢
      

  2.   

    procedure TForm1.createmyform(FormClass: TFormClass; var reference);
    begin
        application.CreateForm(FormClass,reference);
        try
         Tform(reference).ShowModal;
       finally
         Tform(reference).Free;
       end;
    end;
    传入参数就可以创建了,例如:createmyform(Tform3,form3);
      

  3.   

    做一个通用的过程呀
    prodedure OpenForm(formclass : TFormclass;var Form);
    begin
      if not assigned(TForm(Form)) then
      begin
        application.CreateForm(formclass,Form);
         //以后是你的操作
      end;
    end;
      

  4.   

    Procedure OpenModalForm(AForm:TFormClass);
    Begin
      With AForm.Create(nil) do
      try
        ShowModal;
      finally
        Free;
      end;
    End;
    还可以定义自己的openchildform
      

  5.   

    各位大哥,关键是从edit中传过来的参数呀,如果我有Tform3,form3,我还要这个函数干什么,我的意思是如何把edit中的参数变成tform3与form3,如果这个处理不了,还是要写if then 语句的!