Что нового

[Массивы] Как пользоваться масивами для автоматизации создания GUI?

Dima1337

Осваивающий
Сообщения
186
Репутация
24
Всем доброго времени суток. Поиск вновь затупил, поэтому спрашиваю. Где можно прочитать о данной теме и вообще о массивах? Все же писать по 100 раз (GUICtrlCreateLabel) напрасная трата сил... Вот пример того как я пытался :(
Код:
#Include <WindowsConstants.au3>

$x = -8
$y = -16
$i = 0

$hForm = GUICreate('', 585, 601, 0, 0, $WS_POPUP + $DS_SETFOREGROUND)
GUISetBkColor(0x000000)
GUISetState()

HotKeySet("{0}","_exit")

While 1
	If $i < 37 Then
		$i+=1
		GUICtrlCreateLabel("0", 16 + $x, 8, 11, 20)
		GUICtrlSetColor(-2, 0x00FF00)
	EndIf
WEnd

Func _exit()
	Exit
EndFunc

Даже если бы моя попытка заработала то как привязать созданные "Label" к переменной? Ведь они переодически изменяться должны...
Хочу добавить что "Label" по замыслу должны создаваться по всему окну а не только по x.
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
Можно так

Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Dim $LabelArr[1000]=[999]

Opt("GUIOnEventMode", 1)

#Region ### START Koda GUI section ### Form=C:\!Download\!TMP.kxf
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


$Top=4
$Left=4

For $Num=1 To $LabelArr[0]
	If $Num>1 Then $Top+=19

	If $Top>438 Then
		$Top=4
		$Left+=50
	EndIf

	If $Left+50>615 Then ExitLoop

	 $LabelArr[$Num]=GUICtrlCreateLabel("Label"&$Num, $Left, $Top, 50, 17)
Next

While 1
	Sleep(100)
WEnd




Func Form1Close()
	Exit
EndFunc
 
Верх