Bonjour à tous
J'ai un programme qui reçoit des informations d'un autre programme via un protocole TCP géré par un composant TIdTcpServer dans la procedure OnExecute je récupère mes données et je fait appel à une fonction qui va les afficher à l'écran.
Sur mon interface j'ai un bouton Enregistrement (btnEnrOp2) qui me permet de demander à l'autre programme d’enregistrer des données sur le disque et quand l'enregistrement est terminé c'est signalé dans les données envoyées via le protocole TCP.
Ce qui est prévu c'est qu'après l’appui sur le bouton Enregistrement ce dernier devient invisible et je rends visible un autre bouton Arrêt d'urgence (btnArretUrgence) qui permet d'interrompre l'enregistrement si l'utilisateur s’aperçoit qu'il y a un problème.
Donc lors de l'appui sur le bouton enregistrement voici ce que j’exécute:
Si avant la fin de l'enregistrement l'utilisateur appui sur le bouton d'arrêt d'urgence voici ce qui est exécuté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 if (Sender = btnEnrOp2) then val(edNbMesOp2.Text, Valeur, err); if err = 0 then begin prgEnrOp2.Max := Valeur; prgEnrOp2.Value := 0; btnMesTmpOp2.Enabled := false; btnSetFreqTiOp2.Enabled := false; btnEnrOp2.Visible:=false; btnArretUrgence.Visible:=true; end; end;
Si l'utilisateur n’appuie pas sur le bouton d'arrêt d'urgence et laisse l'enregistrement se dérouler jusqu'à la fin, j'exécute aussi le code ci dessus afin de revenir à un affichage normal pour que l’utilisateur puisse faire un nouvel enregistrement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 btnMesTmpOp2.Enabled := true; btnSetFreqTiOp2.Enabled := true; btnEnrOp2.Visible:=true; btnArretUrgence.Visible:=false;
Si j’appuie sur l'un des boutons tout ce passe comme prévu à savoir disparition du bouton appuyé et apparition de l'autre. Par contre lorsque mon enregistrement se termine normalement mon interface n'est pas rafraichie et mon bouton d'arrêt d'urgence reste affiché.
Autre phénomène étrange si jamais je déplace ma souris sur l'emplacement normalement occupé par mon bouton enregistrement l'interface se met à jour et redeviens normale.
Par contre quand je détecte que mon enregistrement est terminé dans ma fonction de mise à jour de l'affichage
Une idée?
Partager