Aber warum in aller Welt muss ich die Länge des Arrays nicht angeben?
Weil die Länge im Variant bereits enthalten ist. Es gibt eine Funktion DynArrayFromVariant, die aus einem Variant ein dynamisches Array macht. Der Delphi-Compiler ist so clever, diese Funktion bei der Zuweisung aufzurufen.
Wäre es generisch, z.B. List oder vector aus C++ wäre ja mit .Add(meinVar) alles fein. Kann mir das jemand erklären?
Dazu müsste ich erst verstehen, was du hier meinst.
Hier nochmal ein wenig Code:
Die Deklaration von TDiskInfo und TDiskInfoList wäre sicher hilfeich. Abgesehen davon ist die Methode irgendwie unvollständig.