Hier liegt der Fehler: Du weist dem Ereignis explizit eine andere Methode zu:
Zitat:
OnMouseDown := buttonskinonmousedown;
Wenn Du nun 'einfach nur' die OnMouseDown Methode überschreiben und nicht umbiegen würdest, könntest Du auf dem Formular die Methode umbiegen und mit 'inherited' den ursprünglichen Code ausführen lassen.
Will heissen:
Delphi-Quellcode:
...
protected
MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
...
procedure TButtonskin.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
inherited; // <-- ganz! wichtig
ImageList1.GetBitmap(1,Picture.Bitmap);
Refresh;
end;
// weiter auf dem form:
procedure TForm1.Buttonskin1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
inherited; // <-- fast noch wichtiger ;-)
showMessage('asd');
end;