Syntaxe de la Progress Bar
Bonjour:),
J'avance la maquette de mon application grâce a vos conseils. Je vous en remercie encore. Maintenant l'enchainement d'un menu avec une form marche.
J'ai pris le code de la progress bar sur le forum et j'ai résolue une part des problèmes de compilation. il reste quelques erreurs dans l'appel des fonctions membres. J'ai fait trois appels de fonction membres avec des syntaxe variées et chacune me provoque une erreur de compilation différente.
A fin de vous orienter je joins le code de la maquette et les résultats de compilation.
J'ai avancé sur la première requête qui est désormais bonne, mais la solution ne s'impose pas sur la requête suivante.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Form1(void)
{
InitializeComponent();
//
//TODO: ajoutez ici le code du constructeur
//
Shown += gcnew EventHandler( this, &Form1::Form1_Shown);
// To report progress from the background worker we need to set this property
backgroundWorker1->WorkerReportsProgress = true;
// This event will be raised on the worker thread when the worker starts
backgroundWorker1->DoWork += gcnew DoWorkEventHandler( Test6::Form1::backgroundWorker1_DoWork^);
// This event will be raised when we call ReportProgress
backgroundWorker1->ProgressChanged += gcnew ProgressChangedEventHandler(Test6::Form1::backgroundWorker1_ProgressChanged);
} |
Code:
1 2 3 4 5 6 7 8
| Test6.cpp
1>d:\usr\memoria\dev\aln_kernel\make\test6\test6\Form1.h(7): error C2143: erreur de syntaxe*: absence de ')' avant '__clrcall'
1>d:\usr\memoria\dev\aln_kernel\make\test6\test6\Form1.h(7): error C2059: erreur de syntaxe*: ')'
1>d:\usr\memoria\dev\aln_kernel\make\test6\test6\Form1.h(11): error C2059: erreur de syntaxe*: ')'
1>d:\usr\memoria\dev\aln_kernel\make\test6\test6\Form1.h(13): error C3867: &'Test6::Form1::backgroundWorker1_ProgressChanged'*: liste d'arguments manquante dans l'appel de fonction*; utilisez 'Test6::Form1::backgroundWorker1_ProgressChanged' pour créer un pointeur vers membre
1>d:\usr\memoria\dev\aln_kernel\make\test6\test6\Form1.h(30): error C3350: 'System::ComponentModel::ProgressChangedEventHandler'*: un constructeur délégué attend 2 argument(s)
1>
1>ÉCHEC de la build. |
J'ajoute que j'ai le même problème de compilation sur l'Exit
Code:
1 2 3 4
| private: System::Void quitToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
Application::Exit( System::ComponentModel::CancelEventArgs^);
} |
Le deuxième problème a été résolu comme suit
Code:
1 2 3 4 5
| private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
{
Test6::OpenAFile^ FormToOpen = this;
FormToOpen->Close();
} |
Je serai content d'avoir de l'aide: ce sera :ccool:
il faut être très cohérent dans le passage de paramètress
bonjour:D
Il faut être très cohérent dans le passage de paramètre et bine avoir la même interface d'appel pour les paramètres? ainsi les paramètres son des liens (hat) vers les paramètres et doivent être code comme ça
Je vous joins le code qui compile
Code:
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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
#pragma once
#include "OpenAFile.h"
namespace Test6 {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Threading;
/// <summary>
/// Description résumée de Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: ajoutez ici le code du constructeur
//
this->progressBar1->Hide();
IntitializeProgressBar();
}
void IntitializeProgressBar(void)
{
Shown += gcnew EventHandler( this, &Form1::Form1_Shown);
// To report progress from the background worker we need to set this property
backgroundWorker1->WorkerReportsProgress = true;
// This event will be raised on the worker thread when the worker starts System::ComponentModel::DoWorkEventArgs ^
backgroundWorker1->RunWorkerCompleted += gcnew RunWorkerCompletedEventHandler( this, &Form1::backgroundWorker1_RunWorkerCompleted );
backgroundWorker1->DoWork += gcnew DoWorkEventHandler( this, &Form1::backgroundWorker1_DoWork);
// This event will be raised when we call ReportProgress
backgroundWorker1->ProgressChanged += gcnew ProgressChangedEventHandler( this, &Form1::backgroundWorker1_ProgressChanged );
}
void Form1_Shown( System::Object^ Sender, System::EventArgs^ e)
{
// Start the background worker
backgroundWorker1->RunWorkerAsync();
}
// This event handler deals with the results of the
// background operation.
void backgroundWorker1_RunWorkerCompleted( Object^ /*sender*/, RunWorkerCompletedEventArgs^ e )
{
}
// On worker thread so do our thing!
void backgroundWorker1_DoWork( System::Object^ sender, DoWorkEventArgs^ e)
{
// Your background task goes here
for (int i = 0; i <= 100; i++)
{
// Report progress to 'UI' thread
backgroundWorker1->ReportProgress(i);
// Simulate long task
}
}
// Back on the 'UI' thread so we can update the progress bar
void backgroundWorker1_ProgressChanged( System::Object^ sender, ProgressChangedEventArgs^ e)
{
// The progress percentage is a property of e
progressBar1->Value = e->ProgressPercentage;
}
protected:
/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
} |
ce code compile tel quel. c'est :ccool:
pour dire qu'il s’exécute j'ai une autre difficulté à résoudre, mais c'est une autre histoire.