+ -
当前位置:首页 → 问答吧 → 如何在Form1修改Form2的Caption属性?

如何在Form1修改Form2的Caption属性?

时间:2011-10-11

来源:互联网

如题目所说
我在Form1的BitBtn1Click(Sender: TObject)函数中新建了Form1 Application.CreateForm(TForm2,Form2);
那么,我如何在Form1的另一个函数 DBGrid1DblClick(Sender: TObject);中修改Form2的Caption??

作者: named_fish   发布时间: 2011-10-11

在Form1中引用form2后,直接修改即可:
Application.CreateForm(TForm2,Form2);
form2.caption:='我的窗体';

作者: babydog01   发布时间: 2011-10-11

楼主在Form1中,定义变量Form2时,不要在BitBtn1Click事件里定义,要把Form2定义为一个全局的变量,这样的话,你在Form1中任意一个地方都可以对它进行操作了。但操作前,别忘了对它是否存在先检测一下,否则,出现访问地址错误:Delphi(Pascal) code
 if Assigned(Form2) then begin
   //操作的语句...
 end;

作者: gzzai   发布时间: 2011-10-11

按上述办法定义了form2后,即可在DBGrid1DblClick的事件这样处理了:Delphi(Pascal) code
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
 if Assigned(Form2) then begin
   Form2.Caption:='新的标题';
 end;
end;

作者: gzzai   发布时间: 2011-10-11

得罪了(请谅!),当你连何谓全局都不懂:

Delphi(Pascal) code


......

var
  Form1: TForm1;

implementation
uses unit2;
var  Form2:TForm2;//在这里定义,Form2就是全局的了。

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 if Assigned(Form2) then begin
   //操作的语句...
 end;
end;

......

end.

作者: gzzai   发布时间: 2011-10-11

楼上 说的好详细啊..


不过不要

var Form2了, uses了以后 可以直接使用 Form2

作者: warrially   发布时间: 2011-10-11

引用 5 楼 warrially 的回复:
楼上 说的好详细啊..


不过不要

var Form2了, uses了以后 可以直接使用 Form2

君没见,楼主:
引用楼主 named_fish 的回复:
...函数中新建了Form1 Application.CreateForm(TForm2,Form2)...
在动态建立该窗体时,要使用Form2这个变量吗?

作者: gzzai   发布时间: 2011-10-11