Forum: Programmieren allgemein
by Uwe Raabe,
27. Jul 2009
Die Version von TheReaper ist genau richtig! Das mit dem Sender ist zwar nicht notwendig, aber sinnvoll - somit kann dann der Event-Handler feststellen, wer den Event ausgelöst hat, wenn er sich bei mehreren eingeklinkt hat. Die Namensgebung von DoTischChange ist reine Geschmacksache, aber nicht unüblich.
Forum: Programmieren allgemein
by Uwe Raabe,
27. Jul 2009
Die (meiner Meinung nach) beste Art einen Event auszulösen ist eine eigene Methode (protected oder public), die das erledigt. Da das private Feld FOnTischChange (auf das man sicher nicht verzichten kann, da es den Methodenzeiger speichert!) wäre für abgeleitete Klassen nicht zugänglich - somit könnten diese den Event auch nicht auslösen. Daher:
procedure TTischSteuerung.TischChange;
begin
...
Forum: Programmieren allgemein
by Uwe Raabe,
24. Jul 2009
Was anderes wäre auch mehr als seltsam!
Events sind Zeiger auf Methoden. Durch die Zuweisung "OnTischChange := <irgendwas>" weist du diesem Zeiger eine Methode zu, bei "OnTischChange := nil" wird auf keine Methode verwiesen. Da Methoden auch Funktionen mit Rückgabewerten sein können, würde ein Vergleich "if OnEvent <> nil then" nicht prüfen, ob OnEvent eine Methode zugewiesen ist, sondern ob...