PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Problème champclone champsupprime
Problème champclone champsupprime
Débuté par walter_aline, 18 aoû. 2005 17:08 - 10 réponses
Posté le 18 août 2005 - 17:08
J’ai créé un super champ (appelé ‘Groupe’) contenant
- un champ image (de fond)
- un champ image (autre)
- un ascenseur vertical
- un ascenseur horizontal
- un super champ (appelé ‘station’) contenant
- 4 libellés

Je clone ce super champ ‘station’ pour en créé plusieurs (ST1, ST2, ...) qui sont dans le super champ ‘groupe’.
Je supprime un des champs station avec la fonction champsupprime et ensuite je fais un champclone avec le même nom que la station précédente et il me dit qu’elle existe déjà.
Pourtant le champ en question a disparu, j'ai essayer de la rendre visible (..visible=vrai), ça ne donne rien.

Bref, je n’arrive pas à supprimer mes clones de super champ qui appartiennent à un autre super champ

SI ChampExiste(ST1) ALORS

//on supprime l'ancien
ChampSupprime(NomNTStation)

ChampClone(Groupe,ST1,Abscisse,Ordonnee)

FIN

Il plante en me disant que le champ ST1 existe déjà, ce qui est vrai car si je fait un champexiste juste après la suppression, ça me rend vrai.

La suppression n’a pas marché, je n'arrive pas à comprendre pourquoi.
Merci
Aline
Posté le 18 août 2005 - 18:53
salut,
tu clône le champ ou le groupe ?
Posté le 19 août 2005 - 11:57
je clone le super champ 'station' qui se trouve dans le super champ 'groupe' (c'est vrai que mon explication n'est pas très clair)

le clone se trouve dans le groupe, en fait je n'arrive pas a supprimer un super champ (clone de 'station') qui se trouve dans un autre super champ ('groupe)

SI ChampExiste(ST1) ALORS

//on supprime l'ancien
ChampSupprime(St1)

ChampClone(Groupe.station,ST1,Abscisse,Ordonnee)

FIN
Posté le 19 août 2005 - 12:16
j'ai recréé l'erreur seule dans un projet
Elle est reproductible
Voici la suite de code que j'effectue
Merci, c'est simpa de regarder
PS: je peux t envoyer le code si ta une @mail à me donner


//ajoute un clone dans la fenetre principale

Ensemble_des_clones est un super champ dans une fenêtre
ElementClonable est un super champ appartenant à Ensemble_des_clones

//je crée un clone qui s’appelle « Clone »
ChampClone(Ensemble_des_clones.ElementClonable,"Clone",5,5)

//je le supprime
ChampSupprime("Clone")

//je regarde si il existe
Info("je vien de supprimer le clone"+RC+"il n'apparait plus dans la fenetre"+RC+" je fait un champ existe :ChampExiste(Clone)"+RC+" voila le resultat : "+ ChampExiste("Clone"))

//le champ existe me rend 1

//j’essaie de recloner avec le même nom
ChampClone(Ensemble_des_clones.ElementClonable,"Clone",5,5)

//génère l’erreur

Erreur à la ligne 1 du traitement Clic sur Bouton3.
Vous avez appelé la fonction ChampClone.
<Clone> : Un champ avec ce nom existe déjà.
Posté le 19 août 2005 - 13:14
Bonjour,


C'est normal ...

Il est dit

"Limites : Un champ supprimé ne peut pas être ré-utilisé par la suite comme source d'un clonage de champ (avec la fonction ChampClone )."

Amicalement
Posté le 19 août 2005 - 13:52
si j'ai bien compris, tu as un super champ dans un autre super champ !!
je veux bien ton projet .. envoies le moi à e-rod@libertysurf.fr

merci
Posté le 19 août 2005 - 15:32
j'ai vu cette info, mais je supprime un clone du champ, pas le champ source lui même. C'est vraiment bizzare comme comportement, j'ai essayé plein de trucs, sans résultat correct.

Voila le code
Sinon j'ai isolé le problème dans un projet, c'est reproductible, si tu peux me donner une @ mail, je te l'envoie.
@+
Aline

//ajoute un clone dans la fenetre principale

Ensemble_des_clones est un super champ dans une fenêtre
ElementClonable est un super champ appartenant à Ensemble_des_clones

//je crée un clone qui s’appelle « Clone »
ChampClone(Ensemble_des_clones.ElementClonable,"Clone",5,5)

//je le supprime
ChampSupprime("Clone")

//je regarde si il existe
Info("je vien de supprimer le clone"+RC+"il n'apparait plus dans la fenetre"+RC+" je fait un champ existe :ChampExiste(Clone)"+RC+" voila le resultat : "+ ChampExiste("Clone"))

//le champ existe me rend 1

//j’essaie de recloner avec le même nom
ChampClone(Ensemble_des_clones.ElementClonable,"Clone",5,5)

//génère l’erreur

Erreur à la ligne 1 du traitement Clic sur Bouton3.
Vous avez appelé la fonction ChampClone.
<Clone> : Un champ avec ce nom existe déjà.
Posté le 19 août 2005 - 16:20
Bonjour,

Je ne sais pas si c'est bizzare mais en tout les cas c'est comme ca , que ce soit avec champsupprime ou l API , on ne peut pas recreer un champ avec le meme nom sauf a faire utilise() mais ca ne sert pas a grand chose vu que les autres champs clones vont disparaitres.

Pour ma part je fais comme cela

ChampClone (Origine,"Clone_"+DonneIdentifiant(),X,Y)

je ne creer donc jamais un champ clone avec le meme nom


Amicalement
Posté le 19 août 2005 - 19:33
c'est quand même pas très pratique tout ça surtout que le champsupprime(nom1) suivi d'un champclone(nom1) (donc avec le meme nom) ça marche très bien si le super champ clonè n'appartient pas à un autre superchamp

Je garde ton idée sous le coude mais je ne trouve pas ça très propre (mon chef ne va pas aimer)

Merci pour tes conseils.
@+
Aline
Posté le 15 novembre 2005 - 10:43
Bonjour à tous,

J'ai moi aussi une erreur à ce sujet mais dans une fenêtre interne.
Pour reproduire la chose j'ai simplement clôné un champ libellé dans une fenêtre interne vierge, je le supprime ensuite (il s'éfface à l'écran donc ok) mais le champexiste qui suit me le détecte comme existant. Et bien sûr si je reclône avec le même nom j'ai une erreur de champ existant.

A bientôt !
Ludovic
Posté le 19 novembre 2005 - 08:41
Ludovic a écrit :
Bonjour à tous,

J'ai moi aussi une erreur à ce sujet mais dans une fenêtre interne.
Pour reproduire la chose j'ai simplement clôné un champ libellé dans une fenêtre interne vierge, je le supprime ensuite (il s'éfface à l'écran donc ok) mais le champexiste qui suit me le détecte comme existant. Et bien sûr si je reclône avec le même nom j'ai une erreur de champ existant.

A bientôt !
Ludovic

Bonjour

Peut être hors sujet mais il est utile de savoir qu'un champ clonné
appartient à la fenêtre du champ d'origine.
De plus les nom des clones ne sont pas réutilisables.

[R&B] WDForge.org