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 :

Progress bar en boucle


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par d�faut Progress bar en boucle
    Bonsoir,


    Sur un logiciel, j'aimerai faire que ma progress bar une fois lanc� ne s'arr�te pas ,et continue � tourner en boucle � la vitesse donn�.

    Cette progress barre doit se lancer en appuyant sur le bouton connexion et s'arr�ter en appuyant sur le bouton deconnexion

    Je ne vois pas comment faire la boucle..

    Codialement

  2. #2
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    C'est pourtant simple

    Ce n'est pas une boucle, mais deux qu'il te faut:
    La premi�re boucle est "infinie", ou peu s'en faut. Elle est lanc�e lorsque tu re�ois le clique dur "connecter" et sa condition de sortie est donn�e lorsque tu re�ois le clique sur "d�connecter".

    La deuxi�me boucle permet "simplement" de g�rer l'�tat de la progressbar, en couvrant l'�cart [0%,100% selon le pas que tu d�cide
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par d�faut
    Oui exactement ce que j'ai pens�, mais je n'arrive pas � cr�er ces boucles, bien l� le soucis..

  4. #4
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Bon, alors, pour pouvoir t'aider d'avantage, ils nous faut plus de pr�cisions :
    1. Quelle biblioth�que graphique utilises-tu
    2. Comment as tu cr�� ta progressbar et peux tu r�cup�rer le clique sur les diff�rents boutons
    3. nous aurons sans doute aussi besoin du code correspondant

    [EDIT]L'id�al serait sans doute de cr�er une classe qui g�re la progressbar et qui soit en mesure d'�tre "connect�e" aux diff�rents signaux correspondant aux cliques.

    Cela pourrait etre quelque chose comme (Qt inside)
    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
    class InfiniteProgres : public QProgressBar{
        public:
            InfiniteProgressBar( QWidget * parent = 0):QProgressBar(parent),
            again(true){}
        public slots:
            void begin(){ 
                again = true;
                runMe();
            }
            void end(){
                again = false;
            }
        private:
            bool again;
            void runMe(){
                 while(again){
                     for(int i = 0;i<100;++i){
                         /* faire avancer la progressbar d'un cran */
                      }
                 }
            }
    };
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par d�faut
    je vais essayer de r�pondre le plus pr�cis possible : (Travail sous microsoft visual C++)


    Donc je cr�er un timer

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    private: System::Void timer2_Tick_1(System::Object^  sender, System::EventArgs^  e) {
    			this->progressBar1->Increment(1);
    		 }

    Je code le bouton connexion afin de lancer le timer au clique :

    Je voudrai savoir si ca pourrai marcher :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    while(progressBar1->Value == 100) { (progressBar1->Value == 0) ;}

  6. #6
    Membre extr�mement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    D�tails du profil
    Informations personnelles :
    �ge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par d�faut
    bonjour R3d0x
    bonjour koala01

    Ou veux -tu en arriver?j'ai peut etre mal compris la question,mais la fonctionnalite d'un progressbar tournant en boucle existe de facto dans les winforms: ProgressBarStyle::Marquee.

    Maintenant pour le demarrer & l'animer tu n'as pas besoins de timer,tu fixes son speed ou periode de bouclage...
    Pour le stopper tu annules son speed .
    code pour un winform:

    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
     
    #pragma once
     
    namespace ProgressBarMarquee {
     
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
     
    	/// <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
    			//
    		}
     
    	protected:
    		/// <summary>
    		/// Nettoyage des ressources utilisées.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	private: System::Windows::Forms::ProgressBar^  progressBar1;
    	protected: 
    	private: System::Windows::Forms::Button^  btnStart;
    	private: System::Windows::Forms::Button^  btnStop;
     
    	private: System::ComponentModel::IContainer^  components;
     
    	private:
    		/// <summary>
    		/// Variable nécessaire au concepteur.
    		/// </summary>
     
     
    #pragma region Windows Form Designer generated code
    		/// <summary>
    		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
    		/// le contenu de cette méthode avec l'éditeur de code.
    		/// </summary>
    		void InitializeComponent(void)
    		{
    			this->progressBar1 = (gcnew System::Windows::Forms::ProgressBar());
    			this->btnStart = (gcnew System::Windows::Forms::Button());
    			this->btnStop = (gcnew System::Windows::Forms::Button());
    			this->SuspendLayout();
    			// 
    			// progressBar1
    			// 
    			this->progressBar1->Location = System::Drawing::Point(29, 207);
    			this->progressBar1->Name = L"progressBar1";
    			this->progressBar1->Size = System::Drawing::Size(226, 23);
    			this->progressBar1->TabIndex = 0;
    			// 
    			// btnStart
    			// 
    			this->btnStart->Location = System::Drawing::Point(38, 32);
    			this->btnStart->Name = L"btnStart";
    			this->btnStart->Size = System::Drawing::Size(75, 23);
    			this->btnStart->TabIndex = 1;
    			this->btnStart->Text = L"button1";
    			this->btnStart->UseVisualStyleBackColor = true;
    			this->btnStart->Click += gcnew System::EventHandler(this, &Form1::btnStart_Click);
    			// 
    			// btnStop
    			// 
    			this->btnStop->Location = System::Drawing::Point(150, 32);
    			this->btnStop->Name = L"btnStop";
    			this->btnStop->Size = System::Drawing::Size(75, 23);
    			this->btnStop->TabIndex = 2;
    			this->btnStop->Text = L"button2";
    			this->btnStop->UseVisualStyleBackColor = true;
    			this->btnStop->Click += gcnew System::EventHandler(this, &Form1::btnStop_Click);
    			// 
    			// Form1
    			// 
    			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    			this->ClientSize = System::Drawing::Size(292, 266);
    			this->Controls->Add(this->btnStop);
    			this->Controls->Add(this->btnStart);
    			this->Controls->Add(this->progressBar1);
    			this->Name = L"Form1";
    			this->Text = L"Form1";
    			this->ResumeLayout(false);
     
    		}
    #pragma endregion
    	private: System::Void btnStart_Click(System::Object^  sender, System::EventArgs^  e) {
     
    				 this->progressBar1->Style = ProgressBarStyle::Marquee;
    			     this->progressBar1->MarqueeAnimationSpeed = 100; 
    			 }
    	private: System::Void btnStop_Click(System::Object^  sender, System::EventArgs^  e) {
     
     
    			 this->progressBar1->MarqueeAnimationSpeed=0;
     
    			 }
     
     
    };
    }
    bon code..........

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