我要实现的功能是传一个form的name给这个函数是个string型的,然后实现
var Form:TFormPay;   // 我只传入一个string型的FormPay
begin
   Form:=TFormPay.Create(nil);
   Form.Show;
end;
欢迎大家指点

解决方案 »

  1.   

    可以,
    先注册窗体, Form1var TempForm:Tform;
        FormName ; String
    begin
      FormName := 'Tform1'
      TempForm := TFormclass(FindClass(FormName)).Create(application);
    Try
      TempForm.ShowModal;
    Finally
      TempForm.Free;
    End;
      

  2.   

    不是有Screen.Forms可以查找窗口吗,试试吧
      

  3.   

    楼上lzniam() 的代码好像不行呀
    ---------------------------
    Project a.exe raised exception class EClassNotFound with message 'Class Tform1 not found'. Process stopped. Use Step or Run to continue.
      

  4.   

    To lw549(★★★★★★★★★★) (
     现注册窗体
      RegisterClasse(Tform1),就可以了
      

  5.   

    呵呵,我明白了,我误会了楼主的意思,也误会你的意思了。我的观点是Form这个变量无法动态更改。谢谢:lzniam()
      

  6.   

    可以,RegisterClasse(Tform1)然后再运行你的代码就可以。
      

  7.   

    请问怎样注册Tform1,怎样操作
      

  8.   

    我猜你的意思,这个API应该可以满足你的要求:
    function CreateAndShowFormModal(const AOwner: TComponent; const TfrmClass: TCustomFormClass): TModalResult;
    begin
      with TfrmClass.Create(AOwner) do
      try
        Name := ClassName + IntToStr(Handle);
        Result := ShowModal;
      finally
        Free;
      end;
    end;其中,TCustomFormClass声明如下
    type
    TCustomFormClass = class of TCustomForm;引用如下:
    CreateAndShowFormModal(Self, TFormPay);
      

  9.   

    先注册窗体, Form1var TempForm:Tform;
        FormName ; String
    begin
      FormName := 'Tform1'
      TempForm := TFormclass(FindClass(FormName)).Create(application);
    Try
      TempForm.ShowModal;
    Finally
      TempForm.Free;
    End;
      

  10.   

    baguli(巴古里)
      这样我从数据库里取出来的,formName是个字符串,我怎么解决,而在这个函数中必须是个form类
      

  11.   

    该可以分两步:
    1、首先注册Form类,譬如你有TForm2,TForm3俩类,可以这样:
    ...
    RegisterClasses([TForm2, TForm3]);
    ...
    2、然后从数据库中取出FormName字符串:
    var AForm: TClass;
        FormName: string;
    ...
      //从数据库取出FormName
      FormName := Table1.FieldByName('FormName').AsString;  //假设表为Table1,字段名为FormName
      AForm := FindClass(FormName);
      if Assigned(AForm) then
        CreateAndShowFormModal(Self, TCustomFormClass(AForm));