Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

Ableitung von TButton und OnMouseDown

  Alt 3. Aug 2017, 12:09
Hallo,

ich möchte gern die TButtons etwas pimpen und wollte daher eine eigene Klasse davon ableiten. Das hier ist meine Inspirationsquelle. Ich hatte eine weile gebraucht, die Deklaration/Definition von OnMouseDown . Jetzt scheitere ich aber dran, dass mir der Compiler beharrlich erklärt, mein MouseDown würde sich von der vorherigen Deklaration unterscheiden (E2037).
Da ich die Procedurköpfe in der Implementation aber nicht von Hand tippe, sollte das zumindest passen. Ich bin im Moment ziemlich ratlos, vermute aber einen profanen Fehler, den bestimmt jemand schnell entdeckt:
Delphi-Quellcode:
Unit _main;

Interface

Uses
   Winapi.Windows, Winapi.Messages,
   System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

Type
   TMyButton   = Class(TButton)
                 Private
                     fOnMouseDown : TMouseEvent;
                     Procedure MouseDown(Sender: TObject; Button: TMouseButton;
                        Shift: TShiftState; X, Y: Integer); Override;
                 Published
                     Property OnMouseDown: TMouseEvent Read fOnMouseDown Write fOnMouseDown;
                 End;

   TForm1      = Class(TForm)
                 End;

Var
   Form1         : TForm1;

Implementation

{$R *.dfm}

Procedure TMyButton.MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X: Integer; Y: Integer);
Begin
   //
   // == > genau hier würde ich gern etwas machen
   //
   If Assigned(fOnMouseDown) Then fOnMouseDown(Sender, Button, Shift, X, Y);
End;

End.
Alex Winzer
  Mit Zitat antworten Zitat