cs_NiuoGniP
Messages postés10Date d'inscriptionvendredi 10 janvier 2003StatutMembreDernière intervention16 juin 2003
-
16 juin 2003 à 23:10
Jean44
Messages postés26Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention27 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 ^_^
Jean44
Messages postés26Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention27 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.