[RESOLU] La modification de texte ne se fait pas???
Publié : ven. 07/sept./2012 7:47
Bonjour,
J'ai une routine appelée par un timer qui doit afficher le temps dans un "gadget string". Mais la modification n'apparaît que si déplace la fenêtre avec la souris! Si quelqu'un voit le problème?.
NB: Il y a 2 "Thread" également dans le programme...
Thead 1
Thead 2
J'ai une routine appelée par un timer qui doit afficher le temps dans un "gadget string". Mais la modification n'apparaît que si déplace la fenêtre avec la souris! Si quelqu'un voit le problème?.
NB: Il y a 2 "Thread" également dans le programme...
Thead 1
Code : Tout sélectionner
Procedure Compte_Temps(*value)
Repeat
gTemps_Ecoulees=Date()-gDate_Commancement
ForEver
EndProcedure
Code : Tout sélectionner
Procedure ShowHideWindow(void)
Repeat
If GetAsyncKeyState_(#VK_F8) & $1
If gMainformStatus = #False
HideWindow(#Window_Main, #False)
SetActiveWindow(#Window_Main)
gMainformStatus = #True
Else
HideWindow(#Window_Main, #True)
gMainformStatus = #False
EndIf
EndIf
ForEver
EndProcedure
Code : Tout sélectionner
AddWindowTimer(#Window_Main,1,100)
Code : Tout sélectionner
Select EventID
Case #PB_Event_Timer
If EventTimer()=1 And GetGadgetState(#Gadget_Main_BT_PLAY)=1
Affiche_Temps()
EndIf
Code : Tout sélectionner
Procedure Affiche_Temps()
Protected Temps_Projet=0,Heure=0,Reste=0,Minute=0,Temps_Tache=0,Requet$,secondes.i=0
Temps_Projet=gTemps_Ecoulees+gTemp_Projet
gCompteur_Sauvegarde+gTemps_Ecoulees
If Temps_Projet>=3600
Heure=Temps_Projet/3600
Reste=Temps_Projet-(Heure*3600)
Minute=Reste/60
secondes=Temps_Projet-((Heure*3600)+(Minute*60))
Else
Minute=Temps_Projet/60
secondes=Temps_Projet-(Minute*60)
EndIf
If Heure=0 : Temp_TXT$="00" : EndIf
If Heure<10 And Heure>0 : Temp_TXT$="0" : EndIf
If Heure>0 : Temp_TXT$+Str(Heure) : EndIf
Temp_TXT$+"h"
If Minute=0 : Temp_TXT$+"00" : EndIf
If Minute<10 And Minute>0: Temp_TXT$+"0": EndIf
If Minute>0 : Temp_TXT$+Str(Minute) : EndIf
Temp_TXT$+"m"
Temp_TXT$+Str(secondes)+"s"
SetGadgetText(#Gadget_Main_S_Temps_Project,Temp_TXT$)
Temps_Tache=gTemps_Ecoulees+gTemp_Projet
SetActiveGadget(#Gadget_Main_S_Temps_Project)
If Temps_Tache>=3600
Heure=Temps_Tache/3600
Reste=Temps_Tache-(Heure*3600)
Minute=Reste/60
Else
Minute=Temps_Tache/60
EndIf
If Heure=0 : Temp_TXT$="00" : EndIf
If Heure<10 And Heure>0: Temp_TXT$="0" : EndIf
If Heure>0 : Temp_TXT$+Str(Heure) : EndIf
Temp_TXT$+"h"
If Minute=0 : Temp_TXT$+"00" : EndIf
If Minute<10 And Minute>0 : Temp_TXT$+"0" : EndIf
If Minute>0 : Temp_TXT$+Str(Minute) : EndIf
Temp_TXT$+"m"
Temp_TXT$+Str(secondes)+"s"
SetGadgetText(#Gadget_Main_S_Temps_Tache,Temp_TXT$)
Requet$="UPDATE Project SET Temp_Ecouler='"+Str(Temps_Projet)+"' WHERE ID_Project='"+Str(gID_Projet)+"'"
If Not DatabaseUpdate(0,Requet$)
MessageRequester("Erreur Sqlite",DatabaseError())
End
EndIf
Requet$="UPDATE Tache SET Temp_Ecouler='"+Str(Temps_Projet)+"' WHERE ID_Tache='"+Str(gID_Tache)+"'"
If Not DatabaseUpdate(0,Requet$)
MessageRequester("Erreur Sqlite",DatabaseError())
End
EndIf
EndProcedure