Einzelnen Beitrag anzeigen

Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#6

Re: Komponenten mit onClick ausstatten...

  Alt 3. Dez 2003, 10:24
Ja, das müsste funktionieren, sofern Dings eine Prozedur mit den gleichen Parametern wie TNotifyEvent ist.
Also Procedure Dings( Sender: TObject ) Des weiteren muss das Event onClick in deiner Komponente natürlich auch irgendwann einmal ausgelöst werden. Dazu musst du halt zunächst einmal innerhalb der Komponente feststellen, wann geklickt wurde ( für OnClick). Wie du das machst hängt von deiner Komponente ab. Du könntest z.B. dem OnClick - Event eines Objektes auf deiner Komponente dein eigenes OnClick zuweisen.

Delphi-Quellcode:

type
 TBtn = class( TComponent )
 private
   FOnClick: TNotifyEvent;
   Procedure DoOnClick( Sender: TObject );
   [..]
 public
   [..]
 published
   Property OnClick: TNotifyEvent Read FOnClick Write FOnClick;
   //Die externe Prozedur ( Dings ) ist diesem Property und damit FOnClick zugewiesen
   [..]
End;

[..]

Procedure TBtn.DoOnClick( Sender: TObject ); // Diese Prozedur führst du aus, wann immer dein Programm einen Klick feststellt
Begin // oder\und du weist sie dem OnClick-Event andere Objekte in deier Komponente zu
  If Assigned( FOnClick ) Then // in deinem Fall True, da die externe Prozedur "Dings" zugewiesen ist
    FOnClick( Self ); // führt die externe Prozedur "Dings" mit sich selbst als Sender aus
End;
  Mit Zitat antworten Zitat