可以这样用吗?(50分)

  • 主题发起人 主题发起人 doud
  • 开始时间 开始时间
D

doud

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.WindowRun(FormC: TFormClass;FormF: TForm);
var
i: Integer;
Open_Flag: Boolean

begin
Open_Flag:=false;
for i:=0 to Self.MDIChildCount-1 do begin
if Self.MDIChildren is FormC then begin
Open_Flag:=true

end
end;
if Open_Flag then begin
FormF.WindowState:=wsMaximized;
FormF.Show;
end else begin
FormF:=FormC.Create(Self);
FormF.Show;
end;
end;

以上过程如Open_Flag = true 即执行第二次则 FormF.出错。
目的:MDI中创建某子窗口
是否不能这样操作应如何实现?
 
你的意图是要判断FormF是否存在,如果存在,就最大化显示,如果不存在,就创建它,是
吗?如果你要这样做的话,不要自己做判断标志,用Assigned()来判断,可省去巨多代码。
 
用FormF<>nil 判断不行吗?
 
不是判断的问题是

以上过程如Open_Flag = true 即执行第二次则 FormF.出错。
再次执行FormF.Show出错。

 
将定义这样改看行不行。
procedure TForm1.WindowRun(FormC: TFormClass;var FormF: TForm);
 
也一样!
 
多人接受答案了。
 
后退
顶部