Perdu avec les tableaux dynamiques

marutska Messages postés 5 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 15 janvier 2003 - 14 janv. 2003 à 20:21
marutska Messages postés 5 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 15 janvier 2003 - 15 janv. 2003 à 21:29
Boujour !!

Je fais depuis peu de la programmation objet, et je dois dire que je mis perd !
j'ai crée 2 objets TLien et TSommet. TSommet a comme atribut un tableau dynamique de TLien. J'ai un méthode qui doit, entre autre, tester la taille de mon tableau. Or le programme ne marche pas.
Pendant le débogage il m'affiche ce que contient le tableau mais ne veux pas indiquer la valeur de la fonction length(Tab), il dit "valeur inaccessible".
Je sais pas quoi faire, j'ai essayer high à la place et ça donne la même chose. Alors si vous avez une idée ou si vous pensez en avoire une mais que vous ne comprennez pas tout a fait ce que je raconte n'hesitez pas a me doner un coup de pouce. Ah oui, je développe en delphi 5.

merci d'avance !!!

:) Marutska :)

7 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
14 janv. 2003 à 21:02
Et si tu nous donnais la déclaration complète de TLien et TSommet... Ce serait plus facile de chercher la solution...

--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
0
marutska Messages postés 5 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 15 janvier 2003
14 janv. 2003 à 21:18
//déclaration de la classe TLien
TLien = class (TObject)
SommetLien:string;
Distance:double;
PRIVATE
procedure EnregistrerLien (SomLien, dist: string);
PUBLIC
constructor Create (SomLien, dist: string);
end;

//déclaration de la classe TGraphe
TSommet = class (TObject)
Sommet : string;
TabArc : array of TLien;
constructor create (som: string); // initialisation de sommet
procedure AjoutLien (Lien:TLien);
end;

ça suffis ou il faut aussi implétation ?

[:-)] Marutska [:-)]
0
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
14 janv. 2003 à 21:55
Oui il faudrait l'implémentation STP de toutes les méthodes : TLien.EnregistrerLien
TLien.create
TSommet.Create
TSommet.AjoutLien

Mais déjà je peux de dire que la déclaration de TSommet n'est pas complète car il faut absoluement créer un destructeur pour libérer les objets du tableau TabArc, sinon la mémoire sera perdue.

Je te repondrais plus en détail avec les implémentations.

--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
14 janv. 2003 à 23:24
Pourquoi se priver des objets conteneurs tels TObjectList, TCollection et consorts ?
Les tableaux dynamiques sont un pis aller, inefficaces en matière de gestion de mémoire.

May Delphi be with you
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
marutska Messages postés 5 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 15 janvier 2003
15 janv. 2003 à 12:58
Merci pour le conseil je penserais à le rajouter, mais c 'est pas une question de memoire.

voici l'implémentation que tu m'a demandé :

{ TArc }

procedure TLien.EnregistrerLien(SomLien, dist: string);
begin
SommetLien:=SomLien;
distance:= StrToFloat(dist);
end;

Constructor TLien.Create ( SomLien, dist: string);
begin
inherited create ();
EnregistrerLien(SomLien,dist);
end;

{ TSommet}

constructor TSommet.Create (Som : string);
begin
inherited Create ();
Sommet:=Som;
//Setlength(TabLien,0);
end;

procedure TSommet.AjoutLien (Lien:TLien);
Begin
if high(TabLien)=-1 then
SetLength(TabLien,1)
else
SetLength(TabLien,Length(TabLien)+1);
TabLien[high(TabLien)]:=Lien;
end;

voila, j'espere que ça pourrat t'aider, merci d'avance !!

:) Marutska :)
0
marutska Messages postés 5 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 15 janvier 2003
15 janv. 2003 à 13:01
Je ne connais pas ces methodes, mais j'i besion de tableau dynamique pour faire le reste de mon programme. J'utilise beaucoup les indices et je ne cherche pas a faire quelque chose de trop compliquer, c pour un dossier a la fac....
merci quand meme je les notes dans un coin au cas où !

:) Marutska :)
0
marutska Messages postés 5 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 15 janvier 2003
15 janv. 2003 à 21:29
merci beaucoup !!!
J'ai réglé mon probleme toute seule !!!

Salut !!!

:) Marutska :)
0
Rejoignez-nous