PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Comment acceder directement aux champs d'une fenêtre à partir d'une classe
Comment acceder directement aux champs d'une fenêtre à partir d'une classe
Iniciado por Codeur Ninja, ago., 14 2020 2:02 PM - 21 respostas
Membro registado
41 mensagems
Popularité : +15 (23 votes)
Publicado em agosto, 14 2020 - 2:02 PM
Bonjour, j'ai beau chercher je n’aboutis à rien. Il est impossible sur Windev à partir d'une classe d'avoir accès à tous les champs d'une fenêtre ? Un attribut à déclarer ou une relation à faire ?? C'est vraiment dommage je trouve.

--
Il n'y a pas de mystère en informatique.
Membro registado
123 mensagems
Popularité : +7 (9 votes)
Publicado em agosto, 14 2020 - 2:19 PM
Bonjour,

Tu peux lier tes champs avec les membres de l'instance de classe.
Après fichierversmemoire(instance,filename) et memoireversfichier(instance,filename)...
Simple comme bonjour mais les membres doivent être déclaré comme publique dans la classe pour affectation en directe.

Example:
https://depot.pcsoft.fr/resource.awp…

--
Peter Holemans
www.mcs2.eu
www.pixontri.eu
Membro registado
3.886 mensagems
Popularité : +227 (347 votes)
Publicado em agosto, 14 2020 - 2:47 PM
Bonjour,
Peter Holemans (BE) a écrit :
Simple comme bonjour mais les membres doivent être déclaré comme publique dans la classe pour affectation en directe.

S'il sont privés il faut passer par les propriétés qui servent de getter/setter
L'idéal est d'utiliser une classe mappée cf https://blogs.pcsoft.fr/fr/generer-classes-partir-descriptions-tables-contenues-analyse-projet/281474976710689/read.awp

--
Il y a peut être plus simple, mais, ça tourne
Publicado em agosto, 14 2020 - 4:37 PM
Bonjour,

je ne sais pas si ça réponds vraiment à la question mais il y a la fonction EnuméreChamp() :
https://doc.pcsoft.fr/fr-FR/?404;https://doc.pcsoft.fr:443/3025005&lang=fr-FR&3025005&lang=fr-FR
Membro registado
136 mensagems
Popularité : +12 (14 votes)
Publicado em agosto, 14 2020 - 4:38 PM
Si l'idée, c'est d'accéder à n'importe quel champ d'une fenêtre voici une solution (il y a surement mieux, mais ça marche) :

Ta classe doit contenir un membre stockant le nom de la fenêtre

CClasse1 est une Classe
sFen est une chaîne
FIN


Tu pourras alors utiliser l'indirection pour accéder aux champ.
Exemple, j'ajoute une procédure à ma classe :

Procedure Change_couleurfond(ch est un Champ)

c est un Champ <- {sFen + "." + ch..Nom}
c..CouleurFond = BleuClair


Je peux alors utiliser cette procédure pour atteindre n'importe quel champ de ma fenêtre :

clInstance est un CClasse1

clInstance.sFen = MaFenêtre..NomComplet

clInstance.Change_couleurfond(ARBRE_SansNom1)


J'espère que cela correspond à ce que tu cherches.
Membro registado
41 mensagems
Popularité : +15 (23 votes)
Publicado em agosto, 14 2020 - 5:12 PM
Je vois que mon sujet est totalement incompris, je répète.
Peut on liée une classe à une fenêtre ? En gros avoir accès à tous les champs de la fenêtre directement comme si l'on écrivait du code dans la fenêtre sans avoir a déclarer tous les champs existant de la fenêtre et faire des prises de référence pour les manipuler. Je dis bien manipuler et non pas affecter juste des données (Monsieur FichierVersMémoire Et MémoireVersFichier.)

--
Il n'y a pas de mystère en informatique.
Membro registado
1.623 mensagems
Popularité : +100 (114 votes)
Publicado em agosto, 14 2020 - 5:39 PM
Hello,

Tu veux accéder aux champs d'une fenêtre connue à l'avance ou pas du tout ?
Tu peux utiliser cette fonction : https://doc.pcsoft.fr/?3025005
Et travailler avec les indirections.
Membro registado
41 mensagems
Popularité : +15 (23 votes)
Publicado em agosto, 14 2020 - 5:42 PM
François C. a écrit :
Hello,

Tu veux accéder aux champs d'une fenêtre connue à l'avance ou pas du tout ?
Tu peux utiliser cette fonction : https://doc.pcsoft.fr/?3025005
Et travailler avec les indirections.


Quand on est dans une fenêtre a t-on besoin de faire des indirections pour manipuler les champs de la fenêtre ? :)

--
Il n'y a pas de mystère en informatique.
Membro registado
1.623 mensagems
Popularité : +100 (114 votes)
Publicado em agosto, 14 2020 - 5:52 PM
Si tu connais le nom de la fenetre a l'avance : NON
Mais dans ce cas ou est le probleme ?

Il te suffit de faire FEN_MaFenetre.MonChamp et le tour est joué.
Membro registado
2.572 mensagems
Popularité : +222 (260 votes)
Publicado em agosto, 14 2020 - 5:52 PM
Alors la réponse est non.

--
Cordialement,

