调用close但不能关闭窗口的问题

johnson529 2004-09-16 10:26:38
我写了个小程序,向软盘中拷贝文件。窗口是模态的。但写软盘后,模态窗口点击关闭按钮却不能关闭了。
请问为什么?有哪位遇到过,帮我解决一下
...全文
461 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tensionli 2004-09-29
  • 打赏
  • 举报
回复
用freeandnil(form1)
jeetliang 2004-09-29
  • 打赏
  • 举报
回复
1按钮是复制的吗,可能在click内是其它的代码。
2:如果是mdichid form --在onclose 内写出action:=cafree;
GoldShield 2004-09-29
  • 打赏
  • 举报
回复
canclose:=True;
johnson529 2004-09-29
  • 打赏
  • 举报
回复
是这样的:
MainForm。show (主窗体)
writeFloppyForm。showmodal (子窗体)
writeFloppyForm。XXOnClick (copy some files to floppy)
。。。。。。。。。。。。。。。。。。。这时我多次点击主窗体,出现不响应状态
showMessage('copy finished');
writeFloppyForm。close() (关闭子窗体)

这种情况下关闭不了
budded 2004-09-17
  • 打赏
  • 举报
回复
或许你的程序在写的过程中,就已经死掉了,
劣势 2004-09-17
  • 打赏
  • 举报
回复
你的主窗体是模态的还是,调用写软盘的窗体是模态的,主窗体是模态的,没有什么好说的,close是可以执行的,即使不用Action操作
如果是调用窗体是模态
可以这样做,在调用处这样:
with TFormSaveFile.create(application) do
try
....//初始化信息
showmodal;
finally
Free;
end;

在模态状态窗体中的‘确定’按钮上,写代码
begin
ModalResult := MrOK;
end;
wywry 2004-09-17
  • 打赏
  • 举报
回复
在close的事件中写:Action:=caFree;
在Destory事件中写:Form1:=Nil
tfxg 2004-09-16
  • 打赏
  • 举报
回复
if form1<>nil then
begin
form1=nil;
form1.free;
end;

5,402

社区成员

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

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