我最近在Delphi 2007中发现了TTrayIcon组件.使用的代码非常简单.
procedure TForm1.FormCreate(Sender: TObject); begin AppTrayIcon := TTrayIcon.Create(nil); AppTrayIcon.OnDblClick := OnAppTrayIconDblClick; Application.OnMinimize := OnApplicationMinimize; Application.OnRestore := OnApplicationRestore; end; procedure TForm1.OnApplicationRestore(Sender: TObject); begin AppTrayIcon.Visible := False; ShowWindow(Application.Handle,SW_SHOW); Application.BringToFront; end; procedure TForm1.OnApplicationMinimize(Sender: TObject); begin AppTrayIcon.Visible := True; ShowWindow(Application.Handle,SW_HIDE); end; procedure TForm1.OnAppTrayIconDblClick(Sender: TObject); begin Application.Restore; end;
由于没有分配图标,Delphi使用Application.Icon,即图标:http://artbyloveland.com/icon.ico此图标包括以下尺寸:64×64,48×48,32×32,24×24和16×16.
现在,在我的Windows Vista上,一切都很好.
在像Windows Server 2003这样的非主题Windows上,结果全部搞砸了:
编辑:
起初,我认为这是因为alpha通道.所以我尝试在不使用alpha通道的情况下制作ico文件的版本.我也按照Ken的建议尝试了GreenFish Icon Editor;我选择了每种颜色深度和每种尺寸.在这两种情况下,最终结果都更好.但是,ico文件中根本不存在黑色笔划.