Variable locale et globale [Résolu]

Messages postés
46
Date d'inscription
mardi 2 juin 2009
Statut
Membre
Dernière intervention
7 octobre 2009
- - Dernière réponse : cs_cantador
Messages postés
4992
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
- 22 sept. 2009 à 14:25
bonjour à tous!

j'ai crée une procedure qui rend comme résultat un tableau dynamique "TableauCc", dans le corps de cette preocedure j'ai mis l'instruction :

procedure Algorithme1(ListeAdj:PListe;TabTraiT:Array of Integer;n:integer;Var TableauCc:Array of Integer);
Var
....
Begin

SetLength(TableauCc,6);
.
..
...
end;
il affiche: type incompatible sur la ligne "SetLength(TableauCc,6)" comme erreur et je ne vois pas pourquoi??
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
7
3
Merci
Pour effectuer un passage de paramètres dans une procédure ou une fonction, il est nécessaire de créer un type particulier.

type TDynamicIntArray = array of Integer;
 
procedure Algorithme1(ListeAdj:PListe; TabTraiT: TDynamicIntArray; n:integer; Var TableauCc: TDynamicIntArray); 
 



@+
Nico { www.ni69.info }

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ni69
Messages postés
46
Date d'inscription
mardi 2 juin 2009
Statut
Membre
Dernière intervention
7 octobre 2009
0
Merci
Merci beaucoup "ni69" tu avais raison, j'ai changé la déclaration comme tu me l'as indiqué et ça marche!

MERCI encore,à +
Commenter la réponse de Samou85
Messages postés
46
Date d'inscription
mardi 2 juin 2009
Statut
Membre
Dernière intervention
7 octobre 2009
0
Merci
Je vais poser une autre question dans le meme esprit:
si maintenant je crée une autre procédure, qui fait appel à la précédente procédure c'est à dire: "procédure Algorithme1" qui a en sortit le tableau dynamique de la façon suivante:

 

procedure TForm1.Button4Click(Sender: TObject);
Var
.....
Begin
..
...
Algorithme1(ListeAdj,Indice,6,TableauCc);
ShowMessage(IntToStr((Length(TableauCc)-1)));
..
...
{traitement};
..
end;

ce qui se passe c'est que quand j'exécute ça n'affiche pas d'erreur mais une fois que ça compile ça s'arrete en mettant une erreur au niveau de la ligne "ShowMessage(IntToStr((Length(TableauCc)-1)));"
Voilà je voudrais savoir où est l'erreur??
Merci de me répondre!
Commenter la réponse de Samou85
Messages postés
1015
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
5
0
Merci
le declaration
type TDynamicIntArray = array of Integer;

existe deja dans l'unité Types en tant que TIntegerDynArray
Commenter la réponse de Guillemouze
Messages postés
4992
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
9
0
Merci
bonjour,

puisqu'il faut créer un tableau pourquoi ne pas le prévoir avec un paramètre :

type TDynamicIntArray = array of Integer;
 
procedure Algorithme1(ListeAdj:PListe; TabTraiT: TDynamicIntArray; n:integer;
out T:TDynamicIntArray);



cantador
Commenter la réponse de cs_cantador