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

Langage Delphi Discussion :

Pause dans une boucle


Sujet :

Langage Delphi

  1. #1
    HT
    HT est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 15
    Points : 16
    Points
    16
    Par défaut Pause dans une boucle
    Dans une boucle qui lit des centaines d'enregistrements, je voudrais qu'un bouton permette de passer d'un enregistrement à l'autre.
    J'ai écrit quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    label attente;
    for i:=1 to ex do
    begin
     
    // corps de la boucle lecture, affichage
     
    attente: while bton onclik goto attente;
    end; {i}
    J'ai joliment planté Delphi et l'ordinateur.
    Quelqu'un a plus simple pour faire une pause ?
    Merci;
    Je découvre DELPHI. Je commence à le comprendre...

  2. #2
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 275
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 275
    Points : 1 992
    Points
    1 992
    Par défaut
    Euh il y a l'API Sleep
    Cela te permet de faire une pause sans consommer de CPU
    8)
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  3. #3
    Membre habitué Avatar de gord's
    Inscrit en
    Avril 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 115
    Points : 127
    Points
    127
    Par défaut
    Si j'ai bien compris, dans ta boucle tu veux attendre une action utilisateur pour passer à l'enregistrement suivant.

    1) creer une form avec juste un bouton 'passer à l'enreg suivant', tu met sa propriété ModalResult à mrOK.

    ta procedure devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure laClasse.ProcQuiLit(parametres);
    var
        frm: laFormQueJeTaiIndique;
        // tes autres var
    begin
        frm:= laFormQueJeTaiIndique.create(application);
        // ta boucle
        for i := 1 to ex do begin
             // tes lignes de traitement...
             frm.ShowModal;
        end;
        frm.release;
    end;
    La prochaine révolution informatique : les machines qui font ce qu'on veut, au lieu de faire ce qu'on leur demande...
    Grand Vizir du Grand Gourou - Trois-quart aile gauche du TRFC et intendant de 3ème mi-temps - Papy fait de la résistance

  4. #4
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Un moyen simple : utilise une variable booléenne qui indique si l'application est en pause ou non, un bouton et son évènement OnClick :
    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
     
    var
      paused: boolean;
     
    procedure Traitement;
    var
      i: Integer;
    begin
      for i:=1 to ex do 
      begin
        paused:= true;
     
        // Traitement
     
        while paused do
          Application.ProcessMessages;
      end;
    end;
     
    procedure TMyForm.ButtonClick(Sender: TObject);
    begin
      paused:= false;
    end;

  5. #5
    HT
    HT est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Grand merci à Pierre Castelain pour deux raisons.
    1° Il résout mon petit pb.
    2° il me rappelle ce que j'avais lu et mal assimilé et peu retenu de l'application.processMessages qui rend la main à Windows.
    Donc je révise une leçon oubliée et progresse encore un peu plus dans Delphi.

    Merci donc.
    Que chacun ici trouve son miel.
    Je découvre DELPHI. Je commence à le comprendre...

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

Discussions similaires

  1. effectuer une pause dans une boucle
    Par guiguizekid dans le forum Tkinter
    Réponses: 4
    Dernier message: 30/12/2008, 20h39
  2. pause de durée paramètrable dans une boucle
    Par atomicJo dans le forum C++
    Réponses: 14
    Dernier message: 12/11/2007, 23h06
  3. Pause dans une boucle
    Par Invité dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/10/2007, 18h28
  4. Pause dans une boucle (sans consommer de CPU !)
    Par petitprince dans le forum Delphi
    Réponses: 18
    Dernier message: 18/12/2006, 19h41
  5. Marquer une pause dans une procédure stockée
    Par PéPénet dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/11/2003, 10h42

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