Hallo,
ich möchte die MainMenü-Komponente etwas erweitern. Um genau zusagen, möchte ich die Mehtode "RightClick" hinzufügen.
Der folgende Code, den ich zusammengebaut haben, funktioniert aber nicht so richtig. Fehlermeldungen kommen zwar nicht, aber wenn ich der Methode "RightClick" eine Aktion hinzufügen will reagiert die Methode nicht.
Woran könnte der Fehler liegen?
Das zweite Problem ist, ich will die Methode "RightClick" eigentlich TMenuItem zuweisen und nicht TMainMenu?
Wie funktioniert das???
Wäre für Hilfe sehr dankbar!
MfG Frank
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| unit AdvMainMenu;
interface
uses Windows, Menus, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TAdvMainMenu = class(TMainMenu) private FRightClick: TNotifyEvent; procedure GetRightClick(var Msg : TMouseInput); message WM_RBUTTONDOWN; protected procedure DoRightClick(var Msg : TMouseInput); dynamic; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property RightClick: TNotifyEvent read FRightClick write FRightClick; end;
procedure Register;
implementation
procedure Register; begin RegisterComponents('Standard', [TAdvMainMenu]); end;
constructor TAdvMainMenu.Create(AOwner: TComponent); begin inherited Create(AOwner); end;
destructor TAdvMainMenu.Destroy; begin inherited Destroy; end;
procedure TAdvMainMenu.DoRightClick(var Msg: TMouseInput); begin If Assigned(FRightClick) then FRightClick(Self); end;
procedure TAdvMainMenu.GetRightClick(var Msg: TMouseInput); begin DoRightClick(Msg); end;
end. |