[gelöst] Standard-Popup-Menü ausblenden

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
willi4willi
Lazarusforum e. V.
Beiträge: 176
Registriert: Sa 1. Nov 2008, 18:06
OS, Lazarus, FPC: Lazarus 3.8 FPC 3.2.2 x86_64-win64-win32/win64 x86_64-linux-gtk2
CPU-Target: i386, win64, arm

[gelöst] Standard-Popup-Menü ausblenden

Beitrag von willi4willi »

Hallo!

Wenn ich in einem laufenden Programm auf ein Eingabefeld (TEdit) mit der rechten Maustaste klicke, dann erscheint ein Standard-Kontext-Menü.

Wie kann ich das verhindern?

Ich möchte bei Rechts-Click eine eigene Procedure aufrufen ohne dass dieses Menü erscheint.
Zuletzt geändert von willi4willi am Mo 6. Okt 2014, 20:08, insgesamt 1-mal geändert.
 

Viele Grüße

Willi4Willi

------------

Mathias
Beiträge: 7315
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Standard-Popup-Menü ausblenden

Beitrag von Mathias »

Eine Komponente TPopUpMenu auf das Formular legen. (Bei Standard das 2. Sybol links von TButton)

Anschliessend das PopUpMenu bei TEdit-Egenschaften auswählen und schon hast du dein eigenes Menu.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
willi4willi
Lazarusforum e. V.
Beiträge: 176
Registriert: Sa 1. Nov 2008, 18:06
OS, Lazarus, FPC: Lazarus 3.8 FPC 3.2.2 x86_64-win64-win32/win64 x86_64-linux-gtk2
CPU-Target: i386, win64, arm

Re: Standard-Popup-Menü ausblenden

Beitrag von willi4willi »

Hallo Mathias,

ja das funktioniert. Aber ich möchte kein Kontext-Menü haben, sondern dass bei Rechts-Click eine eigene Procedure aufgerufen wird - ohne Menü.
 

Viele Grüße

Willi4Willi

------------

Benutzeravatar
theo
Beiträge: 11325
Registriert: Mo 11. Sep 2006, 19:01

Re: Standard-Popup-Menü ausblenden

Beitrag von theo »

Dann entferne alle Einträge aus dem Popupmenu, lasse es aber eingehängt.
Das klappt zumindest unter GTK2.

Michl
Beiträge: 2513
Registriert: Di 19. Jun 2012, 12:54

Re: Standard-Popup-Menü ausblenden

Beitrag von Michl »

Warum nicht einfach:

Code: Alles auswählen

procedure TForm1.Edit1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  case Button of
    mbRight: ShowMessage('Jetzt könnte eine Procedure gestartet werden');
  end;
end;

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Benutzeravatar
willi4willi
Lazarusforum e. V.
Beiträge: 176
Registriert: Sa 1. Nov 2008, 18:06
OS, Lazarus, FPC: Lazarus 3.8 FPC 3.2.2 x86_64-win64-win32/win64 x86_64-linux-gtk2
CPU-Target: i386, win64, arm

Re: Standard-Popup-Menü ausblenden

Beitrag von willi4willi »

Hallo,

super, das hat geklappt. Ich habe einfach ein leeres Popupmenu hinzugefügt und schon ist das Standard-Ding weg.

Dazu noch der Tipp von Michl und die Lösung ist perfekt.

Danke allen!
 

Viele Grüße

Willi4Willi

------------

Mathias
Beiträge: 7315
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] Standard-Popup-Menü ausblenden

Beitrag von Mathias »

Dann entferne alle Einträge aus dem Popupmenu, lasse es aber eingehängt.
Das klappt zumindest unter GTK2.
Bei mir unter Win 7 kann ich den letzten Eintrag im Menu-Editor nicht löschen.
Es geht nur im Objectinspector.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten