Ich zerlege gerade das Skript - und lerne fleißig.
Ich weis was die folgende Zeile macht - die Checkboxen setzen, aber ich habe nicht ganz das "Wie" verstanden:
AutoIt
For $i = 1 To $aDecoders[0][0]
$aIDPicFormat[$i - 1] = GUICtrlCreateCheckbox($aDecoders[$i][5], 600 + Mod($i - 1, 5) * 70, 173 + Int(($i - 1) / 5) * 25, 55, 20)
Mir geht es nur um die X und Y Koordinaten des GUICtrlCreateCheckbox() Befehls.
Das Ergebnis ist, das alle Werte aus dem Array in 2 Reihen hintereinander eine Checkbox erhalten
Fangen wir mit X an:
600 + Mod($i - 1, 5) * 70
- Bei 600 Pixeln von links fangen wir an
- ist die erste Reihe "voll" soll die nächste Reihe 70 Pixel weiter kommen
- Mod kannte ich bisher nur zur "Gerade/Ungrade" Ermittlung ... naja, es sind ja nur 2 zeilen, also Gerade Zeile 1, Ungerade Zeile 2 nehme ich an (Falsch!)
- Mod($i - 1, 5) ... Ich weis da kommt bei $i = 1 To 10 die Zahlenfolge 0 1 2 3 4 0 1 2 3 4 raus ... genutzt werden dazu $i = 0 1 2 3 4 5 6 7 8 9 ...
- Also wird wohl eher erst Zeile 1 und dann Zeile 2 befüllt ... ok
- und die 5 als 2. Parameter sorgt bestimmt dafür das es alle 5 Werte wieder von vorne losgeht, also werden es 5 Spalten
- So, auch nach dem 10 Lesen des Eintrages in der Hilfe habe ich den Befehl Mod() nicht verstanden ... auch wenn ich sehe was er macht.
- Etwas gegoogelt ... immer noch nicht schlauer. Dreisatz kann ich noch, der Rest ist so 25 Jahre her.
- Was danach passiert ist klar: Das Ergebnis von Mod wird mal dem gewünschten Abstand der Spalten = 70 genommen. Also ergibt sich +0, +70, +140, +210, +280 ... und wieder von vorne
Nun Y, ist bestimmt einfacher:
173 + Int(($i - 1) / 5) * 25
- Bei 173 Pixeln von oben ist die erste Zeile ... * 25 ... und bei 198 Pixel die 2. Zeile
- ($i - 1) ... ok, wieder die Zahlenfolge 0 1 2 3 4 5 6 7 8 9
- ($i - 1) / 5) ... und die Zahlenfolge teilen wir immer durch 5 ... also ist die Zahlenfolge nun 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
- Int() gibt uns davon nur die ganze Zahl, also den Teil vor dem Komma/Punkt wieder. Zahlenfolge ist also 0 0 0 0 0 1 1 1 1 1
- Und das dann mal 25. Wir addieren also zum Startwert 4 x 0 (=Nichts) und 4 x 25
- Ok, Y habe ich verstanden. So ganz und im allen
Dann bleibt ja nur noch eines übrig:
Jemand müsste mir mal bitte den Befehl Mod() erklären.
Aber bitte so wie man es einem 6-Jährigen erklären würde - Danke!
Schöne Grüße,
BLinz