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++Builder Discussion :

detection de clic à l'interrieur d'une boucle


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut detection de clic à l'interrieur d'une boucle
    Bonjour

    mon problème est le suivant : dans mon programme, lorsd'un clic sur bouton, j'execute une boucle do...while

    Par contre, j'aimerais que pendant l'execution de la boucle, lorsque je reclic sur le bouton, cette boucle s'arrete.

    Code voici mon 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
     
    void __fastcall TAffichage::Button3Click(TObject *Sender)
    {
            IndexItem = ComboBox1->ItemIndex;
            do
            {
                    FileListBox1->ItemIndex = IndexItem;
                    Image1->Picture->LoadFromFile(FileListBox1->FileName);
                    Image1->Update();
                    Button1->Enabled = true;
                    if (IndexItem == FileListBox1->Count - 1)
                    {
                            Button2->Enabled = false;
                    }
                    else
                    {
                            Button2->Enabled = true;
                    }
                    Sleep(TrackBar1->Position);
                    IndexItem = IndexItem + 1;
            }
            while (IndexItem != ComboBox2->ItemIndex + 1);
            IndexItem = 0;
            Button1->Enabled = false;
            Button2->Enabled = true;
            FileListBox1->ItemIndex = IndexItem;
            Image1->Picture->LoadFromFile(FileListBox1->FileName); 
    }

  2. #2
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Tu peut mettre une condition en plus dans ta boucle, qui serai un booleen déclaré dans le .h de ta classe, ensuite au debut de la fonction tu change l'état de ce booleen, en effet si la boucle ne tourné pas, tu met ton booleen a true et elle tourne, si elle tourné tu met ton booleen à false et elle s'arréte, et pour que tout cela fonction tu met un Application->ProcessMessages(); dans ta boucle.
    Voila comme ca ca devrait fonctionner, mais j'ai peut etre pas été clair.
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut
    je suis peut-etre con, mais coment tu detecte le second clic?? qui se produit quand la boucle est en execution?

  4. #4
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Ta fonction est dans l'evenement OnClick, a chaque fois que tu clique l'evenement OnClick est généré, grace au booleen tu peut voir si c'est la premiere ou la deuxieme fois que tu clic
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  5. #5
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    En gros ca donnerai ceci :

    .h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class TAffichage{
     ...
    private :
      bool test ;
    ...
    } ;
    constructeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    test = false ;
    ...
    .cpp :

    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
    void __fastcall TAffichage::Button3Click(TObject *Sender)
    {
           if(test){
             test = false ;
           }else{
             test = true ;
           }
            IndexItem = ComboBox1->ItemIndex;
            do
            {
                    FileListBox1->ItemIndex = IndexItem;
                    Image1->Picture->LoadFromFile(FileListBox1->FileName);
                    Image1->Update();
                    Button1->Enabled = true;
                    if (IndexItem == FileListBox1->Count - 1)
                    {
                            Button2->Enabled = false;
                    }
                    else
                    {
                            Button2->Enabled = true;
                    }
                    Sleep(TrackBar1->Position);
                    IndexItem = IndexItem + 1;
                    Application->ProcessMessage() ;
           }
            while ((IndexItem != ComboBox2->ItemIndex + 1) && (test == true));
            IndexItem = 0;
            Button1->Enabled = false;
            Button2->Enabled = true;
            FileListBox1->ItemIndex = IndexItem;
            Image1->Picture->LoadFromFile(FileListBox1->FileName); 
    }
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut
    merci, je vais essayer de ce pas ...


    clic

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut
    OUAHOU ca marche a merveille, merci beaucoup maitre pottiez!!

  8. #8
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Euh maitre peut etre pas, content de t'avoir donné satisfaction.
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

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

Discussions similaires

  1. detecter le début et la fin d'une boucle
    Par michelp38 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/04/2011, 23h28
  2. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  3. Détecter un clic sur une page html depuis le serveur?
    Par korntex5 dans le forum Delphi
    Réponses: 18
    Dernier message: 12/10/2006, 17h59
  4. Réponses: 4
    Dernier message: 08/09/2006, 04h36
  5. Pause dans une boucle
    Par HT dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2003, 08h52

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