起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 267|回复: 12

show窗体释放问题

[复制链接]
发表于 2009-10-21 13:39:25 | 显示全部楼层 |阅读模式
在主窗体中用show打开一个非模式窗体

begin
     lDayNoteForm:=TDD_YXRZJL.Create(Context);
     try
            DataGrid2.Enabled:=false;
            lDayNoteForm.Show;
     finally
             end;
end;

在TDD_YXRZJL窗体释放自己:
procedure TDD_YXRZJL.BizFormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
     self.free;
end;

procedure TDD_YXRZJL.BizFormDestroy(Sender: TObject);
begin
     self:=nil;
end;

主窗体的onclose事件,判断非模式窗体是否存在:
if  (lDayNoteForm<>nil) then
    begin
     lDayNoteForm.visible:=false;
     lDayNoteForm.parent:=nil;
     lDayNoteForm.free;
     lDayNoteForm:=nil;
  
现在如果非模式窗体关闭后,再关闭主窗体,lDayNoteForm<>nil为true,执行后面的语句就会报错。
在主窗体关闭时要怎么判断非模式窗体是否关闭了?
回复

使用道具 举报

发表于 2009-10-21 13:46:45 | 显示全部楼层
你把下面的过程去掉,创建和释放仅仅在主窗体中做。
------在TDD_YXRZJL窗体释放自己:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-21 14:35:55 | 显示全部楼层
主窗体要判断是否非模式窗体在打开状态的话要怎么做
回复 支持 反对

使用道具 举报

发表于 2009-10-21 14:51:33 | 显示全部楼层
楼主,你要做这个判断是基于什么需要呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-21 14:53:35 | 显示全部楼层
如果非模式窗体处在打开状态,主窗体的某个控件要不可用
回复 支持 反对

使用道具 举报

发表于 2009-10-21 14:54:39 | 显示全部楼层
哦,那你可以定义一个变量来记录,弹出的窗体时show还是showmodal,或者show的时候直接让那个按钮失效。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-21 15:26:11 | 显示全部楼层
关闭非模式窗体的时候这个按钮要重新可用,这个要怎么写
回复 支持 反对

使用道具 举报

发表于 2009-10-21 16:42:52 | 显示全部楼层
在被关闭窗体里面要操作按钮所在窗体。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-21 16:50:45 | 显示全部楼层
具体怎么写啊?
回复 支持 反对

使用道具 举报

发表于 2009-10-21 16:56:53 | 显示全部楼层
谁创建谁释放
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 06:37 , Processed in 0.044899 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表