最近、Delphi2007で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では、結果はすべて台無しになります。
編集: 最初は、アルファチャンネルのせいだと思いました。そこで、アルファチャネルを使用せずにicoファイルのバージョンを作成しようとしました。ケンの提案に従って、GreenFishIconEditorも試しました。利用可能なすべての色深度とすべてのサイズを選択しました。どちらの場合も、最終結果はより良いものになります。ただし、icoファイルにはまったく存在しない黒いストロークがあります。