Sign in to follow this  
Followers 0
PredatorXXI

Label won't update

7 posts in this topic

Hi,

Newbie here so be gentle please!!!

Never been a programmer but with autoit I've already made some very nice personal utilities, like automating program installation.

Now my problem is:

In the following code why won't:

GUICtrlSetData($listaPCs[$i][1], "Online")
set the label as Online?

I know if I set it to $label6 it works, but I would like it to update by the array position.

Full Code:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <inet.au3>
#include<Array.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Main", 400, 263, 332, 402)
$Label1 = GUICtrlCreateLabel("Localhost", 8, 56, 147, 22)
GUICtrlSetFont(-1, 10, 400, 0, "Trebuchet MS")
$Label2 = GUICtrlCreateLabel("Computer2", 8, 87, 157, 22)
GUICtrlSetFont(-1, 10, 400, 0, "Trebuchet MS")
$Label3 = GUICtrlCreateLabel("Computer3", 8, 118, 158, 22)
GUICtrlSetFont(-1, 10, 400, 0, "Trebuchet MS")
$Label4 = GUICtrlCreateLabel("Computer Name", 8, 16, 146, 26)
GUICtrlSetFont(-1, 12, 800, 0, "Trebuchet MS")
$Label5 = GUICtrlCreateLabel("Coms", 192, 16, 114, 26)
GUICtrlSetFont(-1, 12, 800, 0, "Trebuchet MS")
$Label6 = GUICtrlCreateLabel("Offline", 192, 56, 44, 22)
GUICtrlSetFont(-1, 10, 400, 0, "Trebuchet MS")
GUICtrlSetColor(-1, 0xFF0000)
$Label7 = GUICtrlCreateLabel("Offline", 192, 87, 44, 22)
GUICtrlSetFont(-1, 10, 400, 0, "Trebuchet MS")
GUICtrlSetColor(-1, 0xFF0000)
$Label8 = GUICtrlCreateLabel("Offline", 192, 118, 44, 22)
GUICtrlSetFont(-1, 10, 400, 0, "Trebuchet MS")
GUICtrlSetColor(-1, 0xFF0000)
$Button8 = GUICtrlCreateButton("Refresh", 8, 224, 81, 25)
GUISetState(@SW_SHOW)


Global $listaPCs[3][2] = [["Localhost", "$Label6"], ["Computer2", "$Label7"] , ["Computer3", "$Label8"]]

Func _ping()
for $i = 0 to UBound($listaPCs)-1 Step 1
Ping ($listaPCs[$i][0])
if @error= 0 Then
GUICtrlSetData($listaPCs[$i][1], "Online")
ConsoleWrite(@error)
GUICtrlSetColor($label6, 0x008000)
Else
ConsoleWrite($listaPCs[$i][0] & " está offline" & @CRLF)
EndIf
Next
EndFunc

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button8
_ping()

EndSwitch
WEnd

Share this post


Link to post
Share on other sites



Your variables in the array declaration are in quotes, remove the quotes and try it again.

Global $listaPCs[3][2] = [["Localhost", $Label6], ["Computer2", $Label7] , ["Computer3", $Label8]]; no quotes around variable names

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

Hey, that was simple...thank you!

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

I would also do away with double the number of variables and opt for $listaPCs[0][1] = GUICtrlCreate... instead of $Lable6 = GUICtrlCreate... but the array would have to be declared before you create the labels. Just an idea.

Edited by guinness

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

I would also do away with double the number of variables and opt for $listaPCs[0][1] = GUICtrlCreate... instead of $Lable6 = GUICtrlCreate... but the array would have to be declared before you create the labels. Just an idea.

Hi guinness, I don't think I understand what you're trying to say. Would you care to explain? Thank you!

Share this post


Link to post
Share on other sites

Why the need for $Label6?

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w 7

#include <GUIConstantsEx.au3>

Global $__ListPCs[3][2] = [['Localhost', '$Label6'],['Computer2', '$Label7'],['Computer3', '$Label8']] ; This could be Local and using ByRef too.

Example()

