AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Popupmenu TMenuItem Rechtsklick

Ein Thema von Shark99 · begonnen am 27. Jul 2015 · letzter Beitrag vom 29. Jul 2015
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#1

AW: Popupmenu TMenuItem Rechtsklick

  Alt 28. Jul 2015, 14:09
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#2

AW: Popupmenu TMenuItem Rechtsklick

  Alt 28. Jul 2015, 14:17
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.

Geändert von Shark99 (28. Jul 2015 um 14:26 Uhr)
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#3

AW: Popupmenu TMenuItem Rechtsklick

  Alt 28. Jul 2015, 16:30
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.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#4

AW: Popupmenu TMenuItem Rechtsklick

  Alt 28. Jul 2015, 18:13
Diese Unit funktioniert bei mir problemlos:
http://www.delphipages.com/forum/sho...d.php?t=180337
(einfach Rechtsklick auf das Formular)

Siehe Anhang
Angehängte Dateien
Dateityp: 7z Popupmenu Rightclick.7z (55,5 KB, 10x aufgerufen)
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#5

AW: Popupmenu TMenuItem Rechtsklick

  Alt 28. Jul 2015, 18:38
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).

Geändert von Shark99 (28. Jul 2015 um 18:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#6

AW: Popupmenu TMenuItem Rechtsklick

  Alt 28. Jul 2015, 20:51


Ok, habe ich nicht mehr auf dem Schirm gehabt...
Ich habe den Code kurz korrigiert, siehe Anhang...
Nicht schön, funktioniert aber...
Angehängte Dateien
Dateityp: 7z Popupmenu Rightclick.7z (55,7 KB, 5x aufgerufen)
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#7

AW: Popupmenu TMenuItem Rechtsklick

  Alt 28. Jul 2015, 21:00
Hab dein Beispielprojekt eben getestet und es funktioniert nicht. Wenn ich im sd-Untermenü auf einen der Einträge rechtsklicke passiert nichts.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:38 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