Getter und Setter für Event-Handler
-
Hi,
kan ich eine Getter/Sette-Methode für Eventhandler schreiben? Ich möchte nämlich einen Button in meiner Frame-Klasse aktivieren, wenn der zugehörige Eventhandler mit einer Funktion belegt wird (!= 0 gesetzt wird) bzw. den Button deaktivieren oder unsichtbar machen, wenn das nicht geschieht oder der Eventhandler zur Laufzeit auf 0 gesetzt wird...
-
Hallo
Ja, Eventhandler sind auch nur Variablen. Du kannst Getter und Setter z.B. vom Typ TNotifyEvent verwenden. Auch als Property.
bis bald
akari
-
Coole Sache.
jetzt hab ich allerdings etwas Schwierigkeiten mit der Umsetzung. Für das folgende Event möchte ich Getter/Setter Methoden bauen:
void __fastcall (__closure *OnMyFormChange) (TStrings* MyStrings, String &MyString);
Die Eigenschaft sähe dann so aus:
__property void __fastcall (__closure *OnMyFormChange) (TStrings* MyStrings, String &MyString) = {read = GetOnMyFormChange, write = SetOnMyFormChange};
Aber wie sehen dann die Parameter der Getter/Setter aus???
-
mach am besten ein typedef
typedef void __fastcall (__closure *TOnMyFormChange)(TStrings* MyStrings, String &MyString);
danach kannst du TOnMyFormChange als ganz normaler Datentyp verwenden.
class A { public: TOnMyFormChange OnMyFormChange; }; void __fastcall Change(TStrings* MyStrings, String &MyString); ... A a; a.OnMyFormChange = &Change;
-
Mit dem typedef klappts