Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Dynamische Arrays in Dynamisches Array vergrößern

  Alt 6. Aug 2011, 22:37
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! <<
  Mit Zitat antworten Zitat