Pause du programme

Résolu
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 - 7 août 2004 à 14:27
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 - 9 août 2004 à 22:13
Bonjour,
est ce qu'il existerais une procedure ou fonction qui demande au programme d'interrompre la procedure en cours jusqu'a que l'utilisateur appuye sur un bouton.

toutes les reponses sont les bienvenues !
Merci d'avance.

Ps aux webmasters : on ne peut pas mettre de code dans une question.

Si tu ne te plantes pas ......
tu ne poussera jamais

4 réponses

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
8 août 2004 à 17:11
On pourrait sortir de la boucle, noter la valeur, et revenir dans la boucle en partant de cette valeur ?

Petit exemple simpliste et amusant (enfin, je trouve...):

- 1 Form,
- 1 Label,
- 1 Button.

var
  Form1: TForm1;
  var Mini: Integer;
  Stop: Boolean;

implementation

{$R *.DFM}

procedure LanceBoucle;
var i: Integer;
    Maxi: Integer;
begin
  Maxi := 50000;
  for i := Mini to Maxi do
  begin
    if not Stop then
    begin
      Form1.Label1.Caption := IntToStr(i);
      Application.ProcessMessages;
    end
    else
    begin
      Mini := i;
      Exit;
    end;
  end;
  Mini := 0;
  Stop := True;
  Form1.Label1.Caption := '0';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Stop := not Stop;
  if not Stop then
    LanceBoucle;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Mini := 0;
  Stop := True;
end;


La boucle est arrêtée quand Stop est True, et repart quand Stop est False, depuis la valeur Mini stockée au moment où l'on avait quitté...

Bonne prog' :-p
3
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
8 août 2004 à 13:47
Il n'y a pas de reponse a une maivaise question....
Donc je presise:

Ce que je voudrais, c'est avoir une boucle for dans laquelle , a un moment de la boucle , la procedure attends jusqu'a que l'utilisateur appuye sur un bouton de la fiche.

Il n'est pas question ici de mettre Sleep(xxx) ni
var
  Temps: Cardinal;
begin
  Temps:= GetTickCount;
  repeat
    Application.ProcessMessages;
  until Cardinal(GetTickCount - Temps) > xxx
end;


Merci d'avance

Ps aux webmasters : on ne peut pas mettre de code dans une question.

Si tu ne te plantes pas ......
tu ne poussera jamais
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
9 août 2004 à 12:20
Super ca me va.
Comment a tu fait pour trouver ? :question)
Heureusement qu'il y a des têtes sur ce forum. :clown)
Merci a toi Japee.

Ps aux webmasters : on ne peut pas mettre de code dans une question.

Si tu ne te plantes pas ......
tu ne poussera jamais
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
9 août 2004 à 22:13
Bah, tu as capté ce que je voulais dire...
Alors, si je suis une tête, tu en es une autre, florenth :approve)
Sinon, arrête, j'ai les chevilles qui vont enfler, j'arrive déjà plus trop à entrer dans mes "shoes"... :big)
Ce qui me plait, dans la prog', c'est que, justement, tu as un problème, tu vas forcément arriver à le résoudre, ce n'est qu'une question de temps, c'est pas toujours aussi évident dans la vie %-6
Content de t'avoir dépanné, à charge de revanche... a + 8-)
0
Rejoignez-nous