![]() |
AW: Popupmenu TMenuItem Rechtsklick
Füge mal in dem PopupMenu1Popup am Ende noch hinzu:
Delphi-Quellcode:
Funktioniert auch noch nicht alles (das erste Menü reagiert nicht auf Klicks), aber mehr als vorher. ;-)
TrackPopupMenuEx(PopupMenu1.Handle,
TPM_RECURSE or TPM_BOTTOMALIGN or TPM_RETURNCMD, Mouse.CursorPos.X, Mouse.CursorPos.Y, Handle, nil); |
AW: Popupmenu TMenuItem Rechtsklick
Verstehe ehrlich gesagt den Sinn deines Codes nicht. Damit geht bei jedem Klick das Popupmenü nochmal auf, und zwar auch beim Linksklick.
|
AW: Popupmenu TMenuItem Rechtsklick
Setz mal einen Haltepunkt auf MenuRButtonUp. Da kommst du nämlich nun an. Du kannst das auch anderswo einbauen, ich wollte nur zeigen, dass du so den Rechtsklick bekommst.
|
AW: Popupmenu TMenuItem Rechtsklick
Das stimmt, allerdings bekommt man 2+ Popupmenüs angezeigt, und zwar auch beim Linksklicks.
TrackPopupMenuEx() zeigt zwangsläufig das Menü an. Man kann aber .Popup() durch TrackPopupMenuEx() nicht ersetzen, weil TrackPopupMenuEx() keine Events auslöst (kein OnPopup etc). p.s. Habe nun versucht WM_MENURBUTTONUP in WndProc() abzufangen und dort einen Timer für 500ms zu starten damit ich erkenne dass ein Menü-Rechsklick stattgefunden hat. Aber MENURBUTTONUP wird in WndProc nie ausgelöst. Bin langsam am verzweifeln. :( |
AW: Popupmenu TMenuItem Rechtsklick
Neue Erkentniss. WM_MENURBUTTONUP wird nicht ausgelöst, weil die Mainform nicht der Parent eines Popupmenü ist, sondern ein verstecktes Fenster. Die Message kommt statt dessen bei PopupList.WndProc() an. Dort muss man sich hooken und kann dann darauf reagieren. Leider trifft es nicht für Submenus eines Popupmenüs zu. Da wird MENURBUTTONUP nicht bei PopupList.WndProc() ausgelöst.
|
AW: Popupmenu TMenuItem Rechtsklick
Liste der Anhänge anzeigen (Anzahl: 1)
Diese Unit funktioniert bei mir problemlos:
![]() (einfach Rechtsklick auf das Formular) Siehe Anhang |
AW: Popupmenu TMenuItem Rechtsklick
Das ist doch exakt der gleiche Code den ich im ersten Post beschrieben hab.
Er hat zwei Probleme. 1. Sobald bei einem Item Visible = False ist passt die Zuordnung nicht mehr. Das Problem habe ich behoben. 2. Es funktioniert nicht wenn das Popupmenu ein Submenü hat (im Submenü kann nichts rechtsgeklickt werden). |
AW: Popupmenu TMenuItem Rechtsklick
Liste der Anhänge anzeigen (Anzahl: 1)
:oops:
Ok, habe ich nicht mehr auf dem Schirm gehabt... Ich habe den Code kurz korrigiert, siehe Anhang... Nicht schön, funktioniert aber... |
AW: Popupmenu TMenuItem Rechtsklick
Hab dein Beispielprojekt eben getestet und es funktioniert nicht. Wenn ich im sd-Untermenü auf einen der Einträge rechtsklicke passiert nichts.
|
AW: Popupmenu TMenuItem Rechtsklick
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe die Einträge mal richtig benannt und diesmal die Exe mit reingepackt. Nicht dass es an der Windowsversion liegt. Wenn es bei dir mit der Exe geht, muss es an Delphi 2009 liegen. Das habe ich noch in einer VM, teste ich grad.
// EDIT: Funktioniert bei mir mit Delphi 2009 wie mit XE8 und mit XP wie mit 8.1 und 10. // EDIT2: Siehe: Anhang 43621 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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 by Thomas Breitkreuz