frmMain,form2,form3三个窗体,总体上是frmMain调用form2,form2调用form3,form3需要和form2通讯
frmMain中uses form2 //创建form2窗体
Application.CreateForm(Tform2,form2);
form2.ShowModal;
form2.free;form2中use form3//创建form3窗体
Application.CreateForm(Tform3,form3);
form3.ShowModal;
form3.free;form3中也同样use form2(在implementation中)
//需要和form2互相访问
form2.Edit1.text:=form3.Edit2.text;上述一切正常,但是要是frmMain创建form2时用以下代码动态创建,
var form2:Tform2;
begin
form2:=Tform2.Create(self);//用Create(application)、Create(nil)都试过
form2.ShowModal;
form2.free;
end;则在form2.Edit1.text:=form3.Edit2.text;这行代码中报告内存错误,这是
form3不能访问form2了,虽然引用了form2的单元,这是为什么?
frmMain中uses form2 //创建form2窗体
Application.CreateForm(Tform2,form2);
form2.ShowModal;
form2.free;form2中use form3//创建form3窗体
Application.CreateForm(Tform3,form3);
form3.ShowModal;
form3.free;form3中也同样use form2(在implementation中)
//需要和form2互相访问
form2.Edit1.text:=form3.Edit2.text;上述一切正常,但是要是frmMain创建form2时用以下代码动态创建,
var form2:Tform2;
begin
form2:=Tform2.Create(self);//用Create(application)、Create(nil)都试过
form2.ShowModal;
form2.free;
end;则在form2.Edit1.text:=form3.Edit2.text;这行代码中报告内存错误,这是
form3不能访问form2了,虽然引用了form2的单元,这是为什么?
begin
form2:=Tform2.Create(self);//用Create(application)、Create(nil)都试过
form2.ShowModal;
form2.free; //注释这个试试
end;
form2.Edit1.text:=form3.Edit2.text;
这个和 form3 所在的单元能不能访问 form2 所在的单元没关系啊
先搞清楚自己想干嘛吧
Application.handle 是应用的一个全局变量,如果用Tform2.Create(self)创建
就不归Application.handle管,不在一个主窗体下,当然有问题
将self换成Application.handle,试一试就知道了