Vielleicht noch einen kleinen Tipp:
ListBox1.Items.Text := List.Text;
Kommt auf's Selbe raus, wie
Delphi-Quellcode:
ListBox1.Items := List;
// oder
ListBox1.Items.Assigned(List);
Wobei der Weg über .Text eines TStrings nicht unbedingt optimal ist (außer z.B. bei aktuellen TMemo und TRichEdit), denn was passiert intern?
Es wird, beim Auslesen von .Text, aus allen einzelnen Strings ein ganz großer String gemacht, welcher dann, beim Zuweisen an .Text, erst wieder zerlegt und dann jeder einzelstring an die Komponente übergeben wird.