Tous est dans l'intitulé je présume, je n'arrive pas à utiliser des variables entre deux fenêtres, dans une première on modifie les valeurs, l'autre n'a aucun lien avec la précédente mais j'aimerais pouvoir récupérer ces valeurs.
Merci de votre aide![]()
Tous est dans l'intitulé je présume, je n'arrive pas à utiliser des variables entre deux fenêtres, dans une première on modifie les valeurs, l'autre n'a aucun lien avec la précédente mais j'aimerais pouvoir récupérer ces valeurs.
Merci de votre aide![]()
Salut,
Sans plus de précision, nous devrons malgré tout être particulièrement génériques dans nos réponses![]()
En gros, cela se fait en quatre temps:
- s'assurer que la variable est publiquement accessible d'une manière ou d'une autre au départ du formulaire dans lequel elle se trouve
- inclure le fichier d'en-tête de ce formulaire dans le fichier d'implémentation du formulaire qui doit récupérer la variable
- s'assurer que le formulaire qui doit récupérer la variable dispose de (d'un pointeur vers) l'instance du formulaire dans lequel elle se trouve
- passer par (le pointeur vers) l'instance du formulaire dans lequel se trouve la variable pour la récupérer dans la fonction qui en a besoin
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Merci de prendre la peine de me répondre, j'ai essayé avec tes consignes 3 et 4 mais cela ne fonctionne toujours pas.
Voici plus d'explications:
Dans un formulaire qui s'appelle 'configurer' je déclare en global les variables suivantes:
Ces variables reçoivent des valeurs au cours de l'exécution de ce form.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public: int valeur_debite_com; int valeur_parite_com ; int valeur_stop_com; int valeur_donnees_com; int valeur_flux_com;
Je cache le form. je lance un nouveau form
dans celui-ci j'inclus "configurer.h"
Je déclare
et quand je fais dans le form actuel
Code : Sélectionner tout - Visualiser dans une fenêtre à part configurer config // instance de type config
le débogueur m'indique que cela vaut 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part config.valeur_parite_com
J'ai essayé avec des pointeurs mais le problème persiste.
Une idée?
C'est parce que tu dois veiller à ce que l'instance de ton formulaire "configurer" au départ de laquelle tu essaye de récupérer les différentes valeurs soit la même ce celle... que tu utilise pour introduire ces valeurs.
Cela pourrait prendre la forme de
Une autre solution serait de faire en sorte que le formulaire "configurer" soit un membre du formulaire qui doit récupérer les valeurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void MyForm::configurer() { configurer conf; conf.showModal(); int debit_recup = conf.valeur_debite_com; int parite_recum = conf.valeur_parite_com; /*...*/ }
class MyForm
{
public:
MyForm():conf(){}
void configurer()
{
conf.showModal();
int debit_recup = conf.valeur_debite_com;
int parite_recum = conf.valeur_parite_com;
}
private:
configurer conf;
};
voir, si les deux formulaires doivent pouvoir agir de manière plus ou moins indépendante, en utilisant des pointeurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class MyForm { public: MyForm(configurer * c):conf(c){} void configurer() { conf->showModal(); int debit_recup = conf->valeur_debite_com; int parite_recum = conf->valeur_parite_com; } private: configurer * conf; };
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Merci pour ces précisions encore une fois mais je ne dispose pas de la méthode showModal() sur mon visual..
Voici comment j'ai procédé en suivant votre exemple:
la première erreur étant la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private : void suivre::configurer() { configurer conf; conf.showModal(); int debit_recup = conf.valeur_debite_com; int parite_recum = conf.valeur_parite_com; /*...*/ }
errorC2146 erreur de syntaxe: abscence de ';' avant l'identificateur 'conf'
J'ai utilisé la fonction showModal, mais ca peut être n'importe quelle fonction ayant pour but de... faire afficher le formulaire
Cela n'a rien à voir avec l'absence de la fonction showModal (pour autant que ton formulaire de configuration hérite de la classe de base ad-hoc), mais, simplement, cela a à voir avec le fait que tu n'as sans doute pas inclus configure.h(pp) dans le fichier *.cpp dans lequel tu implémente les fonctions de ton formulaire "principal"la première erreur étant la suivante:
errorC2146 erreur de syntaxe: abscence de ';' avant l'identificateur 'conf'![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
j'ai bien inclus "configurer.h", mais si je montre le formulaire, celui-ci apparaitra donc et ce n'est pas voulu. Non?
voici mon inclusion:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 // fichier suivre.h //[...] #include "configurer.h" //[...] private : void suivre::configurer() { configurer conf; conf.show(); int debit_recup = conf.valeur_debite_com; int parite_recum = conf.valeur_parite_com; /*...*/ }
Déjà, la fonction configurer de ton formulaire suivre devrait être publique, autrement, elle ne sera... pas accessible (ou alors, tu dois avoir un bouton dont l'événement onClick (ou similaire) appelle la fonction)
Ensuite, si ce que tu souhaite faire c'est, effectivement, récupérer les valeurs que le formulaire de configuration permet de modifier, il faut bien que... ce formulaire soit présenté à l'utilisateur pour lui permettre d'indiquer les nouvelles valeurs, non
Autrement, quel serait l'avantage de placer des valeurs dans un formulaire![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
En fait je t'explique,
Lors du lancement de mon IHM, on arrive sur une première page, sur celle ci, deux boutons: configurer et suivre.
Quand on clique sur configurer une nouvelle fenêtre apparait et dans celle-ci on sélectionne les valeurs voulues. Une fois que c'est fait la fenêtre se ferme et on revient sur la fenêtre de départ.
On clique maintenant sur suivre et dans cette nouvelle fenêtre j'aimerais récupérer les valeurs de configurer. Tu comprends donc que je ne veux pas que la fenêtre configurer s'ouvre au moment ou j'ai besoin de ces valeurs.
J'espère avoir été claire...
Partager