Jump to content

Using GUICtrlRead with &


Recommended Posts

I'm sure this is something stupid, but why won't this work?

[autoit]

Local $iNumber1 = GUICtrlCreateInput("", 50 , 80 , 40, 30, $ES_NUMBER)
GUICtrlSetLimit(-1, 4)
Local $iNumber2 = GUICtrlCreateInput("", 50 , 130 , 40, 30, $ES_NUMBER)
GUICtrlSetLimit(-1, 4)

[/autoit]

etc..

Local $n=1

then in the funtion:

[autoit]

local $sCounterID=("$iNumber" & $n)
   $iCounter=GUICtrlRead($sCounterID)
ConsoleWrite($sCounterID)
ConsoleWrite($iCounter)

[/autoit]

 

the idea is to iterate the $n to read the various inputs ( I have 15 of them), however the GUICtrlRead simply returns 0?  I know it's working $sCounterID is displaying correctly and if I replace it with $iNumber1 etc then the script returns the input value correctly.

strange one?

Thanks for any help!

 

 

Link to comment
Share on other sites

  • Moderators

ni3dprint,

Concatenating the variable name as you are doing results in a literal  string - when that string is passed to GUICtrlRead it is interpreted as a number, as that is what the function expects. And a literal string which does not start with a numeric character is interpreted as 0 - hence the function fails to read the correct control.

What you need to do is to use Eval like this:

#include <GUIConstantsEx.au3>
#include <EditConstants.au3>

$hGUI = GUICreate("Test", 500, 500)

Local $iNumber1 = GUICtrlCreateInput("34", 50, 80, 40, 30, $ES_NUMBER)

$cButton = GUICtrlCreateButton("Test", 10, 300, 80, 30)

GUISetState()

While 1

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cButton
            _Test()
    EndSwitch

WEnd

Func _Test()

    Local $n = 1
    Local $sCounterID = ("iNumber" & $n)
    $iCounter = GUICtrlRead(Eval($sCounterID))
    ConsoleWrite($sCounterID & @CRLF)
    ConsoleWrite($iCounter & @CRLF)

EndFunc   ;==>_Test

But even better would be to use an array to hold the ControlIDs of your inputs - then you can use a simple loop to iterate through them.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...