Popupmenü TComboBox vs. Popupmenü TEdit
-
Hallo Gemeinschaft,
ich arbeite mit BDS2006 und habe ein Formular mit Steuerelementen, welche per Rechtsklick mit der Maus kein PopupMenü anzeigen sollen. Diesbezüglich bin ich auf Unterschiede zwischen TComboBox und TEdit gestossen, die ich logisch nicht nachvollziehen kann:
Bei ComboBox-Komponenten (Style= csSimple, Enabled= true, ItemCount= 29, MaxLength= 0) unterdrücke ich das Standard-Kontextmenü durch Angabe eines eigenen TPopupMenu (AutoPopup= false, ItemCount= 0) in der Eigenschaft PopupMenu. Wenn ich hingegen einfach in OnContextPopup der ComboBox-Kompos Handled= true setze, wird das Standard-Kontextmenü angezeigt.
Bei Edit-Komponenten (ReadOnly= true, Enabled= true, MaxLength= 0) verhält es sich genau andersherum. Dort kann ich das Standard-Kontextmenü nur mit Handled= true in OnContextPopup unterdrücken, wogegen bei Zuordnung desselben TPopupMenu wie in den ComboBox-Kompos das Standard-Kontextmenü per rechtem Mausklick fröhlich weiter angezeigt wird.Für eine Erklärung diesen Verhaltens wäre ich dankbar!
MfG
-
Ich nochmal,
hat denn wirklich niemand eine Idee oder habe ich etwas zu Triviales übersehen?
MfG
-
Hallo,
Borland schreibt:
Übergeordnete Steuerelemente empfangen OnContextPopup-Ereignisse vor den untergeordneten Steuerelementen.
Bei vielen untergeordneten Steuerelementen bewirkt die Standardfensterprozedur, dass das übergeordnete Steuerelement
ein OnContextPopup-Ereignis erst nach dem untergeordneten Steuerelement empfängt.
Wenn übergeordnete Steuerelemente Handled in einer OnContextPopup-Ereignisbehandlungsroutine nicht auf true setzen,
könnte die Ereignisbehandlungsroutine bei jedem Aufruf des Kontextmenüs deshalb mehrmals aufgerufen werden.Wirst du kennen
Aber das würde bedeuten, dass das Formular als übergeordnetes Steuerelement explizit im Event
OnContextPopup den Sender abfragen und Handled entsprechend setzen muss...