Hallo, <br>
ich habe versucht den Systemtray mit der PopMenu-Komponente zu kombinieren.
Das hat auch auf Anhieb fast geklappt. <br>
Wenn ich jetzt die Komponente in einer neuen Anwendung einsetze und diese starte, wird zuerst das Icon im Tray angezeigt. Sobald man jedoch die Maus über den Tray bewegt verschwindet das Icon wieder aus dem Tray!
Hat jemand eine Idee wie ich das beheben kann!
bye stephan
<pre><code>
tTrayPopupMenu = class(TPopupMenu)
private
NotiTray: TNotifyIconData;
procedure TrayMessage(var Message: TMessage); message WM_TRAYMSG;
public
Constructor Create(AOwner: TComponent); override;
end;
<br>
constructor tTrayPopupMenu.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
with notiTray do
begin
cbSize := SizeOf(notiTray); // size of the structur
Wnd := Handle; // handle of the window
uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP; // flags
uCallBackMessage := WM_TRAYMSG; // message
hIcon := Application.Icon.Handle; // tray-icon
end; // End With
Shell_NotifyIcon(NIM_ADD, @notiTray); // add tray-icon
end;
</code> </pre>
ich habe versucht den Systemtray mit der PopMenu-Komponente zu kombinieren.
Das hat auch auf Anhieb fast geklappt. <br>
Wenn ich jetzt die Komponente in einer neuen Anwendung einsetze und diese starte, wird zuerst das Icon im Tray angezeigt. Sobald man jedoch die Maus über den Tray bewegt verschwindet das Icon wieder aus dem Tray!
Hat jemand eine Idee wie ich das beheben kann!
bye stephan
<pre><code>
tTrayPopupMenu = class(TPopupMenu)
private
NotiTray: TNotifyIconData;
procedure TrayMessage(var Message: TMessage); message WM_TRAYMSG;
public
Constructor Create(AOwner: TComponent); override;
end;
<br>
constructor tTrayPopupMenu.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
with notiTray do
begin
cbSize := SizeOf(notiTray); // size of the structur
Wnd := Handle; // handle of the window
uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP; // flags
uCallBackMessage := WM_TRAYMSG; // message
hIcon := Application.Icon.Handle; // tray-icon
end; // End With
Shell_NotifyIcon(NIM_ADD, @notiTray); // add tray-icon
end;
</code> </pre>
Comment