Thema: Delphi Zwei-mal onmousedown?

Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.613 Beiträge
 
#9

Re: Zwei-mal onmousedown?

  Alt 26. Jan 2004, 08:57
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;
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat