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

 


Dernière réponse
Sujet : Faire une pause dans l'éxécution d'une boucle en C++ ?
Lord II

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


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Lord II

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

LMF 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.
Flying 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
Flying 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
zop void Sleep(DWORD dwMilliseconds);
LMF 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.
la viper 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 !
 
@+
AirBg pardon avait pas lu Borland Builder...
AirBg et wait ??? (include <sys/wait.h> )  :??:
trictrac 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.
LMF Il existe la commande delay(x) mais le compilateur en veux pas ! (C++ builder 5), une idée ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)