Comment éviter

cs_DONALD3D Messages postés 8 Date d'inscription dimanche 14 novembre 2010 Statut Membre Dernière intervention 14 février 2011 - 26 nov. 2010 à 12:55
cs_DONALD3D Messages postés 8 Date d'inscription dimanche 14 novembre 2010 Statut Membre Dernière intervention 14 février 2011 - 3 déc. 2010 à 16:57
Bonjour,

j'envoie un texte à un serveur qui se charge d'affectuer une action dès réception.
Je souhaiterai bloquer l'action de bouton "envoi" tant que le serveur est occupé à terminer sa tâche ou plus simplement peut-être après un timing qui interdirait une nouvelle action du bouton pendant 3 secondes (2s c'est le temps de traitement du serveur).
Où et comment dois-je insérer cet action de blocage ?
J'ai cherché un bon moment c'est pour ça que je suis là
Si quelqu'un à une bonne idée ou a déjà fait ce genre de chose je suis preneur.


procedure TForm1.SendBtnClick(Sender: TObject);
begin
          ClientSocket.Socket.SendText(edit5.text + chr(13)+ chr(10));
end;


Merci.
Donald.

PS: je suis avec Delphi7 édition personnelle.

4 réponses

beckerich Messages postés 302 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 17 septembre 2013 2
26 nov. 2010 à 13:16
bonjour,

vois en utilisant un timer (TTimer dans la palette de composants système).

Luc.
0
cs_DONALD3D Messages postés 8 Date d'inscription dimanche 14 novembre 2010 Statut Membre Dernière intervention 14 février 2011
26 nov. 2010 à 14:50
Merci bien, je vais suivre cette piste.
0
cs_ahmed12 Messages postés 83 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 9 décembre 2010
27 nov. 2010 à 11:38
Bonjour,

tu peux Utiliser aussi la fonction sleep(millesecond); dans la procedure d'envoi pour syncronser le thread ou bien travailer ou mode asynchrone client serveur changer la propréte de composant ;

Affectez la valeur stNonBlocking à ServerType pour traiter de manière asynchrone toutes les lectures et écritures via la connexion de socket acceptées par le socket d'écoute.Quand ServerType a la valeur stNonBlocking,toutes les connexions client sont gérées par défaut dans un seul thread d'exécution.Les événements OnClientRead ou OnClientWrite se produisent quand le socket serveur a besoin d'effectuer des entrées/sorties via l'une des connexions./b
Ahmed-ouba-alger
0
cs_DONALD3D Messages postés 8 Date d'inscription dimanche 14 novembre 2010 Statut Membre Dernière intervention 14 février 2011
3 déc. 2010 à 16:57
Merci.

J'ai finalement opté pour bloquer le bouton au moment de l'envoi par un Btn.Enable := False; et qui est réactivé lorsque le serveur dit qu'il est prêt de nouveau à recevoir des ordres du client.

Merci à tous pour vos réponses.
0
Rejoignez-nous