Bonjour a tous

je pense faire totalement fausse voie, mais bon !

Dans un record, j'ai integre un tStrings pour tenir compte d'une certaine variabilite dans les informations a y entrer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
TYPE
  tChamps    =   RECORD
                    Id                : Integer;
                    Entete            : String[30];
                    CASE Code : Boolean OF
                       True : (id_Code         : Byte;
                               Propre          : Boolean;
                               ListCode        : TStrings;
                               );
                 END;
Ensuite un tableau dynamyque de ces record :
TYPE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 tTabChamps  = Array OF tChamps;
Je cree bien sur une variable

Code : Sélectionner tout - Visualiser dans une fenêtre à part
tabChamps  : tTabChamps;

Mon tableau est inialise avec setlength(tabchamps, x);

et son chargement fonctionne bien avec tous les parametres :
Id,
Entetes, etc

mais evidemment des que j'essaye d'ajouter un truc dans la tstrings ca plante (j'imagine parce qu'elle n'a pas ete declare).

Comment puis-je faire ?


j'ai essaye une autre solution en changeant la tStrings en un autre Array dynamique

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
TYPE
  tChamps    =   RECORD
                    Id                : Integer;
                    Entete            : String[30];
                    CASE Code : Boolean OF
                       True : (id_Code         : Byte;
                               Propre          : Boolean;
                               ListCode        : Array of String;
                               );
                 END;
mais ca ne marche, delphi demande de rendre ce second tableau statique
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
TYPE
  tChamps    =   RECORD
                    Id                : Integer;
                    Entete            : String[30];
                    CASE Code : Boolean OF
                       True : (id_Code         : Byte;
                               Propre          : Boolean;
                               ListCode        : Array[1..100] of String;
                               );
                 END;
mais evidemment ca prendrait trop de place

qq a t-il une idee ??

a+

olivier