读书人

关于MDI窗体的创建解决方案

发布时间: 2012-02-13 17:20:26 作者: rapoo

关于MDI窗体的创建
procedure TfmKT_Main.Action_CreateYjycExecute(Sender: TObject);
var
fmYjycMian:TfmKT_Yjyc_Main;
begin
//fmYjycMian:=nil;
if not Assigned(fmYjycMian) then
begin
fmYjycMian:=TfmKT_Yjyc_Main.Create(Application);
fmYjycMian.Show;
end;
end;

实在是搞不定了.我用的是delphi2006.TfmKT_Yjyc_Main是MDI子窗体,想手工创建,已经从auto_create forms里面移到available forms里去了.想让TfmKT_Yjyc_Main只创建一个实例,从网上查了N久,都说用not Assigned,可是我弄了半天却不行,执行了if not Assigned(fmYjycMian) then 就结束了.为什么?请各位指教.


[解决办法]
fmYjycMian你定义成了局部变量,这里应该不用的
在TfmYjycMian的单元文件里面,应该有一个
fmYjycMian的全局变量
所以你只要引用单元就行了!
procedure TfmKT_Main.Action_CreateYjycExecute(Sender: TObject);
begin
if not Assigned(fmYjycMian) then
begin
fmYjycMian:=TfmKT_Yjyc_Main.Create(Application);
fmYjycMian.Show;
end;
end;

在TTfmKT_Main.OnClose上加上:
Action := caFree;
fmYjycMian := nil;

读书人网 >.NET

热点推荐