Einzelnen Beitrag anzeigen

Glados
(Gast)

n/a Beiträge
 
#6

AW: TPopupMenu Popup überschreiben / DoPopup wird nie aufgerufen

  Alt 20. Okt 2017, 10:55
Ich lerne gerade erst was Ableiten überhaupt bedeutet.

Das Problem ist, dass DoPopup grundsätzlich nicht aufgerufen wird, obwohl ich das Event doch überschrieben habe (Interposer-Klasse).

Ich möchte mit DoPopup das aktuell sichtbare Popupmenu in TPopupListEx(PopupList).PopupMenu speichern.
In WndProc > WM_EXITMENULOOP wird es dânn auf nil gesetzt.

Ich würde ja zum Setzen des aktuell sichtbaren Menus WM_ENTERMENULOOP nutzen aber ich brauche den Sender und den habe ich in WndProc nicht.

Delphi-Quellcode:
type
 TPopupMenu = class(Vcl.Menus.TPopupMenu)
 private
 protected
  procedure DoPopup(Sender: TObject); override;
 public
 end;

implementation

procedure TPopupMenu.DoPopup(Sender: TObject); // WIRD NIE AUFGERUFEN. WARUM?!
begin
 ShowMessage('ABC');
 TPopupListEx(PopupList).PopupMenu := Sender as TPopupMenu;

 inherited;
end;

Geändert von Glados (20. Okt 2017 um 11:00 Uhr)
  Mit Zitat antworten Zitat