由于需要,有时需要动态创建一个form。
为以便于说明,下面举例:
比如form2我show了两个。在打开的一个窗体中,我打开了form3窗体,form3中有一个按钮,给form2中的edit1.text赋一个值。
我不想让两个form2窗体都被赋上值,请问这样的功能如何实现,需要注意一些什么?
欢迎大家讨论并帮我解决问题。

解决方案 »

  1.   

    Delphi根据你创建窗口的次序,给窗口自动命名,默认情况下,Form.Name有以下规律:
    第一次创建的窗口名为Form2
    第二次 Form2_1
    第三次 Form2_2
    ....如果楼主不喜欢的话,可以自定义Form.Name属性
    procedure TForm3.Button1Click(Sender: TObject);
    begin
      tag := tag + 1;  form2 := tform2.Create(self);
      form2.Name :=  'f' + inttostr(tag);
      form2.Show;
    end;
    大致意思就是这样。
      

  2.   


    form3 := tform2.Create(form2);
    類似如此, 然後, 在form3 直接訪問它自己的parent
    如:
     if Assigned(Form3.Parent) then
     begin
       (Form3.Parent as TForm2).edit.text := 'xxx';
     end;