Philippe SAINT-BERTIN
Membro registado
3.886 mensagems
Popularité : +227 (347 votes)
Publicado em agosto, 14 2020 - 7:36 PM
Pour résumer, tu veux créer une fenêtre ex nihilo via une classe clFenêtre de la création de la fenêtre à la création des champ et leur comportement..
En ce qui concerne la prmière partie (création de la fenêtre,) la réponse est nom. Pour la deuxième partie, il y a la fonction ChampCrée https://doc.pcsoft.fr/fr-FR/?1000020876

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
136 mensagems
Popularité : +12 (14 votes)
Publicado em agosto, 15 2020 - 11:20 AM
Etant donné le ton adopté, je note bien de ne plus jamais perdre mon temps a essayer de vous aider.

Il n'en reste pas moins que celui qui veut accéder à une fenêtre depuis un objet n'a pas bien compris la notion d'objet..

Fin de partie
Membro registado
1.144 mensagems
Popularité : +50 (142 votes)
Publicado em agosto, 15 2020 - 12:36 PM
Bonjour,

Le principe d'une classe c'est justement de n'avoir aucune adhérence avec l'IHM. Il n'y a donc aucun intérêt à lier une classe à une fenêtre.
Si vous vous posez ce problème c'est que votre objectif final est mal posé.
Pourquoi avoir besoin de manipuler des champs d'une fenêtre à partir d'une classe ?

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net
Membro registado
41 mensagems
Popularité : +15 (23 votes)
Publicado em agosto, 17 2020 - 2:35 PM
La notion de Model-View-Controler ça vous parle ? Dédier une classe exclusivement à la manipulation de son interface, voici l’intérêt de pouvoir lier une classe à une fenêtre.

--
Il n'y a pas de mystère en informatique.
Membro registado
3.886 mensagems
Popularité : +227 (347 votes)
Publicado em agosto, 17 2020 - 3:15 PM
Lire la doc ça te parle.
Tu trouvera tout dedans, .... ou pas

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
41 mensagems
Popularité : +15 (23 votes)
Publicado em agosto, 17 2020 - 3:53 PM
Voroltinquo a écrit :
Lire la doc ça te parle.
Tu trouvera tout dedans, .... ou pas

--
Il y a peut être plus simple, mais, ça tourne

A priori mis à part l'attribut <Présentation> qui apporte quelques fonctionnalité en plus le mécanisme que je recherche n'existe pas. Obliger de déclarer des variables champs dans la classe. Dommage ils auraient pu approfondir l'attribut <Présentation> peut-être. On verra ce que les prochaines version donneront.

--
Il n'y a pas de mystère en informatique.
Membro registado
41 mensagems
Popularité : +15 (23 votes)
Publicado em agosto, 17 2020 - 3:54 PM
THIERRY TILLIER a écrit :
Bonjour,

Le principe d'une classe c'est justement de n'avoir aucune adhérence avec l'IHM. Il n'y a donc aucun intérêt à lier une classe à une fenêtre.
Si vous vous posez ce problème c'est que votre objectif final est mal posé.
Pourquoi avoir besoin de manipuler des champs d'une fenêtre à partir d'une classe ?

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net

Bonjour Thierry, tu confonds un peu Classe Metier et Classe tout court

--
Il n'y a pas de mystère en informatique.
Membro registado
1.144 mensagems
Popularité : +50 (142 votes)
Publicado em agosto, 17 2020 - 5:54 PM
Codeur Ninja a écrit :


Bonjour Thierry, tu confonds un peu Classe Metier et Classe tout court


Au lieu de parler de classe, TU aurais directement parler de MVP dans ton premier post, ça nous aurait éviter des questions hors sujet.

Et entre nous on peut faire des classes métiers en ntier sans passer par le MVP.
Si tu n'arrives à poser ton problème dès le début c'est compliqué d'aider.

PS : sur un forum c'est quand même bien de respecter ceux qui te répondre et de rester poli. Je n'aime pas ta manière de répondre, et on est pas pote, me semble-t-il.
Pas la peine de me répondre!

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net
Membro registado
41 mensagems
Popularité : +15 (23 votes)
Publicado em agosto, 17 2020 - 6:51 PM
THIERRY TILLIER a écrit :
Codeur Ninja a écrit :


Bonjour Thierry, tu confonds un peu Classe Metier et Classe tout court


Au lieu de parler de classe, TU aurais directement parler de MVP dans ton premier post, ça nous aurait éviter des questions hors sujet.

Et entre nous on peut faire des classes métiers en ntier sans passer par le MVP.
Si tu n'arrives à poser ton problème dès le début c'est compliqué d'aider.

PS : sur un forum c'est quand même bien de respecter ceux qui te répondre et de rester poli. Je n'aime pas ta manière de répondre, et on est pas pote, me semble-t-il.
Pas la peine de me répondre!

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net

Une classe accédant directement au champs d'une fenêtre n'a rien à avoir avec une architecture MVC.

--
Il n'y a pas de mystère en informatique.
Publicado em agosto, 17 2020 - 7:09 PM
Tu as pensé au MVP? Je ceux dire le AD avec le C, pas shamhus98 si on veut mais une suite logique?
Publicado em agosto, 17 2020 - 8:02 PM
Ton probleme est mal formulé et je te trouve irrespectueux , tu es a combien de ban sur lol stp? Sa peut aider a cerner le sujet.


--
Il y a trop de mystère en informatik
Membro registado
287 mensagems
Popularité : +51 (79 votes)
Publicado em agosto, 12 2021 - 2:52 PM
Up ça m’intéresse étant donné que j'ai l'habitude de coder en C#

--
667, EKIP EKIP