mschnell hat geschrieben:Ich habe mein Beispiel mittels "Class Helper" hinbekommen. Das ist dann auch eine "offizielle" nicht-Hacker - Lösung.
Da ich für die Funktionalität ja OnClick überschreiben muss und dazu das alte OnClick speichern muss, um es wieder aufrufen zu könenn, fehlt mir der Speicherplatz für das alte OnClick, weil ClassHelper ja idiotischerweise keine neuen Variablen definieren kann.
Also verwenden wir einen Rucksack-Trick: Tag als Pointer auf ein TNotoFyEvent benutzen und die TNotiofyEvent -Variable (die besteht ja aus zwei Pointern) mit New auf dem Heap anlegen.
Also im Grund das gleiche, was meine Helper Klasse oben macht. Einen Nachteil haben übrigens beide Lösungen: wenn programmtechnisch irgendwo
OnClick überschrieben wird, kriegt das keiner mit. Von daher auch nur als Hack zu gebrauchen.
mschnell hat geschrieben:Schön wäre, wenn FPC Class-Helper Variablen automatisch anlegen könnte (z.B. mit so einem Rucksack-Trick)
Das wird wohl nicht passieren, weil die Class Helper ja nur eine Art syntaktischer Zucker sind. Das gleiche, was sie können kannst du mit folgendem Konstrukt erreichen:
Jetzt kann diese Prozedur irgendwas mit AButton machen. Bei einem Class Helper ist es fast genauso, nur dass es so aussieht, als würden die Methoden zur Klasse gehören(*). Mit sauberer Objektorientierung hat das meines Erachtens nicht mehr viel zu tun.
Michael
* Na gut, er kann auch noch Methoden überschreiben und auf
Protected-Bereich zugreifen, aber das könnte auch ein Class Cracker.