Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Form direkt überhalb des Trayicons platzieren (https://www.delphipraxis.net/178590-form-direkt-ueberhalb-des-trayicons-platzieren.html)

hedie 16. Jan 2014 11:24

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

himitsu 16. Jan 2014 11:39

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.

hedie 16. Jan 2014 12:41

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?

Der schöne Günther 16. Jan 2014 12:54

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:
Application.BringToFront()
aufgerufen...

himitsu 16. Jan 2014 13:43

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.

Popov 16. Jan 2014 14:13

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 17:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz