Starten einer Anwendung als Icon in der Taskleiste
Dieser Artikel wird Ihnen zeigen, wie Sie ein Applicacion mit einem Symbol in der Systemablage (der Bereich auf der rechten Seite der Taskleiste) minimiert starten
PLATZIEREN EIN SYMBOL IN DER TASKLEISTE
Die Taskleiste ist der Bereich rechts auf der Taskleiste, wo 'Hintergrund' Anwendungen ihre Symbole platzieren können. Um ein Symbol in der Taskleiste platzieren müssen Sie rufen Sie die Shell_NotifyIcon-API in der Referats ShellAPI, übergeben sie die Konstante NIM_ADD (anzuweisen, ein Symbol hinzufügen) und die Adresse eines TNotifyIconData-Datensatzes mit den Symbol-Informationen, der das Handle des das Symbol angezeigt, enthält den Text als QuickInfo anzeigen, wenn der Mauszeiger über dem Symbol wird deklariert , das Handle des Fensters, der empfängt die Nachrichten über das Symbol und den Nachrichtentyp, das Symbol wird an diesem Fenster senden.
uses
..., ShellAPI;
const
WM_ICONTRAY = WM_USER + 1; // User-defined message
type
...
var
...
NotifyIconData : TNotifyIconData;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
with NotifyIconData do begin
hIcon := Icon.Handle;
StrPCopy(szTip, Application.Title);
Wnd := Handle;
uCallbackMessage := WM_ICONTRAY;
uID := 1;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
cbSize := sizeof(TNotifyIconData);
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;
HANDHABUNG-SYMBOL-NACHRICHTEN
Form1 erhalten WM_ICONTRAY Nachrichten über das Symbol. Für das erfassen und verarbeiten diese Nachrichten haben wir eine neue Methode in unser Formular zu deklarieren. Zum Beispiel:
type
TForm1 = class(TForm)
...
private
{ Private declarations }
...
procedure Icontray(var Msg: TMessage); message WM_ICONTRAY;
public
{ Public declarations }
...
end;
Bei der Durchführung dieser Methode können wir z. B. ein Popupmenü anzeigen, wenn der Benutzer auf das Symbol klickt. Vorausgesetzt, dass Sie ein Popup-Menü mit dem Namen PopupMenu1 erstellt haben, wird der folgende Code do the Trick:
procedure TForm1.Icontray(var Msg: TMessage);
var
CursorPos : TPoint;
begin
if Msg.lParam = WM_RBUTTONDOWN then begin
GetCursorPos(CursorPos);
PopupMenu1.Popup(CursorPos.x, CursorPos.y);
end else
inherited;
end;
EIN- UND AUSBLENDEN VON FORM
Normalerweise wird ein Menüelement im Popup-Menü zum Anzeigen des Formulars enthalten Sie, so dass alles, was Sie tun müssen ist eine Ereignisbehandlungsroutine um die Show-Methode des Formulars aufrufen und wahlweise das Symbol aus der Taskleiste entfernen:
procedure TForm1.mnuShowClick(Sender: TObject);
begin
Show;
// Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
end;
Wenn der Benutzer das Formular geschlossen wird, können Sie z. B. statt zu schließen, es zu verbergen und optional das Symbol anzeigen wieder in der Taskleiste, wenn Sie es entfernt haben, wenn Sie das Formular sichtbar gemacht. Zum Beispiel:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caNone;
Hide;
// Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;
BEENDEN DER ANWENDUNGDES
Sie können ein Menüelement im Popup-Menü um die Anwendung zu verlassen haben. In diesem Fall müssen Sie einen Ereignishandler für das Click-Ereignis, um das Symbol zu entfernen, und beenden Sie die Anwendung zu schreiben:
procedure TForm1.mnuExitClick(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
Application.ProcessMessages;
Application.Terminate;
end;
Das vollständige Quellcode-Codebeispiel dieses Artikels kann von heruntergeladen werden:
https://www.latiumsoftware.com/Download/d00035.zip
Starten einer Anwendung als Icon in der Taskleiste
Starten einer Anwendung als Icon in der Taskleiste : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Dieser Artikel wird Ihnen zeigen, wie Sie ein Applicacion mit einem Symbol in der Systemablage (der Bereich auf der rechten Seite der Taskleiste) minimiert starten
PLATZIEREN EIN SYMBOL IN DER TASKLEISTE
Die Taskleiste ist der Bereich rechts auf der Taskleiste, wo 'Hintergrund' Anwendungen ihre Symbole platzieren können. Um ein Symbol in der Taskleiste platzieren müssen Sie rufen Sie die Shell_NotifyIcon-API in der Referats ShellAPI, übergeben sie die Konstante NIM_ADD (anzuweisen, ein Symbol hinzufügen) und die Adresse eines TNotifyIconData-Datensatzes mit den Symbol-Informationen, der das Handle des das Symbol angezeigt, enthält den Text als QuickInfo anzeigen, wenn der Mauszeiger über dem Symbol wird deklariert , das Handle des Fensters, der empfängt die Nachrichten über das Symbol und den Nachrichtentyp, das Symbol wird an diesem Fenster senden.
uses
..., ShellAPI;
const
WM_ICONTRAY = WM_USER + 1; // User-defined message
type
...
var
...
NotifyIconData : TNotifyIconData;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
with NotifyIconData do begin
hIcon := Icon.Handle;
StrPCopy(szTip, Application.Title);
Wnd := Handle;
uCallbackMessage := WM_ICONTRAY;
uID := 1;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
cbSize := sizeof(TNotifyIconData);
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;
HANDHABUNG-SYMBOL-NACHRICHTEN
Form1 erhalten WM_ICONTRAY Nachrichten über das Symbol. Für das erfassen und verarbeiten diese Nachrichten haben wir eine neue Methode in unser Formular zu deklarieren. Zum Beispiel:
type
TForm1 = class(TForm)
...
private
{ Private declarations }
...
procedure Icontray(var Msg: TMessage); message WM_ICONTRAY;
public
{ Public declarations }
...
end;
Bei der Durchführung dieser Methode können wir z. B. ein Popupmenü anzeigen, wenn der Benutzer auf das Symbol klickt. Vorausgesetzt, dass Sie ein Popup-Menü mit dem Namen PopupMenu1 erstellt haben, wird der folgende Code do the Trick:
procedure TForm1.Icontray(var Msg: TMessage);
var
CursorPos : TPoint;
begin
if Msg.lParam = WM_RBUTTONDOWN then begin
GetCursorPos(CursorPos);
PopupMenu1.Popup(CursorPos.x, CursorPos.y);
end else
inherited;
end;
EIN- UND AUSBLENDEN VON FORM
Normalerweise wird ein Menüelement im Popup-Menü zum Anzeigen des Formulars enthalten Sie, so dass alles, was Sie tun müssen ist eine Ereignisbehandlungsroutine um die Show-Methode des Formulars aufrufen und wahlweise das Symbol aus der Taskleiste entfernen:
procedure TForm1.mnuShowClick(Sender: TObject);
begin
Show;
// Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
end;
Wenn der Benutzer das Formular geschlossen wird, können Sie z. B. statt zu schließen, es zu verbergen und optional das Symbol anzeigen wieder in der Taskleiste, wenn Sie es entfernt haben, wenn Sie das Formular sichtbar gemacht. Zum Beispiel:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caNone;
Hide;
// Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;
BEENDEN DER ANWENDUNGDES
Sie können ein Menüelement im Popup-Menü um die Anwendung zu verlassen haben. In diesem Fall müssen Sie einen Ereignishandler für das Click-Ereignis, um das Symbol zu entfernen, und beenden Sie die Anwendung zu schreiben:
procedure TForm1.mnuExitClick(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
Application.ProcessMessages;
Application.Terminate;
end;
Das vollständige Quellcode-Codebeispiel dieses Artikels kann von heruntergeladen werden:
https://www.latiumsoftware.com/Download/d00035.zip
Starten einer Anwendung als Icon in der Taskleiste
By Wiezutun
Starten einer Anwendung als Icon in der Taskleiste : Mehreren tausend Tipps, um Ihr Leben einfacher machen.