比如,我有一个form2,我想动态创建它
现在ss:=‘form2’,(ss:string);
我如果只通过ss,如何创建出form2呢

解决方案 »

  1.   

    按f8  程序会单步运行  你会看到form1的创建过程  复制一变到form1里就可以创建form2
      

  2.   

    要用的时候
       application.createform(Tform2,form2);
       form2.showmodal;
       form2.free;
      

  3.   

    const
      Count = 2;
      Classes: array[0..Count - 1] of TFormClass =
    (TForm2, TForm3);
    var
      I: Integer;
    begin
      for I := 0 to Count - 1 do
        if Classes[I].Name = Table1.FieldByName('FormName').AsString then
          with TForm(Classes[I].Create(Self)) do try
            ShowModal;
            Break;
          finally
            Free;
          end;
    end;
      

  4.   

    //想要控制所有的Form的属性吗?
    uses
      TypInfo;
    {GetPropStr().....}
      

  5.   

    zswang(zs):
       谢谢! 
      

  6.   

    procedure TFrmDemo.Button1Click(Sender: TObject);
    var
      TmpForm:TForm;
    begin
      TmpForm := TForm.Create(nil);
      with TmpForm do
      begin
        Name := //你从你的数据库里面取出来的Frm名字;
        Caption := 'sssss';
        Height:= 20;
        Width:= 60;
        Left:= MXPos;
        Top:= MYPos;
        ..等属性
      end;
      TmpForm.Show;
    end;