Delphi-PRAXiS

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 Mainmenue und PopUp (https://www.delphipraxis.net/71045-mainmenue-und-popup.html)

hanspeter 8. Jun 2006 06:45


Mainmenue und PopUp
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich verwende die TADV Toolbar und hier ein TADVMainmenü.
(Ist ein Nachkomme von TMainmenu.)
Das Teil hat eine unangenehme Eigenschaft, welche ich nicht in den Griff bekomme.
Hat wer einen Tip?

Ein Menü mit mehreren PopUp und einem einzelnen Menüeintrag.
Klicke ich einen Menüantrag an, dann öffnet das Popupfenster.
Wechsle ich jetzt ohne gedrückte Maustaste auf den nächsten Menüeintrag, dann popt dieser auf.
Handelt es sich um einen Eintrag ohne Popupmenü, dann startet dieser sofort.
Verlasse ich den Bereich des Mainmenue, dann wird das vorher geöffnete Popupfenster nicht geschlossen.

Ich habe mal ein kleines Testprogramm angehängt, was dieses Verhalten zeigt.

Gruß Peter

marabu 8. Jun 2006 07:01

Re: Mainmenue und PopUp
 
Hallo Peter,

das Verhalten mag zuerst seltsam erscheinen, ist aber nicht fehlerhaft. Es rührt daher, dass jeder Eintrag im Hauptmenü automatisch geöffnet werden soll, wenn man nach dem Öffnen eines Menüs die anderen Einträge mit der Maus überfährt. Die gängigen Style Guides verbieten Einträge im Hauptmenü, die keine Untereinträge aufweisen, allerdings wird das im Menu Designer nicht abgefangen.

Grüße vom marabu

himitsu 8. Jun 2006 07:15

Re: Mainmenue und PopUp
 
Also bei mir geht das "PopUpMenü" zu ... manchmal sogar auch dann, wenn ich nur zwischen den beiden Hauptmenüs mit Untermenü wechsle.

hanspeter 8. Jun 2006 08:29

Re: Mainmenue und PopUp
 
Zitat:

Zitat von marabu
Hallo Peter,

das Verhalten mag zuerst seltsam erscheinen, ist aber nicht fehlerhaft. Es rührt daher, dass jeder Eintrag im Hauptmenü automatisch geöffnet werden soll, wenn man nach dem Öffnen eines Menüs die anderen Einträge mit der Maus überfährt. Die gängigen Style Guides verbieten Einträge im Hauptmenü, die keine Untereinträge aufweisen, allerdings wird das im Menu Designer nicht abgefangen.

Grüße vom marabu

Nun gut.
Das ADVMenüsystem verhält sich in D2006 etwas störrisch.
Da Toolbar2000 ähnliche Probleme hat, vermute ich die Ursache mal im Delphi-Designer.
(Positionen ändern sich im Entwurfsmodus sporadisch, Probleme beim Docking , Floatende Größen von Toolbars u.s.w.)
Korrekter Weise sollte ich 2 oder 3 Toolbars nebeneinander anordnen. Das funktioniert aber so nicht betriebssicher.
(Delphi hatte mit Docking schon immer Probleme)
Ich habe deshalb das Mainmenü "missbraucht" um auch eine reine Speedbuttonfunktion unterzubringen.
Programm schließen, Hilfe.
Wenn ich jetzt ein Popup öffne und dann mit der Maus überr den Close-Button komme, dann ist das Programm weg.

Irgendwie müsste sich dieses Verhalten doch abschalten lassen.

Meine Frage ist:
Die Änderung bekomme ich über onChange mmit Source <> nil des Mainmenüs mit.
ie kann ich das Popup Fensteer jetzt manuell schließen?

Gruß Peter

marabu 8. Jun 2006 08:59

Re: Mainmenue und PopUp
 
Hallo Peter,

meine Aussagen waren allgemeiner Natur, deine Komponente TAdvMainMenu kenne ich nicht. Kann ich sie irgendwo herunter laden um dein Problem nachzustellen?

Bei Verwendung von TMainMenu wird das Ereignis OnClick() eines Menüeintrags nicht automatisch ausgelöst, wenn man mit der Maus alle Haupteinträge im geöffneten Zustand überfährt.

marabu

hanspeter 8. Jun 2006 10:15

Re: Mainmenue und PopUp
 
Zitat:

Zitat von marabu
Hallo Peter,

meine Aussagen waren allgemeiner Natur, deine Komponente TAdvMainMenu kenne ich nicht. Kann ich sie irgendwo herunter laden um dein Problem nachzustellen?

marabu

Ja das ist die TADVMenu - Komponente von TMS

TMS Software

Ich habe das Beispiel zwischenzeitlich unter VS2005 in chrome programmiert.
dort verhält sich die Komponente gleich nur kommt hier beim Überfahren eines Schalters korrekterweise kein OnClick
Ereignis.

Gruß Peter

marabu 8. Jun 2006 19:55

Re: Mainmenue und PopUp
 
Hallo Peter,

ich habe die Komponente TAdvMainMenu installiert und unter D7 getestet. Sie verhält sich genau so wie TMainMenu - ein OnClick() Ereignis wird nicht ausgelöst.

marabu

hanspeter 9. Jun 2006 07:30

Re: Mainmenue und PopUp
 
Zitat:

Zitat von marabu
Hallo Peter,

ich habe die Komponente TAdvMainMenu installiert und unter D7 getestet. Sie verhält sich genau so wie TMainMenu - ein OnClick() Ereignis wird nicht ausgelöst.

marabu

Danke.
Dann ist das wohl ein Bug in D2006.
Mein mit dem ersten Beitrag geliefertes Beispiel zeigt genau diesen Bug.
Es sind 2 Menü mit Untermenüs und ein Menü ohne Untermenü.

Bei disem Menü ist das Ereignis onClick belegt.

procedure TForm3.ohnePopupMen1Click(Sender: TObject);
begin
Edit1.Text := 'Click ohne PopUp';
end;

Öffne ich ein Popupmenü und fahre dann mit der Maus über dieses Menü wird sofort onClick ausgelöst.

Ich habe das ganze unter Chrome getestet, da ist das Verhalten korrekt.

Gruß Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 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