Autor Beitrag
FrankBurian
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 57



BeitragVerfasst: Sa 14.01.06 14:46 
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

ausblenden volle Höhe Delphi-Quelltext
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
    { Private-Deklarationen }
    FRightClick: TNotifyEvent;
    procedure GetRightClick(var Msg : TMouseInput); message WM_RBUTTONDOWN;
  protected
    { Protected-Deklarationen }
    procedure DoRightClick(var Msg : TMouseInput); dynamic;
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published-Deklarationen }
    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.
FrankBurian Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 57



BeitragVerfasst: So 15.01.06 15:00 
kann mir keiner weiterhelfen! Es muss doch möglich sein...