Page 1 sur 1

[R] Changer nom de fenêtre en fonction d'une variable

Posté : ven. 18 oct. 2013 18:51
par perfaram
Bonjour à tous
Tout est dans le titre : je cherche à changer le nom d'une fenêtre en fonction de la valeur d'une variable.
C'est à dire que j'ai le nom normal (Localisation des balises) et le nom si une "procédure" est ouverte ("Localisation des balises [$procedure]" avec $procedure=nom de la procédure ouverte).
► Afficher le texte
La fonction setproc() est actuellement appelée par un bouton ($setproc) mais dans le futur, ce bouton et cette fonction disparaîtront : la variable $procedure sera remplie par la fonction d'ouverture.

Le problème étant très simple : ça ne marche pas ! Le titre de la fenêtre ne change pas :shock:

Merci d'avance !! :wink:

Re: [..] Changer nom de fenêtre en fonction d'une variable

Posté : ven. 18 oct. 2013 18:56
par mikell
Essaye WinSetTitle()

Re: [..] Changer nom de fenêtre en fonction d'une variable

Posté : ven. 18 oct. 2013 19:16
par perfaram
Merci, c'est mieux, puisque maintenant des crochets vides sont rajoutés à la fin du titre.
Voici ce que j'ai fait :
► Afficher le texte
J'ai adapté partout avec $mgt à la place de $mainguititle, et rajouté $mgtnew comme nom actualisé de la fenêtre. Mais ça marche pas :cry:
Où me suis-je planté ?

Re: [..] Changer nom de fenêtre en fonction d'une variable

Posté : ven. 18 oct. 2013 19:51
par Sea

Code : Tout sélectionner

Global $maingui = GUICreate($mgt, 1059, 684, 172, 99)

WinSetTitle($mgt, "", $mgtnew)
 
Rien ne te choque? essaye

Code : Tout sélectionner

WinSetTitle($maingui, "", $mgtnew)
 
Après aussi un petit conseil ce n'est pas universel mais lorsque tu as des noms de fonctions/variable qui sont en 2mots met la 1ere lettre du second mot (ou plus) en majuscule c'est beaucoup plus lisible ;)

Re: [..] Changer nom de fenêtre en fonction d'une variable

Posté : ven. 18 oct. 2013 19:51
par mikell
Quand tu actualises une variable, si tu le dis pas à ton script il peut pas le savoir => (1)
Le nouveau titre c'est pour la gui => (2)

Code : Tout sélectionner

While 1
    If $procedure <> "" Then
        $mgtnew = $service & " - Localisation des balises [" & $procedure & "]"  ; (1)
        WinSetTitle($maingui, "", $mgtnew)  ; (2)
    EndIf
WEnd

Re: [..] Changer nom de fenêtre en fonction d'une variable

Posté : ven. 18 oct. 2013 20:19
par perfaram
Merci beaucoup, ça marche !
Malheureusement, dès que le nom change, le programme arrête de réagir : impossible de bouger la fenêtre, au survol les contrôles (fermer/réduire/agrandir) ne se mettent plus en surbrillance, le clic droit sur le tray AutoIT ne provoque rien, un clic sur le menu démarrer non plus - bref c'est l'explorer qui devient tout mou... :?
Pour fermer, il faut cliquer sur la croix puis attendre plusieurs secondes, et dès que le script est terminé tout revient dans la normale ! :o
C'est bizarre non ?

PS : Voici le code complet :
► Afficher le texte
J'ai tout prévu pour avoir plusieurs GUIs à la fois (GUI dans une fonction, de quoi vérifier quelle GUI a envoyer le message de fermeture), c'est peut-être le problème ?

Re: [..] Changer nom de fenêtre en fonction d'une variable

Posté : ven. 18 oct. 2013 21:09
par mikell
Hmm ça sent fort la transpiration de processeur
Tu devrais essayer de ne faire travailler que quand c'est réellement nécessaire, par exemple

Code : Tout sélectionner

While 1
  Sleep(10)
WEnd
...
Func setproc()
  $procedure="Essai"
  $mgtnew = $service & " - Localisation des balises [" & $procedure & "]" 
  WinSetTitle($maingui, "", $mgtnew) 
EndFunc
 
En remplissant les boucles infinies le moins possible pour ne pas coincer le script

Re: [..] Changer nom de fenêtre en fonction d'une variable

Posté : ven. 18 oct. 2013 21:18
par perfaram
Yep, merci beaucoup ça tourne mieux ! :)
Toujours aussi réactifs !