Initialiser un tableau dynamique

cs_ghassenus Messages postés 33 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 27 avril 2007 - 28 déc. 2002 à 14:15
cs_Dalamar Messages postés 63 Date d'inscription samedi 22 décembre 2001 Statut Membre Dernière intervention 22 décembre 2003 - 29 déc. 2002 à 15:33
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

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
28 déc. 2002 à 22:16
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
0
cs_ghassenus Messages postés 33 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 27 avril 2007
28 déc. 2002 à 22:54
merci Nono40 tu m'ai d'une aide precieuse :)
Tendrement :)
0
cs_Dalamar Messages postés 63 Date d'inscription samedi 22 décembre 2001 Statut Membre Dernière intervention 22 décembre 2003
29 déc. 2002 à 15:33
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.
0
Rejoignez-nous