简单一些就这样:
var 
  proc1: TForm;case procID of
1: proc := TProc1.Create(self);
2: proc := TProc2.Create(self);
...
end;
proc.Show;

解决方案 »

  1.   

    难道就不能用一个函数,通过传递需要执行的表单名来执行,比如说:
     
    {异想天开的}
    domycreatform('myproc1');procedure domycreatform(string:myproc1)
    var
    proc1:Tform;
    begin
       proc1:={一句通用的表单建立语句};
       proc1.show;
    end;
    能实现这样的语句该多好!
      

  2.   

    使用工厂方法模式吧,COM中有详细的设计。
      

  3.   

    szAwei() 说的只是假想,却不知道能否实现
      

  4.   


    只需要人民币20元,你就可以获得本灌水机的程序和Visual C++源代码,并获得永久性技术支持。还等什么?灌水等着你!就在今夜!元宵佳节!(可怜我的信誉)
      

  5.   

    var
      proc:tform;
    begin
      application.CreateForm(tproc,proc);
      proc.show;
    end;执行一次建一个,form的name自动加_   完全可以控制还有,偶没经验,是偶瞎猜的
      

  6.   


    var
      Cli_MAIN: TCli_MAIN;implementation
     uses FRM_THEONEprocedure TCli_MAIN.N6Click(Sender: TObject);
    begin
    THEONE:=TTHEONE.Create(application);
    THEONE.ShowModel;
    THEONE.free;//释放资源,如果THEONE上有多个图片,多开几次后一定会报资源不够的………………………………………………经典噢
    end;
      

  7.   

    var
      a : array[0..100] of TFormClass;// Initialize
    a[0] := TForm1;
    a[1] := TForm2;
    ...
    // Create;
    var
      AForm: TForm;AForm := a[procID].Create(Application);
    AForm.Show;