Initialiser un tableau dynamique

Signaler
Messages postés
33
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
27 avril 2007
-
Messages postés
63
Date d'inscription
samedi 22 décembre 2001
Statut
Membre
Dernière intervention
22 décembre 2003
-
bein j'ai un tableau dynamique de record que je n'arrive pas a l'initialise

 CG = record   {CG: Caracteristique Géometrique de la barre}
      an,L,E,J,Iy,Iz,G,s:extended; {an: angle}
      Ng,Nd:cardinal;           {Nd:N°du noeud droite}{Ng:N°du noeud gauche}
      MatReL:Mat;               {MatreL:matrice rigidité élémentaire repére locale;}
      MatReG:Mat                {MatreG:matrice rigidité élémentaire repére global;}


 CAG:array of CG;


procedure initialise (CAG:array of CG;CAC:array of CC;FAM:array of FM;nb:cardinal);
    begin
   setlength(cag,nb,nb);(*une erreur:incompatible type*)
end;


Tendrement :)

3 réponses

Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1
Quand tu effectues le SetLength, est-ce pour changer la taille de CAG ou d'une des matrice incluse dans CAG ?
Car dans le premier cas c'est SetLength(CAG,nb) et dans le deuxième cas c'est SetLength(CAG[Index].MatreL,nb,nb) ou Index est l'indice du tableau CAG dont tu veux initialiser les matrices.

--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
Messages postés
33
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
27 avril 2007

merci Nono40 tu m'ai d'une aide precieuse :)
Tendrement :)
Messages postés
63
Date d'inscription
samedi 22 décembre 2001
Statut
Membre
Dernière intervention
22 décembre 2003

Dans l'aide de Delphi, ou trouve ceci à propos des tableaux dynamiques passés en paramêtre:

Ce sont toujours des tableaux d'indice de base zéro. Le premier élément est 0, le second élément est 1, etc. Les fonctions standard Low et High renvoient, respectivement, 0 et Length ? 1. La fonction SizeOf renvoie la taille du tableau réellement transmis à la routine.On ne peut y accéder qu'élément par élément : l'affectation de la totalité d'un paramètre tableau ouvert est illégale.Ils ne peuvent être transmis à d'autres routines que comme paramètres tableau ouvert ou comme paramètres var sans type. Ils ne peuvent être transmis à SetLength.
Au lieu d'un tableau, vous pouvez transmettre une variable du type de base du paramètre tableau ouvert. Elle est traitée comme un tableau de longueur 1.

Désolé, mais je ne connais pas la solution à ce problème, à part de faire une fonction qui ne prend pas le tableau en paramêtre mais qui modifie directement le tableau.