Что нового

[Математика] настроить progressbar

andreitrane

Новичок
Сообщения
141
Репутация
3
помогите настроить прогрессбар на выполнение данного цикла, а то че то не могу никак подсчитать, чтобы отображалось выполнение всех 10 кругов по 5 раз на одном progressbar'e
Код:
for $i = 1 to 5
for $d = 1 to 10
guictrlsetdata($progress, round(?????????????))
sleep(500)
next
next
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Код:
guictrlsetdata($progress, round(($d + ($i - 1)*10))*5*10/100)
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
а допустим если будут такие переменные, то прогрессбар будет таким?
Код:
for $i = 1 to $g[0]
for $f = 1 to number($s)
GUICtrlSetData($Progress, Round(($f+($i-1)*Number($s)))*Number($g[0])*Number($s)/100)
Sleep(500)
next
next
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
andreitrane
ну вроде да. возьми и проверь, что мешает
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
просто я с такими переменными проверяю, а прогресс стоит на месте...
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
я ошибся, дробь надо перевернуть
Код:
GUICtrlSetData($Progress, Round(($f+($i-1)*Number($s)))*100/(Number($g[0])*Number($s))
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Kaster [?]
дробь надо перевернуть
И скобки внутри Round поправить:
Код:
#include <GUIConstantsEx.au3>

$Form1 = GUICreate('Test Progress', 350, 150)
$nProgress = GUICtrlCreateProgress(25, 40, 300, 20)
$nButton = GUICtrlCreateButton('Click', 75, 80, 200, 40)
GUISetState()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nButton
			GUICtrlSetData($nProgress, 0)
			$iNum_1 = Random(5, 10, 1)
			$iNum_2 = Random(10, 15, 1)
			For $i = 1 To $iNum_1
				For $j = 1 To $iNum_2
					ToolTip(Round(($j + ($i - 1) * $iNum_2) * 100 / ($iNum_1 * $iNum_2)) & '%', 0, 0)
					GUICtrlSetData($nProgress, Round(($j + ($i - 1) * $iNum_2) * 100 / ($iNum_1 * $iNum_2)))
					Sleep(100)
				Next
			Next
	EndSwitch
WEnd
 
Верх