Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Dialog (TForm) soll PopUp-Menu nachahmen (https://www.delphipraxis.net/119807-dialog-tform-soll-popup-menu-nachahmen.html)

Andreas Leix 1. Sep 2008 09:16


Dialog (TForm) soll PopUp-Menu nachahmen
 
Hallo Leute !
Ich möchte ein erweitertes Rechtsklick-Menü implemetieren. Normalerwesie würde ich ein TPopUpMenu nehmen.
Die gestalterischen Möglichkeiten die ich darin habe, reichen aber nicht aus. Jetzt verwende ich ein "normales"
Formular und rufe es mit ShowModal auf. Das ganze funtkioniert gut (und bietet auch alle Möglichkeiten die ich brauche).
Nur eine Funktionalität eines PopUp-Menüs habe ich bis jetzt nicht hingekriegt: ein Popup-Fenster wird automatisch geschlossen, wenn der User außerhalb klickt.

Wie kann ich einem auf TForm basierenden Dialog beibringen, dass er geschlossen wird, wenn man ausserhalb klickt ??

Hat jemand eine Idee ?


Gruß Andreas

alias5000 1. Sep 2008 09:44

Re: Dialog (TForm) soll PopUp-Menu nachahmen
 
Wenn deine Form den Fokus verliert, kannst du sie wieder schließen.
Das müsste das Verhalten nachahmen.

Gruß
alias5000

Sherlock 1. Sep 2008 10:11

Re: Dialog (TForm) soll PopUp-Menu nachahmen
 
Verliert ein modales Fenster den Fokus, wenn man in die dazugehörige Applikation klickt? Für mich sieht das eher nicht so aus... Aber probieren geht über studieren ;)

Sherlock

alias5000 1. Sep 2008 10:34

Re: Dialog (TForm) soll PopUp-Menu nachahmen
 
Naja, eigentlich wärs ja garnicht mal nötig, das Fenster modal zu machen ;)

Andreas Leix 1. Sep 2008 11:04

Re: Dialog (TForm) soll PopUp-Menu nachahmen
 
Erstmal Danke für euer Engagement.

Ich muß den Dialog aus verschiedensten Gründen schon modal machen.
Der Rechtsklick ist u.U. in eine größere Ablaufsteuerung eingebunden.


Wie kann ein modales Fenster den Fokus verlieren ?

Wo kann ich denn überhaupt das Klick-Ereigniss abgreifen ?
Es scheint so, dass weder das Hauptprogramm das Klick-Ereigniss bekommt,
noch der Dialog, wenn man ausserhalb des Modalen Dialogs klickt.

Kann man evtl dem Dialog bei CreateParams noch irgendwelche Parameter geben ?
Oder gibt´s ´ne API Funktion mit der man ein Fenster als Popup startet?

Jelly 1. Sep 2008 11:29

Re: Dialog (TForm) soll PopUp-Menu nachahmen
 
Hast du schon mal drüber nachgedacht, ein Frame zu nutzen anstatt eines Forms?

Andreas Leix 1. Sep 2008 12:41

Re: Dialog (TForm) soll PopUp-Menu nachahmen
 
hm.. Frame statt TForm ?
OK, aber wie dann weiter ?
Frame auf einem PopUp-Menu plazieren ? Geht das ? Wie ?

Jelly 1. Sep 2008 13:29

Re: Dialog (TForm) soll PopUp-Menu nachahmen
 
Du kannst das Frame auf dem Form plazieren, und über die Visible Eigenschaft ein- und ausblenden. Beim Verschieben des Forms verschiebt sich somit das Frame automatisch mit. Und über Click Ereignisse des Forms kannst du so auch das Frame wieder ausblenden, wenn du möchtest.

Andreas Leix 1. Sep 2008 16:02

Re: Dialog (TForm) soll PopUp-Menu nachahmen
 
Der Witz ist aber, dass mein erweitertes PopUp-Menü - sei es nun durch ein Form oder einen Frame realisiert -
modal angezeigt werden muss. Hat ein Frame überhaupt eine ShowModal-Routine?
Wenn ja, dann denke ich läuft das message handling gleich wie beim Formular, oder ?
Ich denke mit Frames kommt man da auch nicht weiter.

Gruß Andreas

Namenloser 1. Sep 2008 17:44

Re: Dialog (TForm) soll PopUp-Menu nachahmen
 
IMO widerspricht es sich, ein Form modal anzuzeigen, aber bei einem Klick außerhalb wieder zu schließen. Der Sinn von ShowModal ist ja, dass ich den Rest des Programms in der Zeit nicht benutzen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.
Seite 1 von 2  1 2      

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