Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Komponente ableiten: Ereignis löschen ???

  Alt 6. Jun 2006, 12:54
Als ich den Source noch nicht hatte hab ich sowas wie folgt gemacht:
Delphi-Quellcode:
  TMeinKlasse = class(TUrsprungsklasse)
  private
    fOnMouseMove: TMouseMoveEvent;
    procedure FOnMouseMoveProc(Sender: TObject; Shift: TShiftState; X, Y: Integer);
  public
    constructor Create(AOwner: TComponent); override;
  published
    property OnMouseMove: TMouseMoveEvent read fOnMouseMove write fOnMouseMove;
  end;
[...]
constructor TMeinKlasse.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  inherited OnMouseMove := FOnMouseMoveProc;
end;

procedure TMeinKlasse.FOnMouseMoveProc(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  //Mein Zeugs
  if Assigned(fOnMouseMove) then
    fOnMouseMove(Sender, Shift, X, Y);
end;
Die Lösung mit dem Überschreiben ist zwar besser (vor allem wenn auf Vorgängerobjecte gecastet wird etc.) aber wenn es keine Methode zum Überschreiben gibt bzw. man diese nicht kennt ist dies eine annehmbare Lösung.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat