如何真正关闭已存在的窗口?

happyhong 2003-08-18 10:26:41
我用了以下语句:
if assigned(cSFrm) then cSFrm.close;

cSFrm:=TcSFrm.Create(application);
cSFrm.Position:= poscreencenter;
cSFrm.Show;

我的意思是想运行以上语句,检测到窗口打开,就会关闭,但是好像没有真正关闭窗口,
运行多几次就会吃光内存,怎么回事?
...全文
36 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
racesun 2003-08-19
  • 打赏
  • 举报
回复
active:=caFree;
csfrm:=nil;
happyhong 2003-08-19
  • 打赏
  • 举报
回复
我试过了,用crossbow(La Vida Es Amor) 的方法没事,OK了,放分
Zhymax 2003-08-18
  • 打赏
  • 举报
回复
同意 huojiehai(海天子)
vchoushen6 2003-08-18
  • 打赏
  • 举报
回复
在FORM的CLOSE事件里写上:
ACTION:=CAFREE;
crossbow 2003-08-18
  • 打赏
  • 举报
回复
if assigned(cSFrm) then
begin
cSFrm.close;
FreeAndNil(csFrm);
end;

FrameSniper 2003-08-18
  • 打赏
  • 举报
回复
释放窗口需要两个步骤,第一步是释放堆中对象实体,使用Free,然后接下来是释放栈中对象指针Form:=Nil

可以使用一个函数 FreeAndNil(Form)
itlcx 2003-08-18
  • 打赏
  • 举报
回复
試一下這個:
if csfrm<>nil then
begin
csfrm=nil;
csfrm:=Tcsfrm.create(self);
csfrm.show;
end;
huojiehai 2003-08-18
  • 打赏
  • 举报
回复
if assigned(cSFrm) then
begin
cSFrm.close;
csFrm.Free;
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