procedure TForm1.Button1Click(Sender: TObject);
begin
  edit1.Text:=Form1.Name;
end;当程序运行时动态地创建一个Form ,因不知其名称是什么,所以不能用以上语句 'FormXXXX.Name'来获取,请问用什么语名获取或用什么方法解决???

解决方案 »

  1.   

    edit1.Text:='FormXXX'  :)倒是可以用caption:=application.FindComponent('Form1').Name;感觉脱了裤子放屁(比喻~~~)
      

  2.   

    兄弟误解了!
    我是想实现 edit1.Text:=('XXX').Name;  这一功能!!
      

  3.   

    edit1.Text:=application.FindComponent('xxx').Name;
    等于edit1.Text:='xxx'
      

  4.   

    这个不好说,比较现实的方法是动态创建的时候,自己对form的name属性赋值,调用的时候用楼上的方法
      

  5.   

    当程序运行时动态地创建一个Form ,因不知其名称是什么,所以不能用以上语句 'FormXXXX.Name'来获取,请问用什么语名获取或用什么方法解决???
    when you create a form, set the name property
    for example
    var
      frm :TForm;
    begin
      frm := TForm.Create(self);
      frm.Name := 'XXX';  //set name
      ...
    end;
      

  6.   

    动态创建一个Form ,可设置name
    ......
    edit1.Text:=application.FindComponent('xxx').Name;
      

  7.   

    for i := 0 to Pred(ComponentCount) do
    begin
      if Components[i].ClassName = 'TForm' then
        Memo1.Lines.Add(Components[i].Name);
    end;
      

  8.   

    当程序运行时动态地创建一个Form ,因不知其名称是什么
    ===============================================================
    你是说对象名吧?
      

  9.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin  
       if TButton(Sender).Parent is TForm then edit1.Text:=TButton(Sender).Parent.Name;
    end;
      

  10.   

    你创建了form之后
    procedure TForm1.Button1Click(Sender: TObject);
    var I:Integer;
    begin
        for I:=0 to screen.FormCount do
        begin
            edit2.Text:=edit2.Text+screen.Forms[I].Caption;
        end;
    end;
      

  11.   

    动态的form
    show 了之后添加这么一句也可以
    screen.ActiveForm.Name;//取屏幕上被激活的窗口