Frage:Wieso müssen eigentlich Variablen zuerst initialisiert werden?
Antwort:Weil man sonst auf die (meist zufälligen) Daten anderer Anwendungen zugreift, die ihren Speicher an dieser Stelle einmal reserviert hatten.
Frage:Liegt da irgendwelcher Datenmüll im entsprechenden Speicherplatz rum, der zuerst entfernt werden muss?
Antwort:Ja, so kann man das bezeichnen.
Frage:Wenn die Vorstellung richtig ist: wie kommt der dahin, liegengeblieben vom letzten \"Benutzer\"?
Antwort:Durch die Speicherzuweisung bei Windows wird der Speicher immer an der Stelle zugewiesen, wo er gerade frei ist. Wenn jetzt aber ein Block schon einmal zugewiesen wurde und zwischenzeitlich wieder verfügbar ist, dann kümmert sich das System nicht darum, dass die Daten wieder gelöscht werden.
Frage:Und warum kann Delphi das nicht automatisch machen?
Antwort:Weil dann jedes Programm um einen wesentlichen Faktor langsamer seinen Speicher verwalten würde und man eigentlich immer so Programmieren sollte, dass man nur Werte abfragt, die auch einen erwarteten Wert haben (Nicht das bei der Ziehung der Lottozahlen durch ein Programm plötzlich die Kugel mit der Zahl -57891245 gezogen wird, weil der Speicher nicht initialisiert war).