C/S数据库软件在98下退出后,任务栏中的图标不退出,用鼠标点一下才行,为什么?(50分)

D

djf813

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是DELPHI6.0+BDE或ADO+SQLSERVER2000编写的程序,在WIN2000中编译,
程序中我已经写入关闭所有打开的数据库控件如QUERY1或TABLE1,但是退出时仍无法
自动关闭任务栏图标,用鼠标点一下才行,或经过很长时间图标才消失,但会留下一个
空白的任务栏图标。
 
这是操作系统的问题,很多程序都会这样(MS自己的程序都会这样)。
 
//已经写入关闭所有打开的数据库控件如QUERY1或TABLE1
这和任务栏图标的关闭有什么联系?
 
但是我用DELPHI5.0编译出来就不会有此问题?
 
任务栏图标只和应用程序有关,与你所用到的query,table等没有任何关系
试着在程序退出的时候关闭图标
Shell_NotifyIcon(NIM_DELETE, @nid); //去掉小图标

 
delphi5下也会出现这种情况,我遇见过
 
我也碰到这样的问题,用很多方法都解决不了
 
to eric.youbin
问题解决不了。
 
我用Delphi5和6写的程序都有这个问题,愿听高手指教。
 
5也一样
up
 
我是这样解决的。在close之前加一句,application.最小化
 
to smallmoneybags
不行啊,有时管用,有时不管用。你有没有彻底的方法?
 
BorderIcons:=BorderIcons+[biMaximize];???
 
我不知道你用的什么方法加入任务栏中的图标的,建议你用这种方法,绝对行的!!

procedure TForm1.FormCreate(Sender: TObject);
var
nid: TNotifyIconData;
begin
nid.cbSize := sizeof(nid);
nid.Wnd := Handle;
nid.uID := 1;
nid.hIcon := Application.Icon.Handle;
nid.uCallbackMessage := MY_MESSAGE;
nid.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
if not Shell_NotifyIcon(NIM_ADD, @nid) then begin
ShowMessage('Failed!');
Application.Terminate;
end;

end;



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
nid: TNotifyIconData;
begin
nid.cbSize := sizeof(nid);
nid.uID := 1;
nid.Wnd := Handle;
Shell_NotifyIcon(NIM_DELETE, @nid); //去掉小图标

end;
 
对不起大家,可能我没写清楚,
我问的问题是:我的程序在关闭后,最小化图标仍然在任务栏上,
很长时间也不消失,只有用鼠标点一下才行。
我没有用自己加入任务栏中的图标,而是程序最小化时的图标。
现在我写的所有的程序在WIN98下都存在此问题,win2000没事。

 
to mr.hl
你的方法在98下不行。
 
顶部