Page 1 sur 1

savoir si la valeur de ma variable a été modifiée

Publié : jeu. 10/août/2017 10:24
par david
Bonjour,

j'ai une variable X qui se modife au fur et a mesure du temps qui passe automatiquement avec "ElapsedMilliseconds"
cette variable est utilisé pour définir le nom de ma fenetre affichée à l'écran avec "SetWindowTitle" intégré dans ma boucle

hors pour ne pas avoir d'effet de sacade dans mon affichage,
j'aurais aimé que "SetWindowTitle" n'intervienne que si X a été modifié

je ne sais pas si je suis clair...
comme ça n'est pas moi qui modifie X, c'est difficile de dire X a été modifié donc modifie le titre...
y a t'il une fonction qui test si ma variable est modifié ou comment parvenir a ca
(j'ai essayé avec un delay pour ralentir ma boucle mais il me bug dans mes calculs de temps...)

merci par avance

Re: savoir si la valeur de ma variable a été modifiée

Publié : jeu. 10/août/2017 11:06
par Ar-S
1 - Je te conseils le timer pour vérifier si toutes les X ms ta variable N à changé..

Pour ça Lors de ta création de Variable N tu fais N.s = "truc" et Noriginal.s = N.s
Et dans ton timer :

Code : Tout sélectionner

 If N.s <> Noriginal.s : Setwindowstitle(....) : Noriginal.s = N.s : endif
Mais je ne pige pas ton histoire de saccade. Pour éviter ça, essaye de passer par les BindEvent(). Regarde ICI

Re: savoir si la valeur de ma variable a été modifiée

Publié : jeu. 10/août/2017 11:10
par microdevweb
Bien que je comprenne pas tout, normalement au lancement de ton programme tu initialise "X", il suffit alors de créer une autre variable exemple "OldX" avec la même valeur que "X" ensuite tu teste et modifie OldX

Exemple:

Code : Tout sélectionner

if X<>OldX
   ; mon traitement
   OldX=X
endif

Re: savoir si la valeur de ma variable a été modifiée [RESOL

Publié : jeu. 10/août/2017 11:53
par david
merci encore pour les conseils :wink:

Re: savoir si la valeur de ma variable a été modifiée

Publié : jeu. 10/août/2017 12:59
par boby
Je rejoins Ar-S, pour moi le plus simple serait de AddWindowTimer()

Code : Tout sélectionner

Declare close()
Declare changenom()
Global window, x
window = OpenWindow(#PB_Any,0,0,10,10,"bla",#PB_Window_SystemMenu)
AddWindowTimer(window,0,3000)
BindEvent(#PB_Event_CloseWindow,@close())
BindEvent(#PB_Event_Timer,@changenom())
Repeat : WaitWindowEvent() : ForEver

Procedure close()
  End
EndProcedure
Procedure changenom()
  SetWindowTitle(window,"bla blaaaa")
  x + 1
  Debug x
EndProcedure

Re: savoir si la valeur de ma variable a été modifiée

Publié : jeu. 10/août/2017 14:37
par Shadow
Salut ici, ya un moyen de faire se que tu veux.
Tu peut savoir si une variable à été modifier en faisant comme les copain disent.

Voici un exemple:

Code : Tout sélectionner

A = 0 ; doit être modifier à l'avenir pour le bon fonctionnement du programme.
B = 1

; Tant que B est différent de A, alors la condition fonctionne, sinon, rien ne se passe.
If B <> A ; B a bien été modifié !
B = A
; Faire quelque chose...
EndIf
J’espère avoir répondus comme il faut...

Re: savoir si la valeur de ma variable a été modifiée

Publié : jeu. 10/août/2017 15:09
par falsam
Shadow a écrit :J’espère avoir répondus comme il faut...
Ne pas répondre aurait été aussi bien. Ta réponse n'apporte rien de plus ce qui a été dit précédemment. !!!