我在Project->Options… 中的Forms 一页把Form2放置在 Available forms中,保留Form1在Auto-create forms中,让Form1在程序一开始运行就创建。
在form1中定义
procedure TForm1.ButtonClick(Sender: TObject);
// if not Assigned(form2) then Form2:= TForm2.create(application);
Application.CreateForm(TForm2,Form2);
Form1.Show ;
end;在form2中定义
procedure TForm2.FormCreate(Sender: TObject);
begin
label1.Caption :='asdf';
end;
可是form2中的label1总是不能更新
在form1中定义
procedure TForm1.ButtonClick(Sender: TObject);
// if not Assigned(form2) then Form2:= TForm2.create(application);
Application.CreateForm(TForm2,Form2);
Form1.Show ;
end;在form2中定义
procedure TForm2.FormCreate(Sender: TObject);
begin
label1.Caption :='asdf';
end;
可是form2中的label1总是不能更新
Form1:=TForm1.Create(Self);
Form2.label1.Caption :='asdf';
Form1.Show;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
label1.Caption :='asdf';
end; 上面的两个label1.Caption :='asdf';应该都可以
在form1中
form1.show改为form2.show;
我试 了就是不成功
能不能在说的详细一点
楼主可以考虑下,自己调试语句,也可以用showmessage,看看语句是否执行
或者,是否onshow中有对label又做初始化,或者,索性把form2Create中的事件写到onShow事件中去 !
begin
Form2 := TForm2.Create(Application);
Form2.Show();
end;procedure TForm2.FormCreate(Sender: TObject);
begin
Label1.Caption := 'abc';
end;在Form1中创建,没有一点问题啊。注意:Form2 := TForm2.Create(Application),而不是 Create(Self),即父容器是Application而不是Form1。