用DELPHI 4.0创建SPLASH窗口的费解现象

wader 2000-12-12 09:57:00
我遇到一个费解的现象。
一个简单的SPLASH DEMO程序的运行完全正常,但在我将其应用
到较复杂的实际程序时发生如下现象:

   splashform:=tsplashform.create(application);
   splashform.show;
   splashform.update;

   application.createform(tmainform,mainform);
   application.createform(tAboutform,Aboutform);
   splashform.close;

在application.createform(tmainform,mainform);执行完后,
在windows task bar 中出现了另一个程序“最小化图标”。在
程序正常退出后,该“最小化图标”并不消失,如果用鼠标去
点,则该图标才消失。该现象让人觉得很烦。
(备注:在WINDOWS中经常遇到其它程序也发生类似现象)
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wader 2000-12-13
  • 打赏
  • 举报
回复
方法无效。
后来我将splashform.create & close放到mainform.oncreate中,
便解决了此问题。
还是要感谢你。
Kingron 2000-12-12
  • 打赏
  • 举报
回复
我这儿有一篇文章,也许对你有帮助:
////////////////////////////////////////////////
某些程序退出后会在任务栏中留下一个任务空格,点一下方会消失。
如何处理?
看下面的空窗体就会有这个问题: object Form1: TForm1
Left = 138
Top = 98
Width = 544
Height = 375
BorderIcons = [biSystemMenu, biMinimize]
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
WindowState = wsMaximized
PixelsPerInch = 96
TextHeight = 13
end

究其原因,就是因为窗体的 WindowState = wsMaximized,而且
BorderIcons 中没有 biMaximize 属性。为此可以有下解决办法:

procedure TForm1.FormCloseQuery(Sender: TObject; var
CanClose: Boolean);
begin
Form1.BorderIcons := Form1.BorderIcons + [biMaximize];
end;

放在 OnCloseQuery 事件中是因为它能够在关闭之前执行,它比
OnClose 事件先执行,效果理论上比之好。
/////////////////////////////////////////////////

5,392

社区成员

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

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