AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign TPopupMenu Popup überschreiben / DoPopup wird nie aufgerufen
Thema durchsuchen
Ansicht
Themen-Optionen

TPopupMenu Popup überschreiben / DoPopup wird nie aufgerufen

Ein Thema von Glados · begonnen am 19. Okt 2017 · letzter Beitrag vom 21. Okt 2017
 
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.110 Beiträge
 
Delphi 12 Athens
 
#11

AW: TPopupMenu Popup überschreiben / DoPopup wird nie aufgerufen

  Alt 20. Okt 2017, 12:27
Nur so 'ne Idee: Du könntest auch in der WndProc auf WM_INITMENUPOPUP (Sent when a drop-down menu or submenu is about to become active.) reagieren und das aktuelle PopupMenu anhand des Handles suchen. Dann sparst du dir die Ableitung von TPopupMenu ganz:

Delphi-Quellcode:
    
 case message.msg of
   WM_INITMENUPOPUP:
   begin
     for I := 0 to Count - 1 do begin
       if TPopupMenu(Items[I]).Handle = TWMInitMenuPopup(Message).MenuPopup then begin
         { sollte nie erreicht werden, wenn ein SubMenu geöffnet wird }
         PopupMenu := TPopupMenu(Items[I]);
         Break;
       end;
     end;
   end;
   WM_ENTERMENULOOP:
   begin
     MenuLoop := True; // Menu sichtbar
   end;
   WM_EXITMENULOOP:
   begin
     MenuLoop := False; // Menu nicht mehr sichtbar
     PopupMenu := nil;
   end;
 end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
 


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 03:46 Uhr.
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