Page 1 of 1

A_Index im Loop

Posted: 16 Nov 2016, 05:40
by Wick3d
Hallo Leute,

ich habe folgendes Problem:

Ich möchte gerne in einem Loop Variablen "abarbeiten". Doch irgendwie funktioniert das ganze nicht mehr sobald ich im If-Befehl der wiederum im Loop ist %A_Index% verwende.

hier ausschnitte vom code:

Code: Select all

CB1 := "ComboBox2" 		; Ersatzteil
CB2 := "ComboBox9" 		; Verschleißteil
CB3 := "ComboBox10" 	; Zukaufteil
CB4 := "ComboBox11"	; Fertigungsteil
CB5 := "ComboBox4"		; Fremdfertigung
CB6 := "ComboBox5"		; Laserteil
CB7 := "ComboBox7"		; Kantteil
CB8 := "ComboBox8"		; Zerspanung

--------------------------------------------------
Gui
--------------------------------------------------

Dreh:
Button1 = JA
Button2 = JA
Button3 = JA
Button4 = JA
Button5 = JA
Button6 = JA
Button7 = JA
Button8 = JA
gosub Programm
return

Programm:
IfWinNotExist, ahk_class #32770
{
	MsgBox, 4112, Fehler, Datenkarte nicht geöffnet !
	return
}
else
{
	WinActivate, ahk_class #32770
	sleep, 200

	Loop, 8
	{
		if (Button%A_Index% = "JA")
		{
			ControlSend, CB%A_Index%, {UP}, ahk_class #32770
		}
	}
	return
}	
return
Wenn ich nun "CB%A_Index%" mit %CB1%" ersetze funktioniert es Einwand frei.
Also irgendwie muss es an dem A_Index liegen ?!

Ich danke für eure Hilfe

Gruß
Alex

Re: A_Index im Loop

Posted: 16 Nov 2016, 06:28
by just me
Moin,

Variablen und Ausdrücke

ControlSend ist ein Kommando und nutzt deshalb als Standard die die 'Traditionssyntax'. Damit ist alles Text was nicht durch %-Zeichen als Variablenname kenntlich gemacht wird. Aus CB%A_Index% für A_Index = 1 wird deshalb der Text CB1. Wenn Du die Variable CB%A_Index% ansprechen willst, braucht es einen Ausdruck. Darin bezieht sich Alles, was nicht numerisch oder in "-Zeichen eingeschlossen ist, auf Variablen. Er muss hier mit einem einzelnen %-Zeichen erzwungen werden: % CB%A_Index%.

Re: A_Index im Loop

Posted: 16 Nov 2016, 06:38
by Wick3d
absolut perfekt !
Vielen lieber Dank - auch für die Erklärung