Temporisation

cs_NiuoGniP Messages postés 10 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 16 juin 2003 - 16 juin 2003 à 23:10
Jean44 Messages postés 26 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 27 juin 2003 - 17 juin 2003 à 11:30
Bonjour tout le monde,

Je suis actuellement sur le developpement d'un client FTP.
Pendant l'execution du prog, certaine fonction ne sexecute pas car le prog tourne trop vite, exmple (ce nest pas mon cas mais c juste pour expliker) :

Inc(nbr);
TSringList.add(...);

Grosso si je met pas un 'sleep' ou un 'showmessage' entre ces 2 fonctions pour temporiser lexecution alors la fonction add par exemple ne sexecute pas.

Jai donc de gros souci car en fait lexecution de mon code ce passe desfois bien et des fois mal, pour la meme demande.

Je voulais donc savoir comment faire ?
Merci de votre aide et jespere ke vous avez compris ma question car jexplike comme une daube ^_^

1 réponse

Jean44 Messages postés 26 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 27 juin 2003
17 juin 2003 à 11:30
Salut,
Tu peux utiliser un TTimer pour temporiser une attente sur un événement asynchrône. C'est ce que je fais lorsque j'attends une réponse sur la liaison série avant de poursuivre le programme.

Exemple :

...
   // Défini au début, dans la fiche
   // Propriété Enabled = False;
  aTimer   : TTimer;

  // Flag Tempo écoulée
  TimeOut : Boolean;
...
                        
// Evénément Timer
Procedure MaForm.aTimerTimer( Sender : TObject);
Begin
  TimeOut := True;
End;

// Temporisation
Procedure Tempo( Delay : Integer);
Begin
  TimeOut := False;
  If Delay <= 0  Then Exit;
  aTimer.Interval := Delay;
  aTimer.Enabled := True;
  Repeat
    Application.ProcessMessages;
  Until TimeOut; 
End;


A toi d'évaluer la valeur de Delay en fonction de tes besoins.

Bonne prog
0
Rejoignez-nous