IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

Syntaxe de la Progress Bar


Sujet :

C++/CLI

  1. #1
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut il faut être très cohérent dans le passage de paramètress
    bonjour

    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 : 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
    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
    pour dire qu'il s’exécute j'ai une autre difficulté à résoudre, mais c'est une autre histoire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. progress bar en c++
    Par boulette&co dans le forum MFC
    Réponses: 1
    Dernier message: 23/05/2005, 08h26
  2. [ATL] Petite question sur les progress bar
    Par MrMaze dans le forum MFC
    Réponses: 1
    Dernier message: 06/05/2005, 09h40
  3. [MFC]Changer la couleur d'un progress bar
    Par Deedier dans le forum MFC
    Réponses: 1
    Dernier message: 21/04/2005, 18h39
  4. [VB.NET] Mise en place d'une progress bar
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 14
    Dernier message: 19/10/2004, 09h23
  5. Progress bar au boot
    Par saibe dans le forum Administration système
    Réponses: 2
    Dernier message: 18/08/2003, 10h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo