Thema: Delphi Vererbung von Events

Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Vererbung von Events

  Alt 23. Jul 2005, 10:14
Hallo,

Zitat von hanselmansel:
Delphi-Quellcode:
type
  Wechselbutton = class(TCustomControl)
  private
    FOnMouseDown :TMouseEvent;
    b_MouseDown :Boolean;
  protected
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); dynamic;
  published
    Property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;
    Property OnClick;
  end;
Wenn Du das einfach haben willst, dann mach das so:
Delphi-Quellcode:
type
  TWechselbutton = class(TCustomControl)
  private
    b_MouseDown :Boolean;
  protected
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; // <--
  published
    Property OnMouseDown;
    Property OnClick;
  end;

implementation

TWechselButton.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  b_MouseDown := True;
  inherited;
end;
Damit überschreibst Du die originale MouseDown-Methode (die ist nicht umsonst as dynamic deklariert). So spart Du Dir die Sache mit den Events und machst es gleichzeitig so, wie die VCL das vorsieht.

Gruß
xaromz

//Edit: ja, ja, der rote Kasten...
  Mit Zitat antworten Zitat