[R] Problème recup variable champ "GUICtrlCreateIn

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
corrs78
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 13 août 2007 17:38
Localisation : Yvelines
Status : Hors ligne

[R] Problème recup variable champ "GUICtrlCreateIn

#1

Message par corrs78 »

Je n'arrive pas à récupérer la variable inscrite dans le champ.
Pourtant cette fonction devrait fonctionner avec ce type de controle:
$srti = GUICtrlRead($num_srti)

Merci

Code : Tout sélectionner

#include <GuiConstants.au3>
;#NoTrayIcon

HotKeySet("{ESC}", "exity")

Dim $windows1, $num_srti, $compname, $bt_ok, $srti

;------------- Fenêtre principale --------------------;
$windows1 = GUICreate ( "" , 405, 130 , ( @DesktopWidth-405 ) / 2 , ( @DesktopHeight-130 ) / 2, $WS_VISIBLE + $WS_CAPTION) ;, $LVS_EX_GRIDLINES and $LVS_EX_GRIDLINES


$num_srti = GUICtrlCreateInput("", 235, 38, 70, 28)
GUICtrlSetLimit(-1,5)   ; limite l'entrée à 5 caractères
$font="Comic Sans MS"
GUICtrlSetFont (-1,12, 400, 4, $font)
GUICtrlCreateGroup ("",-99,-99,1,1)  ;close group

; BOUTON VALIDER
$bt_ok = GUICtrlCreateButton("bt_ok", 325, 14, 68, 68, $BS_BITMAP,$BS_DEFPUSHBUTTON)
GUICtrlSetImage ($bt_ok, "remote.bmp")

    ControlFocus("Contrôle Distant S.R.I.T.T.", "", $num_srti); focus sur ce controle.
    
    $srti = GUICtrlRead($num_srti)
    
    
While 1
    $msg = GUIGetMsg()

    Select
        Case $msg = $GUI_EVENT_CLOSE
            exity()
        Case $msg = $bt_ok
            ping_ordi()
    EndSelect
Wend
Exit

Func exity()
    FileDelete(@TempDir & "\" & $name)
    exit
EndFunc

;------------Fonction Ping ordinateur --------;
Func ping_ordi()
    MsgBox(64,"", $srti)
$Ping_ordi = Ping($compname,200)
If $Ping_ordi Then
    ; Ping Ok
    GuiCtrlCreateLabel("Veuillez patienter, communication établie ..." , 100, 100, 100, 18)
    GuiCtrlSetBkColor(-1, 0x00FF00)
    sleep(2000)
Else
    ; Ping Non Ok
    GuiCtrlCreateLabel("L'ordinateur "& $compname & " ne répond pas !" , 80, 100, 220, 20)
    GuiCtrlSetBkColor(-1, 0xFF0000)
    $font2="Courier New Bold"
    GUICtrlSetFont (-1,10, 400, $font2)
    sleep(2000)
    Exit
EndIf
EndFunc

 
Modifié en dernier par corrs78 le mer. 22 août 2007 13:30, modifié 1 fois.
Avatar du membre
corrs78
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 13 août 2007 17:38
Localisation : Yvelines
Status : Hors ligne

#2

Message par corrs78 »

J'ai oublié cette ligne dans le code :

$compname = $srti
Avatar du membre
corrs78
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 13 août 2007 17:38
Localisation : Yvelines
Status : Hors ligne

#3

Message par corrs78 »

J'ai trouvé la solution.

Je ne sais pourquoi, apparement il faut que

$srti = GUICtrlRead($num_srti)

se trouve dans le while, en dehors la variable n'est pas récupérée.

Si quelqu'un peut eclairer ma lanterne.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1550
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

#4

Message par sylvanie »

avant le while, tu construis ta gui, toute action de lecture de type guictrlread lira alors que ce qu'il y a dans le champs lors de sa création.

Lorsque la gui apparaît, alors tu es déjà passé dans le while, c'est pour ça qu'il faut le faire à partir de ce moment là.

maintenant il faut le faire uniquement quand tu en as besoins et pas à chaque tours de boucle.

Ici tu as besoins de lire ce contrôle lorsque tu appuie sur ton bouton. donc il faut mettre cette ligne au début du lancement de ta fonction lancée par l'appuie du bouton :

Code : Tout sélectionner


Func ping_ordi() 
$srti = GUICtrlRead($num_srti) 
   MsgBox(64,"", $srti) 
$Ping_ordi = Ping($compname,200) 
If $Ping_ordi Then 
   ; Ping Ok 
 
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre