Sieb des Eratosthenes

#1
Hallo, ich habe eine Hausaufgabe in Info bekommen.
Diese wäre den Sieb des Eratosthenes in Delphi 5 zu schreiben.
Leider haben wir vorher wenig zu Delphi 5 erklärt bekommen, weshalb ich ein paar Probleme habe.

Ich habe jetzt auf der Seite dieser Seite einen Code dazu gefunden: https://mathematikalpha.de/primzahlsieb-des-eratosthenes
Diesen habe ich jetzt auch "richtig" in Delphi 5 eingefügt. (Mit vorherigen Überprüfungen).
Ich verstehe grob das Vorgehen dieses Codes, bis auf folgende Sachen:
inc(i);
fillchar(zahl,sizeof(zahl),true);
if zahl then write(i:8);

Ich vermute, dass beim letzteren die Zahlen irgendwie Ausgegeben werden. Jedoch habe ich mich nicht mit "write" beschäftigt.
Wenn ich jetzt in mein Programm die Zahl 7 eingebe (Geht dann nicht bis 7, sondern erfüllt alle vorherigen Forderungen) bekomme ich den Fehler: E/A-Fehler 103.
Das hat vermutlich mit dem Code der oben genannten Website zu tun.


Deswegen bräuchte ich bei folgenden Sachen Hilfe:
Wie bekomme ich diesen Fehler weg bzw. Woran liegt der Fehler?
Wie bekomme ich es hin, dass in result.text alle Primzahlen (alle Zahlen im Array, die "wahr" sind) ausgegeben werden?
Wie bekomme ich es hin, dass der Array bis zur Zahl StrToInt(n.text) funktioniert?


Dazu hier noch mein Code: https://pastebin.com/CtXNxPXi

Vielen Dank im Vorraus

//Edit
Vorgegeben ist noch die Verwendung des Memo-Objekts
Deswegen habe ich jetzt den Text result.text zu nem Memo namens result geändert
 
Oben