Salut à tous,
J'ai une interface ou j'ai plusieurs textbox et je récupère leur valeur dans une fonction dans class Form2.
Cependant vu que j'aurais les mêmes textbox dans plusieurs interfaces j'aurais voulu faire une fonction générique qui récupère les données selon l'interface utilisé.
Dans form2.cpp
Dans communication.cpp : (là où sont mes fonctions génériques)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 String^Form2::valeur_limites() { String^ min_ab; String^ max_ab; String^ pas_ab; String^ min_or; String^ max_or; String^ pas_or; String^ total; min_ab=textBox_min_ab->Text->ToString(); max_ab=textBox_max_ab->Text->ToString(); pas_ab=textBox_pas_ab->Text->ToString(); min_or=textBox_min_or->Text->ToString(); max_or=textBox_max_or->Text->ToString(); pas_or=textBox_pas_or->Text->ToString(); total="x"+" "+min_ab+" "+max_ab+" "+pas_ab+" "+min_or+" "+max_or+" "+pas_or+" "; return total; }
Le soucis lorsque j’exécute c'est que dans les variables qui récupèrent les valeurs (min-ab, max_ab...), sont vides (leurs valeurs: "").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 int* Limites() { Form2 gForm2; String^limites; char* lim; if (type_gene==0) { //on récupère les données de l'interface teleview } if (type_gene==1) { //on récupère les données de l'interface dektek limites=gForm2.valeur_limites(); } //convertit un string en char lim= (char*)(void*)Marshal::StringToHGlobalAnsi(limites); char* pt=lim; static char argv[32][32]; char* pargv[7]; //on décortique la chaine total pour avoir les valeurs des limites int i = 0; int num[6]; while (true) { pt = strstr(lim, " "); // find space if (pt == 0) // space not find { strcpy(argv[i++], lim); // last command break; // end of cmd } *pt = 0; // end of string strcpy(argv[i++], lim); // one command pargv[i] = &argv[i][0]; // init pointer *pt++; // next command strcpy(lim, pt); // erase previous command } // on convertit les char en int num[0] = atoi(pargv[1]); // freq min -> Abcisse Min num[1] = atoi(pargv[2]); // freq max -> Abscisse Max num[2] = atoi(pargv[3]); // pas freq -> Abcisse Pas num[3] = atoi(pargv[4]); // niveau min -> Ordonnée Min num[4] = atoi(pargv[5]); // niveau max -> Ordonnée Max num[5] = atoi(pargv[6]); // pas niveau -> Ordonnée Pas return num; }
Je ne comprend absolument pas pourquoi.
Quelqu'un a une idée?
Partager