Parse Loop und Guicontrol mit Variablen Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

ElektroBerry
Posts: 8
Joined: 13 Jul 2019, 20:10

Parse Loop und Guicontrol mit Variablen

13 Jul 2019, 20:23

Hallo.
Ich habe ein Problem mit dem folgenden Skriptteil. Mein Ziel ist es die 3 Namen der Buttons in dem parse Loop zu verändern.
Leider wird nur der 1. Button in dem Beispiel verändert.

Code: Select all

V1 := "Sun", V2 := "Moon", V3 := "Star"
Gui, Add, Button, vA, Alpha
Gui, Add, Button, vB, Beta
Gui, Add, Button, vC, Ceta
Gui, Show
Sleep 1000
varnames := "A, B, C"
Loop, parse, varnames, `,
{
            Runde := A_Index
            JNr := % V%Runde%
            GuiControl, Text, % A_LoopField, %JNr%
	    msgbox %A_LoopField% wird in %JNr% geändert. ;Nur zum testen
}
return

GuiClose:
ExitApp
wolf_II
Posts: 2688
Joined: 08 Feb 2015, 20:55

Re: Parse Loop und Guicontrol mit Variablen  Topic is solved

13 Jul 2019, 21:22

Entferne die Leerzeichen im Innern des Strings in der Zeile:

Code: Select all

varnames := "A, B, C"

Code: Select all

varnames := "A,B,C" ; ohne Leerzeichen
just me
Posts: 9442
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Parse Loop und Guicontrol mit Variablen

14 Jul 2019, 06:14

Moin,

der Korrekturvorschlag von wolf_II wird funktionieren. Ich fage mich nur gerade, von wem das letzte Skript war, in dem ich die Variable Runde als Zwischenspeicher für A_Index gesehen habe.

In einer einfachen Schleife kannst Du das Ganze dramatisch abkürzen.

Code: Select all

VarNames := "A,B,C"
Loop, Parse, VarNames, `,
{
   GuiControl, Text, %A_LoopField%, % V%A_Index%%
   MsgBox, % A_LoopField . " wird in " . V%A_Index% . " geändert." ; Nur zum testen
}
Return
Als Krönung kannst Du das auch auf einfache Arrays umstellen:

Code: Select all

#NoEnv
VarNames := ["A", "B", "C"]         ; Array
AltText := ["Sun", "Moon", "Star"]  ; Array
Gui, Add, Button, w200 vA, Alpha
Gui, Add, Button, w200 vB, Beta
Gui, Add, Button, w200 vC, Ceta
Gui, Show
Sleep 1000
For Index, VarName In VarNames {
   GuiControl, Text, %VarName%, % AltText[Index]
   MsgBox, % VarName . " wird in " . AltText[Index] . " geändert." ; Nur zum testen
}
Return
GuiClose:
ExitApp
ElektroBerry
Posts: 8
Joined: 13 Jul 2019, 20:10

Re: Parse Loop und Guicontrol mit Variablen

14 Jul 2019, 13:02

Vielen Dank, für die Hilfe. Hat mich wirklich weitergebracht, bei meinem Projekt.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: LuckyJoe and 17 guests