Mam przykladowo cos takiego:
var Calosc: array of record
costam:string;
costam2: integer;
Lines: array of record
costam:string;
costam2: string;
end;
end;
Ilosc pol w Lines nie jest zalezna od ilosci pol w Calosc, czyli np. length(Calosc) moze sie rownac 3, a np. length(Calosc[1].Lines) := 8.
Gdy musze zwiekszyc wielkosc Calosc to robie
result:=length(Calosc);
setlength(Calosc,result+1);
No i sie ladnie zwiekszaja. Teraz przychodzi moment, w ktorym po zwiekszeniu Calosc, musze Calosc[nawyzszy_index].Lines zwiekszyc o np. 3 pozycje. No i robie:
result:=length(Calosc);
resultl:=length(Calosc[result].Lines);
setlength(Calosc[result].Lines,resultl+1);
Calosc[result].Lines[resultl].costam := 'costam';
No i to juz chyba slabo dziala, chociaz errorow nie wywala, ale jakos wartosci sie chyba nie przypisuja... Najwieksza sieczka sie robi, gdy w innej procedurze zrobie np.:
result:=length(Calosc);
resultl:=length(Calosc[result].Lines);
Rozmowy[result].Lines[resultl].costam := JakasZmienna;
... co daje w zamian acces violation :(.
Jakies pomysly?