一个窗体frm1
有控件Edit1
      Button
当输入EDit1 = 'frm2' 时
   单击button 时 frm2的窗体就会打开
当输入EDit1 = 'frm3' 时
   单击button 时 frm3的窗体就会打开
(frm2和frm3...等都是原有的,不是动态新生成的)

解决方案 »

  1.   

    if Edit1.text='frm2' then
      frm2.show;
    if Edit1.text='frm3' then
      frm3.show;
      

  2.   

    var
      dd:tcomponent;
    begin
      dd:=application.FindComponent(trim(edit1.Text));
      if application.FindComponent(trim(edit1.Text))<>nil then
      begin
        tform(dd).show;
      end;
    如果你的窗体都已经创建了
    assignform(TForm2,Form2,'Form2');
    //第一个参数是窗体类名,第二个参数是实例名称,第三个参数是窗体名称function assignform(i_class:TComponentClass;var Reference;i_formname:string):boolean;
    begin
      result:=false;
      if application.FindComponent(i_formname)=nil then
      begin
        try
          application.CreateForm(i_class,Reference);
          result:=true;
        except
          result:=false;
        end;
      end;
      

  3.   

    if (Edit1.Text = 'Frm1') then 
        Frm1.show;其他窗体类同!