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
 
Shark99

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

AW: Popupmenu TMenuItem Rechtsklick

  Alt 28. Jul 2015, 13:19
Hab noch was Interessantes entdeckt bei der zweiten Lösung (die mit den zwei problematischen Punkten).

Auch wenn der Rechtsklick damit funktioniert, wird die Funktion MenuRButtonUp() überhaupt nicht aufgerufen. Label1.Caption ändert sich nie. Projekt hab ich angehängt.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls;

type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    PopupItem11: TMenuItem;
    popupitem21: TMenuItem;
    submenu1: TMenuItem;
    Label1: TLabel;
    procedure PopupItem11Click(Sender: TObject);
    procedure PopupItem21Click(Sender: TObject);
    procedure PopupItemClick(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
  private
    FSelectedItem: TMenuItem;
    FTracking: Boolean;
    procedure MenuRButtonUp(var Msg: TMessage); message WM_MENURBUTTONUP;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.MenuRButtonUp(var Msg: TMessage); // ??? wird nie aufgerufen
var
  Cmd: UINT;
begin
  Label1.Caption := TimeToStr(now);
  LongBool(Cmd) := TrackPopupMenuEx(PopupMenu1.Handle,
                            TPM_RECURSE or TPM_BOTTOMALIGN or TPM_RETURNCMD,
                            Mouse.CursorPos.X, Mouse.CursorPos.Y, Handle, nil);
  if Cmd <> 0 then
    PopupMenu1.DispatchCommand(Cmd);
  inherited;
end;


procedure TForm1.PopupItem11Click(Sender: TObject);
begin
  Caption := TimeToStr(Now)+' Popup Item 1 clicked on ';
end;

procedure TForm1.PopupItem21Click(Sender: TObject);
begin
  // whatever..
  Caption := TimeToStr(Now)+' Popup Item 2 clicked on ';
end;

procedure TForm1.PopupItemClick(Sender: TObject);
begin
  Caption := TimeToStr(Now)+' clicked on '+TMenuItem(Sender).Caption;
end;

procedure TForm1.PopupMenu1Popup(Sender: TObject);
var mi : TMenuItem;
begin
  submenu1.Clear;
  mi := TMenuItem.Create(PopupMenu1);
  mi.Caption := 'Test1';
  mi.OnClick := PopupItemClick;
  submenu1.Add(mi);
  mi := TMenuItem.Create(PopupMenu1);
  mi.Caption := 'Test2';
  mi.OnClick := PopupItemClick;
  submenu1.Add(mi);
end;

end.
Angehängte Dateien
Dateityp: zip MenuTest.zip (251,5 KB, 8x aufgerufen)
  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 04:26 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