Func Example()
    #region ### START Koda GUI section ### Form=
    Local $hGUI = GUICreate('Main', 400, 263, 332, 402)
    GUICtrlCreateLabel('Localhost', 8, 56, 147, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlCreateLabel('Computer2', 8, 87, 157, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlCreateLabel('Computer3', 8, 118, 158, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlCreateLabel('Computer Name', 8, 16, 146, 26)
    GUICtrlSetFont(-1, 12, 800, 0, 'Trebuchet MS')
    GUICtrlCreateLabel('Coms', 192, 16, 114, 26)
    GUICtrlSetFont(-1, 12, 800, 0, 'Trebuchet MS')
    $__ListPCs[0][1] = GUICtrlCreateLabel('Offline', 192, 56, 44, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlSetColor(-1, 0xFF0000)
    $__ListPCs[1][1] = GUICtrlCreateLabel('Offline', 192, 87, 44, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlSetColor(-1, 0xFF0000)
    $__ListPCs[2][1] = GUICtrlCreateLabel('Offline', 192, 118, 44, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlSetColor(-1, 0xFF0000)
    Local $iButton8 = GUICtrlCreateButton('Refresh', 8, 224, 81, 25)
    GUISetState(@SW_SHOW, $hGUI)

    Local $nMsg = 0
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                ExitLoop

            Case $iButton8
                _Ping()

        EndSwitch
    WEnd
    GUIDelete($hGUI)
EndFunc   ;==>Example

Func _Ping()
    For $i = 0 To UBound($__ListPCs) - 1
        Ping($__ListPCs[$i][0])
        If @error = 0 Then
            GUICtrlSetData($__ListPCs[$i][1], 'Online')
            ConsoleWrite(@error)
            GUICtrlSetColor($__ListPCs[$i][1], 0x008000)
        Else
            ConsoleWrite($__ListPCs[$i][0] & ' está offline' & @CRLF)
        EndIf
    Next
EndFunc   ;==>_Ping

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Why the need for $Label6?

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w 7

#include <GUIConstantsEx.au3>

Global $__ListPCs[3][2] = [['Localhost', '$Label6'],['Computer2', '$Label7'],['Computer3', '$Label8']] ; This could be Local and using ByRef too.

Example()

Func Example()
    #region ### START Koda GUI section ### Form=
    Local $hGUI = GUICreate('Main', 400, 263, 332, 402)
    GUICtrlCreateLabel('Localhost', 8, 56, 147, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlCreateLabel('Computer2', 8, 87, 157, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlCreateLabel('Computer3', 8, 118, 158, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlCreateLabel('Computer Name', 8, 16, 146, 26)
    GUICtrlSetFont(-1, 12, 800, 0, 'Trebuchet MS')
    GUICtrlCreateLabel('Coms', 192, 16, 114, 26)
    GUICtrlSetFont(-1, 12, 800, 0, 'Trebuchet MS')
    $__ListPCs[0][1] = GUICtrlCreateLabel('Offline', 192, 56, 44, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlSetColor(-1, 0xFF0000)
    $__ListPCs[1][1] = GUICtrlCreateLabel('Offline', 192, 87, 44, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlSetColor(-1, 0xFF0000)
    $__ListPCs[2][1] = GUICtrlCreateLabel('Offline', 192, 118, 44, 22)
    GUICtrlSetFont(-1, 10, 400, 0, 'Trebuchet MS')
    GUICtrlSetColor(-1, 0xFF0000)
    Local $iButton8 = GUICtrlCreateButton('Refresh', 8, 224, 81, 25)
    GUISetState(@SW_SHOW, $hGUI)

    Local $nMsg = 0
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                ExitLoop

            Case $iButton8
                _Ping()

        EndSwitch
    WEnd
    GUIDelete($hGUI)
EndFunc ;==>Example

Func _Ping()
    For $i = 0 To UBound($__ListPCs) - 1
        Ping($__ListPCs[$i][0])
        If @error = 0 Then
            GUICtrlSetData($__ListPCs[$i][1], 'Online')
            ConsoleWrite(@error)
            GUICtrlSetColor($__ListPCs[$i][1], 0x008000)
        Else
            ConsoleWrite($__ListPCs[$i][0] & ' está offline' & @CRLF)
        EndIf
    Next
EndFunc ;==>_Ping

OK! I now got it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0