![]() |
Aus TrayIcon Application "steuern"
Hallo,
ich habe eine TrayIcon-Komponente, in der ich die Application-Mainform anzeigen lasse oder verstecke. Beim Anzeigen soll die Form 1. angezeigt werden und 2. gleich in den Vordergrund kommen. Beim Verstecken soll die Form 1. versteckt werden und 2. auch aus der Taskleiste verschwinden. Ich hab das mal so gelöst:
Delphi-Quellcode:
Was mich an diesem Code stört, dass ich "VCL-Code" mit "API-Code" vermische.
procedure TTrayIcon.ShowMainForm;
begin with Application do begin ShowWindow(Handle, SW_SHOW); //maximieren Restore; //Haupt-Form anzeigen MainForm.Show; //in den Vordergrund bringen BringToFront; end; end; procedure TTrayIcon.HideMainForm; var hwndOwner: HWnd; begin with Application do begin //minimieren Minimize; //Haupt-Form verstecken MainForm.Hide; ShowWindow(Handle, SW_HIDE); //Icon aus der Taskleiste verstecken hwndOwner := GetWindow(Handle, GW_OWNER); ShowWindow(hwndOwner, SW_HIDE); //für Windows 2000 ShowWindowAsync(hwndOwner, SW_HIDE); ShowWindowAsync(Handle, SW_HIDE); end; end; Gibt es eine andere, VCL-basierende Lösung? oder grundsätzlich einen anderen Lösungsweg? |
Re: Aus TrayIcon Application "steuern"
Moin,
schau dir doch mal die ![]() Ich bin nicht ganz sicher, aber vielleicht gefällt dir die besser. Schau dir mal die Beispiele an. MfG Thorsten |
Re: Aus TrayIcon Application "steuern"
Zitat:
was stört dich daran? Wenn du eine "VCL-basierende Lösung" benutzt, dann wird genau dieser (oder sehr ähnlicher) Code ebenfalls ausgeführt. Der einzige Unterschied ist dann, daß er in den Methoden dieser Komponente ausgeführt wird. Welchen Vorteil versprichst du dir davon? Der einzige Effekt wäre, daß du noch zusätzlichen Code für das Erstellen/Initialisieren/Zerstören der Komponente im Programm hättest. Ciao, Ralf |
Re: Aus TrayIcon Application "steuern"
anstele von ShowWindow kannst du auch das property "visible" nutzen oder die methoden "show" und "hide". Da beim Application Object diese Methoden allerdings nicht vorhanden sind wird dir nix anders überig bleiben als eben die api-Befehle zu nutzen oder von der Klasse TApplication ableiten, methoden hinzufügen (nur methoden, nix weiter) und dann kannst du auch auf Application auf deine neue Klasse casten und die entsprechenden methoden ausführen. Ist aber bedeutend mehr arbeit als einfach die api-befehle direct zu nutzen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz