Bonjour à tous!
J'ai créée une form contenant simplement une progressBar.
Mon but est d'afficher cette form avec la progressBar qui s'incrémente pendant qu'une autre fenetre ëst en train de loader.
J'ai utilisé l'exemple fourni par Nico-pyright :
http://www.developpez.net/forums/d36...obleme-thread/
mais rien à faire la barre de progression de s'incrémente pas.
Voici le code de ma fenetre de chargement:
et voici comment j'appelle le code de cette fenetre à partir d'une autre fenetre:
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
50
51 //____________________________________________________________________________________________ // avertisseurForm_Load() System::Void avertisseurForm::avertisseurForm_Load(System::Object^ sender, System::EventArgs^ e) { ProgressBarDelegate = gcnew ProgressBarDelegateHandler(this, &avertisseurForm::IncrementerBarre); } //____________________________________________________________________________________________ // Executer() System::Void avertisseurForm::Executer() { this->progress->Minimum = 0; this->progress->Maximum = 10; this->progress->Value = 0; this->progress->Step = 1; enChargement = true; t = gcnew Threading::Thread(gcnew Threading::ThreadStart(this, &avertisseurForm::TacheAEffectuer)); t->Start(); } //____________________________________________________________________________________________ // TacheAEffectuer() void avertisseurForm::TacheAEffectuer() { do { //System::Threading::Thread::Sleep(100); this->Invoke(ProgressBarDelegate); }while(enChargement); } //____________________________________________________________________________________________ // IncrementerBarre() void avertisseurForm::IncrementerBarre() { progress->PerformStep(); if(progress->Value== progress->Maximum)progress->Value = 0; } //____________________________________________________________________________________________ // Stoper() void avertisseurForm::Stoper() { enChargement = false; t->Abort(); }
Quelqu'un aurait il une idée de mon erreur?
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 //____________________________________________________________________________________________ // preparateurProgWaypointsForm_Load() System::Void preparateurProgForm::preparateurProgForm_Load(System::Object^ sender, System::EventArgs^ e) { //Création de la fenetre chargement avertisseur = gcnew avertisseurForm(); //On dévoile la fenetre avertisseur->Show(); //On lance le thread avertisseur->Executer(); //Creation du tableau de programmation des waypoints CreationTableau(); //Initialisation des tableaux de reference InitTablesReference(); avertisseur->Stoper();
Merci d'avance
Kemanke
Partager