Hallo,
ich steh grad auf dem Schlauch:
Ich hab ein dynamisches Array das wie folgt aufgebaut ist:
Delphi-Quellcode:
type
TSI_Daten = packed record
MD36998 : array [0..1] of String;
MD36999 : array [0..1] of String;
MD1399 : String;
end;
{...}
var
SI_Achs_Array : array of TSI_Daten;
{...}
und wird so verwendet:
Delphi-Quellcode:
//Setzen der Array-Größe (nur wenn die Größe nicht passt)
If length(SI_Achs_Array) < i_Ax_Drv_Nr then
SetLength(SI_Achs_Array, i_Ax_Drv_Nr);
//abhängig vom Maschinendatum ins Array schreiben
If i_Pos_MD36998 = 1 then
SI_Achs_Array[Pred(i_Ax_Drv_Nr)].MD36998[i_Index] := S_Wert;
If i_Pos_MD36999 = 1 then
SI_Achs_Array[Pred(i_Ax_Drv_Nr)].MD36999[i_Index] := S_Wert;
If i_Pos_MD1399 = 1 then
SI_Achs_Array[Pred(i_Ax_Drv_Nr)].MD1399 := S_Wert;
Das ging bisher ganz gut - nur hat sich jetzt der Datensatz verändert. Dadurch kann
i_Index größer 1 werden.
Nun wollt ich MD36998 und MD36999 auf dynamische Array umstellen und die größe
der zwei Variablen via SetLength vergrößern.
So hab ich es probiert:
Delphi-Quellcode:
If i_Pos_MD36998 = 1 then
If length(SI_Achs_Array[Pred(i_Ax_Drv_Nr)].MD36998) < i_Index then
SetLength(SI_Achs_Array[Pred(i_Ax_Drv_Nr)].MD36998, i_Index);
If i_Pos_MD36999 = 1 then
If length(SI_Achs_Array[Pred(i_Ax_Drv_Nr)].MD36999) < i_Index then
SetLength(SI_Achs_Array[Pred(i_Ax_Drv_Nr)].MD36999, i_Index);
Aber so werden die Variablen nicht erhöht.
Nun meine Frage: Wie kann ich dynamische Arrays in einem dynamischen Array vergrößern?
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<