Hat dir diese Antwort geholfen?
Ich probiers mal:
{$I-} und {$I+} schalten die Fehlerprüfung für Ein- und Ausgabeoperationen zur Laufzeit aus bzw. wieder ein. Das ist sinnvoll, wenn man Fehler im Programm selbst abfangen möchte. Wenn man z.B. versucht, eine Datei zu öffnen, die aber gar nicht da ist, würde das Programm crashen. Einfach so, ohne Fehlermeldung bzw. mit sowas:
Runtime error 2 at 0x00401074
0x00401074
0x00401169
Also nicht so richtig brauchbar. Wenn man die Fehlerprüfung ausschaltet, passiert das nicht, das Programm läuft weiter. Bis man versucht auf die Datei zuzugreifen. Und hier kommt IOResult ins Spiel. Die Funktion enthält den Status der letzten IO-Operation. Ist der Status 0, ist alles OK und man kann weiter arbeiten. Ist der Status z.B. 2 wurde die Datei nicht gefunden. So kann man wenigstens eine vernünftige Fehlermeldung produzieren und das Programm kontrolliert beenden.
Du übergibst einer Funktion/Prozedur eine Variable.
call-by-value: Es wird der Wert (der Inhalt) der Variable übergeben. Die Funktion arbeitet auf einer Kopie, der originale Wert der Variablen im Hauptprogramm wird nicht verändert.
call-by-reference: Es wird ein Verweis (Referenz) auf die Variable übergeben. Die Funktion arbeitet somit auf dem Original und alle Änderungen bleiben auch nach dem Beenden der Funktion bestehen.