OZ - Di 09.01.07 21:47
Titel: Assigned (OnFehler) - Test : Warum?
Hallo zusammen,
ich habe ein kleines Verständnisproblem.
Warum muß ich, wenn ich ein Ereigniss aufrufe nochmals etwas auf assigend testen?
Delphi-Quelltext
1:
| if Assigned(OnFehler) then OnFehler(Self); |
Vielen Dank!
OnlineHelp
Quelltext
1:
| Die Funktion Assigned prüft, ob ein Zeiger oder eine Prozedurvariable den Wert NIL hat (nicht zugewiesen ist). |
alias5000 - Di 09.01.07 22:18
OnFehler ist ja nur eine Art Variable, in die später beim Verwenden der Komponente eine Prozedur reinschreibst, die ausgeführt wird. Genauer gesagt kopierst du beim Zuweisen in der Hauptanwendung
Delphi-Quelltext
1:
| DeineKomponente.OnFehler := MainForm.DeineKomponenteFehler; |
den Zeiger der Prozedur
MainForm.DeineKomponenteFehler in OnFehler rein. Wenn du aber dies in der Hauptanwendung noch nicht getan hast, ist zeigt OnFehler auf keine gültige Prozedur (ist also
not assigned(OnFehler).
Wenn dies so ist, darfst du natürlich nicht versuchen OnFehler auszuführen, tust du es doch, masakriert dich Delphi mit einer netten und dezenten EAccessViolation.
Gruß alias5000