|
?WinDev et les pointeurs? |
Iniciado por Jean, jun., 30 2005 12:32 PM - 7 respostas |
| |
| | | |
|
| |
Publicado em junho, 30 2005 - 12:32 PM |
bonjour, je voudrais savoir comment windev gere les pointeurs. en gros je souhaite referencer des objets dans 2 tableaux différents et à chaque modif de ces objets ne pas avoir à mettre moi meme les tableaux à jour.
en gros si adr = &mon_objet, comment recuperer le contenu de cette adresse plus tard ? |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 30 2005 - 1:18 PM |
Salut,
Il suffit normalement de déclarer l objet et de le mettre dans le tableau. Il y sera référencé par son adresse, ce ne sera pas une copie de l'objet qui sera insérée.
Autrement dit, si tu mets un objet dans deux tableaux différents et que tu modifies l'un d'eux, tu verras la modif sur l'autre car c'est EXACTEMENT le meme objet qui est référencé. |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 30 2005 - 2:19 PM |
merci pour ta réponse, mais j'ai bien peur de te contredire, j'ai testé ta réponse avec ce code:
mastruct est une structure nom est une chaîne FIN
ttableau1 est un tableau de 0 mastruct ttableau2 est un tableau de 0 mastruct
i est mastruct
i:nom = "dudu" TableauAjoute(ttableau1,i) TableauAjoute(ttableau2,i) Info(ttableau1[1]:nom) i:nom = "roger" Info(ttableau1[1]:nom) Info(ttableau2[1]:nom)
et les 3 fois, j'affiche "dudu"
peux tu me donner le code qui fonctionne dans ton cas? d'avance merci |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 30 2005 - 7:13 PM |
Essaye :
mastruct est une structure nom est une chaîne
FIN
ttableau1 est un tableau dynamique de 0 mastruct //--- Place mémoire réservée
ttableau2 est un tableau dynamique de 0 mastruct dynamique //--- Lien vers ttableau1
i est mastruct
i:nom = "dudu"
TableauAjoute(ttableau1,i) //--- Attention ! alloue une nouvelle place pour une structure de type mastructure mais ne fait pas un lien dynamique vers i
Dimension(ttableau2,Dimension(ttableau2)+1); ttableau2[1] = ttableau1[1] //-- N'alloue pas de place, ne fait que référence au lien
Info(ttableau1[1]:nom,ttableau2[1]:nom,i:nom) //--- Retourne : dudu, dudu, dudu
ttableau1[1]:nom = "roger"; i:nom = "roger-i"
Info(ttableau1[1]:nom,ttableau2[1]:nom,i:nom) //--- Retourne : roger, roger, roger-i
ttableau2[1]:nom = "toto"; i:nom = "toto-i"
Info(ttableau1[1]:nom,ttableau2[1]:nom,i:nom) //--- Retourne : toto, toto, toto-i
Cordialement Emmanuel
"Jean" <carjemanog@hotmail.com> a écrit dans le message de news: 42c3bc9e$1@news.pcsoft.fr...
merci pour ta réponse, mais j'ai bien peur de te contredire, j'ai testé ta réponse avec ce code:
mastruct est une structure nom est une chaîne FIN
ttableau1 est un tableau de 0 mastruct ttableau2 est un tableau de 0 mastruct
i est mastruct
i:nom = "dudu" TableauAjoute(ttableau1,i) TableauAjoute(ttableau2,i) Info(ttableau1[1]:nom) i:nom = "roger" Info(ttableau1[1]:nom) Info(ttableau2[1]:nom)
et les 3 fois, j'affiche "dudu"
peux tu me donner le code qui fonctionne dans ton cas? d'avance merci
|
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 01 2005 - 1:25 AM |
mastruct est une structure nom est une chaîne FIN
ttableau1 est un tableau de 0 mastruct dynamique ttableau2 est un tableau de 0 mastruct dynamique
i est mastruct dynamique = allouer un mastruct
i:nom = "dudu" TableauAjoute(ttableau1,i) TableauAjoute(ttableau2,i) Info(ttableau1[1]:nom) i:nom = "roger" Info(ttableau1[1]:nom) Info(ttableau2[1]:nom) |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 01 2005 - 12:54 PM |
completement merci à toi, maintenant j'y vois plus clair! bonne continuation! Jean |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 01 2005 - 12:55 PM |
ah oui la tout de suite ca fonctionne mieux... merci beaucoup Jean |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 04 2005 - 1:46 PM |
Petite info:
Ok bon alors faut voir ce qu on entend par "objet" Moi j'ai pensé que c'était une instance de classe. Un objet en POO quoi. |
| |
| |
| | | |
|
| | | | |
| | |
|