在窗体SHOW时怎么不能关闭窗体的

gaden007 2001-11-30 10:34:09
procedure TForm1.FormShow(Sender: TObject);
begin
Close;
end;
是不能关闭的,为什么呢?
...全文
309 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaden007 2001-11-30
  • 打赏
  • 举报
回复
adailee(不谈恋爱的铅笔) ,我也知道这样不好,我也想过,不过因为我不止要做这些事,还要做其它的事,所以不能在创建时做
Focus(老鱼) 请问怎样做呢?
adailee 2001-11-30
  • 打赏
  • 举报
回复
的确不能在OnShow事件中写代码,除非这个Form是Application的第一个窗体。

但是你可以这样处理。
(1)不让Form2自动创建。
(2)Form1调用Form2,这样写
Form2:=TForm2.Creatr(self);
if ... then
Form2.show
else
Form2.free;


另外,你这样的设计似乎不是很好。
这个窗体可以设计为处理你的纪录,如果没有数据纪录,
完全没有必要创建这个窗体,消耗资源。把判断过程独立出来,
把窗体功能集中一下,比较优化,也比较好维护。
adailee 2001-11-30
  • 打赏
  • 举报
回复
的却不能在OnShow事件中写代码,除非这个Form是Application的第一个窗体。

但是你可以这样处理。
(1)不让Form2自动创建。
(2)Form1调用Form2,这样写
Form2:=TForm2.Creatr(self);
if ... then
Form2.show
else
Form2.free;


另外,你这样的设计似乎不是很好。
这个窗体可以设计为处理你的纪录,如果没有数据纪录,
完全没有比较创建这个窗体,消耗资源。把判断过程独立出来,
把窗体功能集中一下,比较优化,也比较好维护。
tianchh 2001-11-30
  • 打赏
  • 举报
回复
时间上有冲突吧。
gaden007 2001-11-30
  • 打赏
  • 举报
回复
原来这样,那FORMSHOW之后会发生什么呢?我在PAINT里写是可以,不过有闪烁效果
okhai 2001-11-30
  • 打赏
  • 举报
回复
你试试把form的top设置一下,看不到窗体就行了,然后再show一下,判断符不符合你的要求,符合的话,把top改一下,不符合的话就close.
shinesi 2001-11-30
  • 打赏
  • 举报
回复
can't close on Formshow,you must use Timer to close Form
alec_ma 2001-11-30
  • 打赏
  • 举报
回复
是不给在show 的时候关闭的。
gaden007 2001-11-30
  • 打赏
  • 举报
回复
AP() ,应该不是我的程序问题,因为我在其它地方也是一样的写,就是在SHOW时写不行,你可以试下
gaden007 2001-11-30
  • 打赏
  • 举报
回复
谢谢adailee(不谈恋爱的铅笔),我要在窗体SHOW时看下我的数据库有没有我想要的纪录,如果没有就关闭窗体,有则显示
AP 2001-11-30
  • 打赏
  • 举报
回复
你的程序的问题
adailee 2001-11-30
  • 打赏
  • 举报
回复
不会吧,你是试试看再说。
黑颈 2001-11-30
  • 打赏
  • 举报
回复
应该不能关闭,这是Windows机制造成的
adailee 2001-11-30
  • 打赏
  • 举报
回复
完全可以关闭嘛。详细说说你的情况。
gaden007 2001-11-30
  • 打赏
  • 举报
回复
因为要在做窗体show之前做一些事,再判断结果,所以要这样做
alec_ma 2001-11-30
  • 打赏
  • 举报
回复
用动态产生Form,产生之前判断是否要产生就行了
taxi 2001-11-30
  • 打赏
  • 举报
回复
^
票票飞扬 2001-11-30
  • 打赏
  • 举报
回复
需要这个功能么?

5,388

社区成员

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

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