Parse Loop und Guicontrol mit Variablen

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Parse Loop und Guicontrol mit Variablen

Re: Parse Loop und Guicontrol mit Variablen

Post by ElektroBerry » 14 Jul 2019, 13:02

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

Re: Parse Loop und Guicontrol mit Variablen

Post by just me » 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

Re: Parse Loop und Guicontrol mit Variablen

Post by wolf_II » 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

Parse Loop und Guicontrol mit Variablen

Post by ElektroBerry » 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

Top