首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-02-13 
关于MDI窗体的创建procedure TfmKT_Main.Action_CreateYjycExecute(Sender: TObject)varfmYjycMian:TfmKT

关于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;

热点排行