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.