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

  FORUM HardWare.fr
  Programmation

  Arret d'une boucle en delphi ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Arret d'une boucle en delphi ...

n°34600
DELL's
Posté le 27-05-2001 à 14:37:45  profilanswer
 

Oui donc voilà j'ai un programme qui lance une acquisition (nombre d'acquisition choisi par l'utilisateur jusqu'à 1000) mais voilà disont qu'il ne veut plus en faire 1000 trop long et il veut arreter maintenant comment on fait pour faire ça donc arreter une boucle ?
 
Cela doit ce faire lorsqu'on clique avec la souris sur form1 (donc partout) .

mood
Publicité
Posté le 27-05-2001 à 14:37:45  profilanswer
 

n°34602
darkoli
Le Petit Dinosaure Bleu
Posté le 27-05-2001 à 15:01:15  profilanswer
 

c'est quoi que tu appelles une acquisition ? car si ton application n'a pas la main pendant qu'elle travaille (utilisation d'un thread) l'evenement de la souris sera ignoré).

n°34605
DELL's
Posté le 27-05-2001 à 16:02:49  profilanswer
 

Et ben il va chercher des données sur le port centros et les affiches dans une listbox et il fait l'acquisition quand une ligne vaut 0 ou 1 (acquisition période mais ça c'est juste à titre informatif)

n°34636
End-i
Posté le 27-05-2001 à 19:28:10  profilanswer
 

voilà le principe (..en C):
 
int i = 0
bool termine = false
 
while ( (i < = 1000) && (!termine) )
{
 
}
 
quand tu click sur le bouton annuler ou qqchose comme ca pour arreter ca met simplement:
termine = true

n°34640
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-05-2001 à 20:03:00  profilanswer
 

il faut aussi que de temps en temps tu traites les messages (clavier, souris, etc...)
par ex :

Code :
  1. if i mod 50 = 0 then application.processmessages;


ici toutes les 50 lignes il traite les messages.
évidemment l'intervalle des processmessages dépend de la durée d'un passage dans la boucle.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°34650
DELL's
Posté le 27-05-2001 à 22:18:38  profilanswer
 

Mhhh je comprend vos réponse et pas en faite ce que je comprend pas c'est que pour arreter une boucle il n'existe pas de procédure ou de fonctions bien spécifique pour arreter une boucle ? non ?  
 
C'est pas possible par exemple de creer (comme en html) une encre je m'explique dans la procédure tform1.onclick on met le non de l'encre qui lorsqu'on clique n'impote où sur form1 l'appele et vu que celle ci serait après le boucle ne la ferait plus justement ? je rêve là non ?

n°34725
Zero Cool
D&#039;abord arrêter le chimique...
Posté le 28-05-2001 à 11:06:34  profilanswer
 

Dans le OnClick de ta form, tu mets ton boolean à True:
 
procedure TForm1.FormClick(Sender: TObject);
begin
  Stop := True;
end;
 
et dans ta boucle, tu peux faire comme ça :
 
while (i < nb_boucles) do
  begin
    Application.ProcessMessages;
    Inc(i);
    if (Stop) then
      Break;
  end;
 
ou comme ça, moins bourrin :
 
while ((i < nb_boucles) and not(Stop)) do
  begin
    Application.ProcessMessages;
    Inc(i);
  end;

 

[edit]--Message édité par Zero Cool--[/edit]


---------------
"D'abord arrêter le chimique, et après reprendre l'école ..."  
n°34732
Amadeus
Posté le 28-05-2001 à 11:26:24  profilanswer
 

La solution proposee par endi, antp, zcool et les autres est non seulement la bonne solution mais la seule : lorsque t'entre ds une boucle et que tu veux en sortir par une action exterieure (click sur un bouton ou autre) il faut de tps en temps donner la main par un ProcessMessage, modifier une var booleenne ds un OnClick par ex at au retour du ProcessMessage verifer cette var et sortir si elle est fausse.
voila.

n°34940
DELL's
Posté le 28-05-2001 à 18:23:22  profilanswer
 

Ben justement c'est ce qu'il me falait car j'avais bien réussi à mettre pour que ça s'arrete mais l'acquisition continuait encore mais je vais essayer ça sinon merci  :)


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

  Arret d'une boucle en delphi ...

 

Sujets relatifs
(PHP) j'arrive pas a afficher des variables crees dans une boucle !DELPHI URGENT !!!
Pascal -> Delphi (Console)[DELPHI] CLIC DROIT CLIC GAUCHE
[Delphi 5] passage de variables d'une fiche à une autreDelphi et la base de registre ...
[Delphi] [Java][Delphi5] Boucle et contrôle (titre~?)
[ DELPHI ] Probleme de date et d'heureComment calculer la couleur moyenne d'une image bmp sous Delphi?
Plus de sujets relatifs à : Arret d'une boucle en delphi ...


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