本人通过一个按钮产生几个TForm1的窗体,每个窗体都有命名,如frm1,frm2,frm3...frm10.如果本人只知道第八个窗体的名字,如何显示出第八个窗体。代码如下:
button1.click事件:
   var
     frm:TFom1;
   begin
     frm:=TForm1.Create(self);
     frm.Name=frm+IntToStr(i);
     i++;(为全局变量);
   end;
在用上面代码产生10个窗体后,我若想显示出第8个窗体,要如何实现,望高手指点一二,不盛感激。

解决方案 »

  1.   

    if assigned(FormName) then
    FormName.show
    else begin
            FormName:=TForm1.create(nil);
            FormName.show;
         end;
      

  2.   

    to  winxkm(蹩脚的程序员) :
       大哥,窗体名是字符的,怎么可以这样写:FormName.Show
      

  3.   

    to :winxkm(蹩脚的程序员)
        老大,窗体名是字符串类型,怎么可以这么写:FormName.Show(),晕!
      

  4.   

    用TForm1(FindComponent('formnameString')).show;
      

  5.   

    to winxkm(蹩脚的程序员) :
        首先很感谢你再次出手相助,可是你那样也是不行的,会出错。
      

  6.   

    你可以直接用frm.show呀,为什么要用字符串?
      

  7.   

    不好意思我给的代码改正一下!
        WF:=TForm1.Create(self);
        WF.Name:='winxkm';
        TForm1(FindComponent('winxkm')).show;
    测试没问题!注意 在Create的时候一定要将Form1指为他的父类!
      

  8.   

    to :winxkm(蹩脚的程序员) 
        非常感谢,问题已经解决了。我想问一下,创建完之后,为什么为转换成TForm1类型再显示呢?为什么不直接写WF.Show呢?
      

  9.   

    WF:=TForm1.Create(self);
        WF.Name:='winxkm';
        TForm1(FindComponent('winxkm')).show;
    测试没问题!注意 在Create的时候一定要将Form1指为他的父类!