Einzelnen Beitrag anzeigen

Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#1

Einfach das Popup Menü schließen

  Alt 27. Apr 2013, 10:48
Also beim Versuch das Popup Menü mit der mittleren Maustaste zu schließen komme ich nicht weiter.

Es soll ein Popup Menü, welches in einem Memo geöffnet wurde durch den Klick der mittleren Maustaste geschlossen werden. Eben genauso wie wenn ich mit der linken Maustaste neben das Menü klicke.

Mit dieser Lösung klappt es nicht http://www.swissdelphicenter.ch/de/showcode.php?id=2262.

Delphi-Quellcode:
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbMiddle then
      mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
      mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
end;
Durch das Popup geht ja der Fokus verloren. Deshalb wird das Ereignis gar nicht mehr aufgerufen.
Aber wenn ich das ganze im Form1 Ereignis mache klappt es auch nicht.
Das Popup Menü hat ja kein MouseDown Ereignis.

Diese Lösung http://www.entwickler-ecke.de/topic_...d9d2ad?view=df habe ich noch gefunden. Aber bei mir meckert der Compiler (Lazarus), das er keine Popuplist kennt und außerdem
will er bei MakeObjectInstance(PopupListWndProc); immer noch eine Message als Argument bei PopupListWndProc.

Geändert von Ginko (27. Apr 2013 um 10:51 Uhr)
  Mit Zitat antworten Zitat