Bonjour � tous,
Je suis nouveau sur ce site, o� je trouve beaucoup d'informations me permettant d'avancer dans mon travail. Merci pour cel�.
Je developpe des applications math�tiques dans le domaine de la biologie, et je travaillais en Fortran (non, ne huez pas, c'est tr�s pratique) jusque r�cemment, o� j'ai d�cid� de passer en visual C++ pour impl�menter des GUI.
J'en viens donc � mon probl�me.
1- j'ai d�velopp� en C++ un code pour effectuer un calcul;
2- afin de pouvoir lancer ce calcul � partir d'une interface graphique permettant de param�trer le mod�le math�matique, j'ai impl�menter ce code dans une application Forms: concr�tement, j'ai commenc� par cr�er une Form, puis un bouton "Calcul", qui lance evidemment mon calcul;
3- ce calcul est constitu� principalement d'une boucle, et dans certain cas, il faut beaucoup de temps pour l'achever (r�solution d'equations diff�rentielles partielles).
Impl�ment� avec mon bouton "Calcul", cel� donne en r�sum� �a:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 private: System::Void button1_Click(System::Object * sender, System::EventArgs * e) { for (int j=0;j<Ntime;j++) { 'CALCUL' } }
4- J'en viens � ma question. Je voudrai impl�menter un bouton "Annuler", qui puisse apr�s un click arr�ter le calcul en cours, c'est � dire sortir de ma boucle. J'ai donc essayer ceci:
* d�claration d'un bool�en qui est �gal � true si je clique sur "Annuler"
* sortie conditionnelle de ma boucle
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 bool Annul; private: System::Void Annuler_Click(System::Object * sender, System::EventArgs * e) { Annul=true; }
Bien evidemment, �a ne fonctionne pas, premi�rement car je ne peux pas cliquer sur mon bouton "Annuler" pendant le calcul d�clench� en cliquant sur le bouton "Calcul", et deuxi�mement car je pense que cette approche n'est pas bonne, sans savoir y rem�dier avec mes faibles connaissances du Visual C++.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 private: System::Void button1_Click(System::Object * sender, System::EventArgs * e) { for (int j=0;j<Ntime;j++) { if (Annul!=true) { break; } 'CALCUL' } }
Est ce que quelqu'un pourrait m'aider pour ce probl�me?
Bien conscient que c'est une question de base et de "rookie", j'esp�re que mon explication est claire et que la question m�rite un int�r�t.
Merci d'avance.
MR
Partager