Problème de tableau dynamique

Problème de tableau dynamique - Delphi/Pascal - Programmation

Marsh Posté le 27-05-2004 à 09:32:45    

Bonjour, je commence à traviller sous Delphi depuis peu et il me manque encore quelques connaissances dans le domaine...
Donc voila mon souci : j'ai déclaré un tableau dynamique, et je souhaite pouvoir le redimenssioner dans une procedure.
Voici le prototype 'procedure GrowSize(tableau: array of TInfoCell; size: integer);'
A l'intérieur de ma procedure je tente un SetLength et la le compilo me dit que ce tableau n'est pas dynamique... J'ai bien tent" de mettre le mot clef 'dynamic' devant array dans le prototpe mais il me dit ne pas connaitre... Une librairie à ajouter ? Une astuce ? Merci


---------------
/* Toblerone is so gooooood 4 U */
Reply

Marsh Posté le 27-05-2004 à 09:32:45   

Reply

Marsh Posté le 27-05-2004 à 10:05:01    

Le mot-clé dynamic n'a rien à voir avec ça, c'est un peu dans le même genre que virtual, pour les procédures/fonctions d'objets.
 
Quand tu passes une variable à une fonction, elle est copiée sur la pile.
 
Donc dans ce cas-ci il fait une copie de ton tableau.
Tu dois le passer en var (et quand tu ne veux pas le modifier tu dois le passer en const. Idem pour les chaînes et les record (toutes les structuress "complexes donc" ).
 
Il se peut qu'il rale en disant que les types des deux tableaux ne sont pas compatibles.
Pour éviter ça, il faut déclarer un type :
type TInfoCells: array of TInfoCell;
et ensuite déclarer ta variable et ton paramètre de procédure avec ce type plutôt que l'array of.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed