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
Partager