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.