Jump to content

Referening concatenated controlID within GUICtrlSetData argument


Recommended Posts

;Global $x[12] = 12 ints
;Global $y[12] = 12 ints
;Global $colors[12] = 12 6 digit strings that contain hex values

Global $Form1 = GUICreate("Incrementer", 800, 600)
Global $Button1 = GUICtrlCreateButton("Auto-Increment", 174, 184, 90, 25)

Global $Input1 = GUICtrlCreateInput(0, 128, 24, 57, 21)
Global $Input2 = GUICtrlCreateInput(0, 232, 24, 57, 21)
...
Global $Input12 = GUICtrlCreateInput(0, 876, 24, 57, 21)

GUICtrlCreateUpdown($Input1)
GUICtrlCreateUpdown($Input2)
...
GUICtrlCreateUpdown($Input12)

GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            Call("autoincrement")
    EndSwitch
WEnd

and after that

func autoincrement()
    For $i = 0 to 12
        If Hex(PixelGetColor($x[$i], $y[$i]),6) = $colors[$i] Then
            GUICtrlSetData($Input & $i, GUICtrlRead($Input & $i) +1)
        EndIf
    Next
EndFunc

$Input: possibly used before declaration. [at the fourth-last line]

Any ideas on how I can reference my ID's this way without receiving this error?

Edited by wuschelbeutel
Link to comment
Share on other sites

You can't access a variable this way:

GUICtrlRead($Input & $i) +1)
I would suggest to use an array:
Global $Input[13]
$Input[12] = GUICtrlCreateInput(0, 876, 24, 57, 21)
...
GUICtrlSetData($Input[$i], GUICtrlRead($Input[$i+1]))

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Wuschelbeutel klingt verdammt nach deutschem Sprachraum ... also dann: Gute Nacht!

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Does this work for you?

func autoincrement()
    For $i = 0 to 12
        If Hex(PixelGetColor($x[$i], $y[$i]),6) = $colors[$i] Then
            GUICtrlSetData(Eval("Input" & $i), GUICtrlRead(Eval("Input" & $i) +1))
        EndIf
    Next
EndFunc

I would still prefer arrays, but give it a try

Edited by AoRaToS

s!mpL3 LAN Messenger

Current version 2.9.9.1 [04/07/2019]

s!mpL3 LAN Messenger.zip

s!mpL3

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...