![]() |
Delphi-Version: 7
Eigenes Event anlegen + Event Handler
Ich habe bereits nach Event Handler und method pointer im Forum gesucht, aber nur die Variante gefunden, daß jemand einen eigenen Eventhandler zuweisen möchte. Das habe ich bereits gemacht und das klappt auch.
Nun habe ich mir jedoch eine eigene Button Klasse geschrieben und möchte dieser Klasse ein OnClick Event spendieren, daß ich später mit einem Eventhandler in der Form MyButton.OnClick:=bla; belegen kann. Nun die Frage, wie legt man OnClick an? Ich habe es als OnClick:TProcedure; angelegt, da kommt natürlich der Fehler "Incompatible Types: regular procedure and method pointer". Als OnClick:TMethod; ging es auch nicht. Wie legt man soetwas an? Hier etwas Code dazu:
Delphi-Quellcode:
OnClick soll je nach Anwendungsfall durch OnClickActive oder OnClickBypass ersetzt werden. Das könnte ich natürlich auch anders lösen, aber ich möchte gern etwas neues lernen.
TToggleButton = class(TConnector)
protected selected:boolean; public OnClick:TProcedure; property isSelected:boolean read selected write selected; constructor Create(newtarget:TModule); virtual; procedure OnClickActive; procedure OnClickBypass; end; Hat jemand eine Idee? Danke! |
AW: Eigenes Event anlegen + Event Handler
Delphi-Quellcode:
TNotifyEvent
|
AW: Eigenes Event anlegen + Event Handler
Besten Dank! So funktioniert es:
Delphi-Quellcode:
TToggleButton = class(TConnector) protected selected:boolean; public OnClick:TNotifyEvent; property isSelected:boolean read selected write selected; constructor Create(newtarget:TModule); virtual; procedure OnClickActive(Sender:TObject); procedure OnClickBypass(Sender:TObject); end; |
AW: Eigenes Event anlegen + Event Handler
Ich bezweifle das. Ein Ereignis ist eine vom Anwender der Klasseninstanz zu belegende Methode.
So ist es richtig
Delphi-Quellcode:
Type
TMyClass = Class FOnDoSomething : TNotifyEvent; public property OnDoSomething : TNotifyEvent Read FOnDoSomething write FOnDoSomething; End; |
AW: Eigenes Event anlegen + Event Handler
Ah, wieder was gelernt. Danke!
|
AW: Eigenes Event anlegen + Event Handler
da fehlt das Schlüsselwort "property" davor...
|
AW: Eigenes Event anlegen + Event Handler
Zitat:
Nee, danke: Geändert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz