Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1572 connectés 

  FORUM HardWare.fr
  Programmation

  Faire une pause dans l'éxécution d'une boucle en C++ ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire une pause dans l'éxécution d'une boucle en C++ ?

n°23222
LMF
///Miste & TDSiste
Posté le 09-04-2001 à 10:42:49  profilanswer
 

Il existe la commande delay(x) mais le compilateur en veux pas ! (C++ builder 5), une idée ?

mood
Publicité
Posté le 09-04-2001 à 10:42:49  profilanswer
 

n°23234
trictrac
Posté le 09-04-2001 à 11:12:55  profilanswer
 

la methode basique, et surtout assez bourrine consiste a effectuer une boucle de 0 a 'tres beaucoup', ou plusieurs boucles imbriquees....
 
a nutiliser quand cas dextreme urgence.

n°23241
AirBg
The Philosopher
Posté le 09-04-2001 à 11:42:05  profilanswer
 

et wait ??? (include <sys/wait.h> )  :??:


---------------
"There's not such a thing as a stupid question, only stupid people..."
n°23242
AirBg
The Philosopher
Posté le 09-04-2001 à 11:42:40  profilanswer
 

pardon avait pas lu Borland Builder...


---------------
"There's not such a thing as a stupid question, only stupid people..."
n°23246
la viper
Posté le 09-04-2001 à 11:46:46  profilanswer
 

Bien, la methode bas niveau pour cela est la scrutation.
j'explique.
 
tu fais un boucle
while(1)
{
 
...
id = 0;
while(id = 0);
 
....
}
 
 
id passe à 1 par le biais d'une fonction annexe .. (interruption la plupart du tps)...
maintenant, sachant pas ce que tu veux faire ... je sais pas si cette reponse te conviendra !
 
@+

n°23254
LMF
///Miste & TDSiste
Posté le 09-04-2001 à 12:07:52  profilanswer
 

j'explique en gors ce que je veux faire :
J'ai une boucle inféfinie que l'on lance avec une checkbox et que l'on doir arreter de la meme facon.
Le probleme vient du fait que je peux pas décocher la checkbox une fois la boucle lancée, je pense donc en faisant une pause, j'aurais le temps de la décocher.

n°23268
zop
1 world, 1 web, 1 Windows
Posté le 09-04-2001 à 12:49:02  profilanswer
 

void Sleep(DWORD dwMilliseconds);

n°23277
Flying
Posté le 09-04-2001 à 13:13:58  profilanswer
 

Je suis pas certain que Sleep fonctionnera pour ce que tu veux faire.  Sleep "gèle" le Thread en cours ... donc tu ne sauras pas décocher pendant le Sleep sauf si tu fais un programme multi-threads.
 
Ci-dessous j'ai testé ce que tu veux faire.  Cela fonctionne chez moi mais j'utilise Visual C++ et les MFC pas Borland.
A toi d'adapter :
 
void CTestDlg::OnCheck1()  
{
// Appelé lorsque la case est cochée
UpdateData(TRUE);    // Récupère les infos du contrôle
if (m_bCheck) StartBoucle(); // Teste si coché
}
 
void CTestDlg::StartBoucle()
{
// Boucle infinie (sauf si on décoche la case)
SetTimer(1, 100, NULL);   // Timer pour vérification
m_bFlag = TRUE;     // Flag de contrôle de la boucle
do
{
 // Boucle infinie
 DoEvents();
}
while (m_bFlag);
}
 
void CTestDlg::OnTimer(UINT nIDEvent)  
{
// handler Timer
KillTimer(1);      // Kill Timer
UpdateData(TRUE);     // Récupère les infos du contrôle
if (!m_bCheck) m_bFlag = FALSE;  // On stoppe la boucle
else SetTimer(1, 100, NULL);  // sinon init Timer de nouveau
CDialog::OnTimer(nIDEvent);
}
 
void CTestDlg::DoEvents()
{
// Laisse le système d'exploitation traiter les messages en attente
MSG Msg;
BOOL bRet;
 
if (PeekMessage(&Msg, m_hWnd, 0, 0, PM_NOREMOVE))
{
 if ((bRet = GetMessage(&Msg, m_hWnd, 0, 0)))
  DispatchMessage(&Msg);
}
}
 
PS
m_bCheck est la variable (booléenne) qui se rapporte au contrôle "case à cocher".
 
Voilà j'espère que ca aide.
Flying

n°23279
Flying
Posté le 09-04-2001 à 13:16:35  profilanswer
 

C'est très très chiant ces smileys dès qu'on écrit du code.
Il serait temps que le forum adopte un système pour mettre le code à part et qu'il apparaisse + lisiblement.
Voir par exemple le cas du forum CodeGuru !!!
On place le code entre [ccode] et [/ccode] et c'est nickel :)
 
Flying

n°23396
LMF
///Miste & TDSiste
Posté le 09-04-2001 à 16:24:43  profilanswer
 

Merci de l'aide.
J'ai éssayé avec _sleep(x) =>Fait une pause sans plus.
La méthode de  Flying est assez costaud pour mon niveau.

mood
Publicité
Posté le 09-04-2001 à 16:24:43  profilanswer
 

n°23398
Lord II
PIB2000
Posté le 09-04-2001 à 16:28:32  profilanswer
 

Flying a écrit a écrit :

C'est très très chiant ces smileys dès qu'on écrit du code.
Il serait temps que le forum adopte un système pour mettre le code à part et qu'il apparaisse + lisiblement.
Voir par exemple le cas du forum CodeGuru !!!
On place le code entre [ccode] et [/ccode] et c'est nickel :)
 
Flying




 
 
Je suis tout a fiat d'accord avec toi, je pense que la mise en place d'un topic la dessus serait une bonne idée


---------------
La bave du crapaud n'empèche pas la caravane de passer .

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Faire une pause dans l'éxécution d'une boucle en C++ ?

 

Sujets relatifs
Comment casser l'éxécution d'une boucle en C++ ?C++ et boucle for : convention
VB : Additions de tableaux sans boucleComment connaitre le temp d'éxécution d'une boucle en C++ ?
Execution d'une macro dans powerpoint:[ASP]Execution d'une page ASP sur un autre server
[Moteur php] Comment stopper l'execution d'un script ??[ASP] Utilisation de RECORDCOUNT & boucle avec creation de variable
Plus de sujets relatifs à : Faire une pause dans l'éxécution d'une boucle en C++ ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR