我最近在 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这个图标包括以下尺寸:64x64、48x48、32x32、24x24 和 16x16。
现在,在我的 Windows Vista 上,一切正常。
在像 Windows Server 2003 这样的非主题 Windows 上,结果完全搞砸了:
编辑: 起初,我认为这是因为 alpha 通道。所以我尝试在不使用 alpha 通道的情况下制作 ico 文件的版本。我还按照 Ken 的建议尝试了 GreenFish 图标编辑器;我选择了每种颜色深度和每种可用尺寸。在这两种情况下,最终结果都更好。但是,ico文件中根本不存在黑色笔划。