procedure test(frmname:Tform);
begin
  showmessage(frmname.caption);
end;

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    test(form1);end;
      

  2.   

    To:zsy_good
    这是什么呀?窗口名是一个字符串,是从数据库中取出的!!!如何通过该字符串创建窗口?
      

  3.   

    icesnow0(lsicesnower) ,窗口还没创建,这函数有用吗?
      

  4.   

    var
      k1:TForm;
      SomeWindow:String;
    begin
    if   SomeWindow='thisisatest' then
     begin
      k1:=thisisatest.create(application);
    k1.name:=somewindow;
    k1.show
      .
    end
    if somewindows=....
    end;
      

  5.   

    你完全可能通过类名实现这样的功能:
    var
    oForm :TForm;
    FormArray :array[0..3] of TFormClass=(TfrmA,TfrmB,TfrmC,TfrmD);
    FormName :array[0..3] of string=('名1','名2','名3','名4');用查字典的方法找到相应的index(不用我说了吧),然后:
     oFrom  := FormArray[i].Create(Application);
     oForm.ShowModal;
    .....
      

  6.   

    嘿嘿,俺刚学的:Type
      TFormRef = class TForm;
    var
      FormRef: TFormRef;
      FormInstance: TForm;  FormRef:= FindClass('你从数据库中取出的String');
      FormInstance := FormRef.Create(nil);
      FormInstance.ShowModal;FormRef是类的引用,FormInstance是实例的引用。必须说明这不是一个良好的设计模式。
      

  7.   

    阿,要改一下,把
    Type
      TFormRef = class TForm;
    改成
    Type
      TFormRef = class of TForm;sorry //blush
      

  8.   

    FormRef:= FindClass('你从数据库中取出的String');
    应改成:
    FormRef:= TFormRef(FindClass('Form3'));
    吧,否则编译通不过!但还是不行,提示Class Form3 not found是否意味Form3要已经创建了,这样FindClass才找得到?
      

  9.   

    Delphi中好像不能实现你需要的功能
      

  10.   

    这贴子还在这里...Delphi生成Form的实例需要事先有一个对应的类的。
    FormRef是类的引用,FormInstance是对象的引用。
    缺省情况下Form实例对应的类名应该是T + 对象名针对你的情况,把
    FormRef := TFormRef(FindClass('Form3'));
    改成
    FormRef := TFormRef(FindClass('TForm3'));
    应该就可以了。
      

  11.   

    //给出PB的例子!
    choose case '窗口名'
      case 'as'
        open(w_one)
      case 'two'
        open(w_two)
    end choose何况,PB也要先建立窗口,才可以
    w_old ls_window
    open(w_old,ls_window)
      

  12.   

    只是建议:
      "在PB中,能够以窗口的名称,如‘w_main’(注意:这是一个字符串),不知在Delphi中如何实现?"这句搞不懂??????????
      问题提出总让人觉得说的不连贯,兄弟,以后拜托说清楚点
      可能与我一样,不太重视语文吧?哈哈....
      

  13.   

    ideage(莲花宝典) ,PB中当然可以实现,你看看:
    建一个窗口W_mian作为基类,其他的窗口从他继承,则w_1 w_main  //定义一个W_main类型的变量w_1代表所有继承的窗口
    open(w_1, ls_winname)
    这我已经用过很多年了,没一点问题的tangwen829(吻工资) ,我这句话写掉了几个字,呵呵,应该是:
    在PB中,能够以窗口的名称,如‘w_main’(注意:这是一个字符串)打开该窗口,不知在Delphi中如何实现?