![]() |
Form direkt überhalb des Trayicons platzieren
Hallo zusammen
Ich möchte für mein TrayIcon ein schönes Menü gestalten. Dazu dachte ich mir, ich nehme ein Formular, welches Borderstyle bsNone hat. Soweit so gut. Nun muss ich dieses Formular aber bei einem Klick auf das Icon direkt oberhalb positionieren. Wie bekomme ich die gewünschte Position? Manchmal ist ja die Taskleiste auch seitlich positioniert... Danke schonmal |
AW: Form direkt überhalb des Trayicons platzieren
Ich glaub offiziell bekommt man die Position garnicht.
Du kannst es wie praktisch alle Anderen machen: Nimm die aktuelle Position des Mauszeigers. Diese sollte sich ja meistens direkt auf dem Icon befinden. Man könnte versuchen das Fenster auszulesen, welches diese Icons beinhaltet und versuchen darin sein Icon zu entdecken, aber wenn es ausgeblendet ist, sich also grade in dem Popup befindet, dann wird man es dort natürlich nicht vorfinden. |
AW: Form direkt überhalb des Trayicons platzieren
Vielen Dank
Es klappt :) Aber ein problem habe ich... Wenn das Icon sich nicht direkt im Tray befindet, sondern in diesem zusammengefassten fenster von windows (welches man mit dem pfeil öffnen kann) Öffnet das Fenster dahinter... Kann man irgendwie dieses Zusammenfassende fenster schliessen? |
AW: Form direkt überhalb des Trayicons platzieren
Ich hätte das als Benutzer nicht sehr gerne wenn eine Anwendung mir irgendwelche Fenster schließt. Hast du dir das Codebeispiel zum Tray-Icon in der Hilfe mal angesehen? Da wird am Schluss beim Sichtbarmachen auch einmal ein
Delphi-Quellcode:
aufgerufen...
Application.BringToFront()
|
AW: Form direkt überhalb des Trayicons platzieren
Wenn das Fenster/Popup bei Fokusverlust verschwindet und das BringToFront nicht hilft, dann kann man es im Notfall mit StayOnTop versuchen.
> Wobei ich eigentlich StayOnTop-Fenster hasse, welche einem den blick verwähren ... vorallem bei den Startfenstern von Programmen. |
AW: Form direkt überhalb des Trayicons platzieren
Wie ich das gelegentlich mache: über Mausposition zuerst indirekt erfahren wo sich das Icon befindet, aber das hast du ja schon. Dann ermittle ich die Höhe der Taskleiste. Ich platziere mein Fenster, ob Popup oder Fenster, nicht direkt über der Maus, sondern über der Taskleiste. Will ich, dass sich das Popup-Fenster schließt (gelegentlich bleibt es offen) sorge ich mit SetForegroundWindow(Handle) für den Wechsel. Evtl. klappt das auch mit dem Focus.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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