VizeTE - Sa 08.02.03 09:07
Titel: dynam. Array eines Records in abgeleitetem Objekt belegen
Hallo alle zusammen.
Also ich habe folgendes Problem:
Ich habe mir einen Record definiert der etwa so aussieht:
Quelltext
1: 2: 3: 4:
| TMyRecord = record Item1 : typ1; Item2 : typ2; end; |
Und dazu passend einen dynamischen Array
Quelltext
1:
| TMyRecordList = array of TMyRecord; |
Mit Hilfe dieses Types habe ich dann eine Variable im proteted Bereich eines Objektes deklariert.
Das sieht dann etwa so aus:
Quelltext
1: 2: 3: 4:
| TMyObject = class protected FMyRecordList : TMyRecordList; end; |
So dann habe ich dieses Objekt abgeleitet...
Quelltext
1: 2: 3: 4: 5:
| TMyObject2 = class(TMyObjekt) . . . end; |
Und hier ensteht dann mein "Problem". Ich möchte dem Array nun einfach was zuweisen. Aber nicht so das ich da jeden Index durcharbeite sondern eher in dem Stil, dass das ungefähr wie folgt aussieht:
Quelltext
1: 2: 3: 4:
| FMyRecordList := TMyRecordList( (Item1: [Wert], Item2: [Wert]), (Item2: [Wert], Item2: [Wert]) ); |
Wobei vielleicht noch zu sagen ist, dass in meinem Record auch wiederrum selbstdefinierte
Typen vorhanden sind. Das schrenkt ja dann die Verwendung von Varianten ein, glaube ich.
Das Problem besteht wahrscheinlich lediglich darin, dass ich die exakte Syntax einfach nicht kenne.
Wäre schön wenn mir da jemand auf die Sprünge helfen könnte ;o)
Ciao und vielen Dank,
VizeTE
Andreas Pfau - Sa 08.02.03 19:39
Also, soweit ich weiß, kannst du nur liokale Variablen initialisieren (also nicht im code selber). Das sieht dan etwa so aus:
Quelltext
1: 2:
| var Point := TPoint(X: 1; Y: 2); |
Mit deinem Array wird das wahrscheinlich eh' nicht gehen, da man ja zuerst den Speicher reservieren muss (SetLength()). Und dann kannst du die Variable ja nicht mehr initialisieren.