真是大白天见鬼了,怎么不能这样做,给出方法立即给分,最迟明天晚上!(100分)

随缘

Unregistered / Unconfirmed
GUEST, unregistred user!
我建了一个fsMDIForm类型的窗口;三个fsMDIChild类型的窗口。
我用如下方法启动fsMDIChild类型窗口:
//调用MDI窗口
procedure ShowMdiForm(SMdiForm: TForm; TSMdiForm: TFormClass);
begin
if not Assigned(SMdiForm) then
SMdiForm := TSMdiForm.Create(Application);
if SMdiForm.WindowState=wsMinimized then SMdiForm.WindowState := wsNormal
else
begin
SMdiForm.Top := 0;
SMdiForm.Left := 0;
SMdiForm.Refresh;
SMdiForm.Show;
end;
end;

问题在下面:
1、三个fsMDIChild类型他们不能相互访问数值。如:
Form2.Edit1.Text := Form1.Edit3.Text;
2、在编译时在某个fsMDIChild窗口中写如下代码通过,如:
Edit.Width := Form2.Width;
但一运行到此就通不过!

我已在Uses中加入相关数据;启动时用的TFormClass与建立时是一样的!
 
1、三个fsMDIChild类型他们不能相互访问数值。如:
Form2.Edit1.Text := Form1.Edit3.Text;
//是否已建立form1,只是uses不行!
2、在编译时在某个fsMDIChild窗口中写如下代码通过,如:
Edit.Width := Form2.Width;
//是否已建立form2,只是uses不行!
 
你的fsMDIchildForm时动态创建的,是不是你相互访问时,窗体还没有被创建?
 
同意上面两位的说法。
 
要三个fsMDIChild能互相访问,则在访问前三个fsMDIChild都应该已经建立了!
 
看看你的"project->option->application form"
 
if Assigned(Form1) then
Form2.Edit1.Text := Form1.Edit3.Text;
if Assigned(Form2) then
Edit.Width := Form2.Width;
 
又或者可以使用几个全局变量嘛
 
声明三个变量,自己创建显示。
 
顶部