Zitat von
alzaimar:
Doch, es ist unendlich. Du versuchst zwar, mit einem dynamischen Array das Problem der Unendlichkeit zu umgehen (Dein 'flomp' ist ja in Wirklichkeit ein Pointer), aber Delphi lässt das eben nicht zu(Aus gutem Grund). Was du machen willst, ist Folgendes;
Delphi-Quellcode:
Type
PMyRecord = ^TMyRecord; // erlaubt, obwohl TMyRecord noch nicht definiert ist
TMyRecord = Record
mrFoo : Integer;
mrBar : Array of PMyRecord;
End;
So hab ich das auch gelöst (musste ich weil Records mit Variant-Teil nur Pointer auf Records, Arrays und Objekte zulassen)
Aber ich denke trotzdem nicht das mein Beispiel zwangsläufig unendlich werden würde. Angenommen ich habe am Anfang ein Record (R).
Dann habe ich da drin auf jeden Fall ein Array (R.A)
Diesem Array kann ich zum Beispiel die Länge 2 geben. Dadurch bekomme ich 2 neue Records (R.A[0] und R.A[1])
Jeder dieser Records hat wieder ein Array (R.A[0].A und R.A[1].A) Wenn ich jetzt aber diesen beiden Arrays die Länge 0 gebe, hört es hier auf.
Es würde sich doch theoretisch ein Baum bilden der an jedem Knoten (Record) so viele neue Äste hat wie das Array (Length(Array)). Am Ende dieses Baumes hat man überall ein Array der Länge 0.