PDA

Показать полную графическую версию : [решено] [GUI] Вопрос с отображением формы и циклом


D_Master
05-03-2009, 15:41
Всем привет!
Сразу извиняюсь за название темы - не могу несколькими словами сформулировать вопрос :)
В общем, имеется скрипт:
#NoTrayIcon
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)
$mainForm = GUICreate("Установка программ", 640, 260)
GUISetFont(10, 400, 0, "Tahoma")
GUISetBkColor(0xFFFFFF)
$lblCurrentProg = GUICtrlCreateLabel("Установка:", 19, 112, 100, 20)
$textCurrentProg = GUICtrlCreateLabel("", 120, 112, 500, 20)
$lblDescription = GUICtrlCreateLabel("Описание:", 19, 142, 66, 20)
$lblStatus = GUICtrlCreateLabel("Ход установки:", 19, 216, 100, 20)
$textDescription = GUICtrlCreateLabel("", 120, 142, 500, 20)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\head.jpg", 0, 0, 640, 103)
$count = GUICtrlCreateLabel("", 120, 216, 500, 20)
$Label2 = GUICtrlCreateLabel("", 19, 200, 4, 4)
$lblAuthor = GUICtrlCreateLabel("Производитель:", 19, 172, 95, 20)
$textAuthor = GUICtrlCreateLabel("", 120, 172, 500, 20)
$timeDate = GUICtrlCreateLabel("", 408, 232, 220, 20)
GUISetState(@SW_SHOW)
Call("startprocess")
While 1
$sTimeDate = StringFormat("Время | дата: %s.%s.%s. | %s:%s:%s", @MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC)
GUICtrlSetData($timeDate, $sTimeDate)
Sleep(100)
WEnd
Func startprocess()
$sTimeDate = StringFormat("Время | дата: %s.%s.%s. | %s:%s:%s", @MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC)
GUICtrlSetData($timeDate, $sTimeDate)
Sleep(100)
GUICtrlSetData($textCurrentProg, "Программа 1")
GUICtrlSetData($textDescription, "Описание программы 1")
GUICtrlSetData($textAuthor, "Производитель 1")
GUICtrlSetData($count, "программа 1 из 5")
Sleep(2000)
GUICtrlSetData($textCurrentProg, "Программа 2")
GUICtrlSetData($textDescription, "Описание программы 2")
GUICtrlSetData($textAuthor, "Производитель 2")
GUICtrlSetData($count, "программа 2 из 5")
Sleep(2000)
GUICtrlSetData($textCurrentProg, "Программа 3")
GUICtrlSetData($textDescription, "Описание программы 3")
GUICtrlSetData($textAuthor, "Производитель 3")
GUICtrlSetData($count, "программа 3 из 5")
Sleep(2000)
GUICtrlSetData($textCurrentProg, "Программа 4")
GUICtrlSetData($textDescription, "Описание программы 4")
GUICtrlSetData($textAuthor, "Производитель 4")
GUICtrlSetData($count, "программа 4 из 5")
Sleep(2000)
GUICtrlSetData($textCurrentProg, "Программа 5")
GUICtrlSetData($textDescription, "Описание программы 5")
GUICtrlSetData($textAuthor, "Производитель 5")
GUICtrlSetData($count, "программа 5 из 5")
Sleep(2000)
GUICtrlSetData($textCurrentProg, "")
GUICtrlSetData($textDescription, "")
GUICtrlSetData($textAuthor, "")
GUICtrlSetData($count, "установка программ завершена!")
Sleep(2000)
Exit
EndFunc
Внизу формы есть лейбл, куда по идее должны писаться дата/время, что у меня и не получается. Если встроить цикл в функцию, то время поменяется только в начале цикла. Если оставить так же, как и сейчас - то же самое. А мне необходимо, чтобы время менялось каждую секунду (если нельзя реализовать такое секундой, то минутой). :help:

266903582
05-03-2009, 17:33
D_Master,
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 625, 445, 214, 161)
$Label1 = GUICtrlCreateLabel("Label1", 80, 64, 252, 65)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
GUICtrlSetData($Label1,@HOUR&" : "&@MIN&" : "&@SEC)
WEnd

D_Master
05-03-2009, 18:18
266903582, это понятно, но как это реализовать именно в моей форме?

Creat0R
05-03-2009, 18:38
Внизу формы есть лейбл, куда по идее должны писаться дата/время, что у меня и не получается »
Они не пишутся так как дело до цикла вовсе не доходит ;) - Попробуй так:

#NoTrayIcon
#include <GUIConstants.au3>
;

Opt("GUIOnEventMode", 1)

$mainForm = GUICreate("Установка программ", 640, 260)
GUISetFont(10, 400, 0, "Tahoma")
GUISetBkColor(0xFFFFFF)

$lblCurrentProg = GUICtrlCreateLabel("Установка:", 19, 112, 100, 20)
$textCurrentProg = GUICtrlCreateLabel("", 120, 112, 500, 20)
$lblDescription = GUICtrlCreateLabel("Описание:", 19, 142, 66, 20)
$lblStatus = GUICtrlCreateLabel("Ход установки:", 19, 216, 100, 20)
$textDescription = GUICtrlCreateLabel("", 120, 142, 500, 20)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\head.jpg", 0, 0, 640, 103)
$count = GUICtrlCreateLabel("", 120, 216, 500, 20)
$Label2 = GUICtrlCreateLabel("", 19, 200, 4, 4)
$lblAuthor = GUICtrlCreateLabel("Производитель:", 19, 172, 95, 20)
$textAuthor = GUICtrlCreateLabel("", 120, 172, 500, 20)
$timeDate = GUICtrlCreateLabel("", 408, 232, 220, 20)

GUISetState(@SW_SHOW)

AdlibEnable("SetTime_Proc", 1000)
StartProcess()

While 1
Sleep(100)
WEnd

Func SetTime_Proc()
$sTimeDate = StringFormat("Время | дата: %s.%s.%s. | %s:%s:%s", @MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC)
GUICtrlSetData($timeDate, $sTimeDate)
EndFunc

Func StartProcess()
$sTimeDate = StringFormat("Время | дата: %s.%s.%s. | %s:%s:%s", @MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC)
GUICtrlSetData($timeDate, $sTimeDate)
Sleep(100)
GUICtrlSetData($textCurrentProg, "Программа 1")
GUICtrlSetData($textDescription, "Описание программы 1")
GUICtrlSetData($textAuthor, "Производитель 1")
GUICtrlSetData($count, "программа 1 из 5")
Sleep(2000)
GUICtrlSetData($textCurrentProg, "Программа 2")
GUICtrlSetData($textDescription, "Описание программы 2")
GUICtrlSetData($textAuthor, "Производитель 2")
GUICtrlSetData($count, "программа 2 из 5")
Sleep(2000)
GUICtrlSetData($textCurrentProg, "Программа 3")
GUICtrlSetData($textDescription, "Описание программы 3")
GUICtrlSetData($textAuthor, "Производитель 3")
GUICtrlSetData($count, "программа 3 из 5")
Sleep(2000)
GUICtrlSetData($textCurrentProg, "Программа 4")
GUICtrlSetData($textDescription, "Описание программы 4")
GUICtrlSetData($textAuthor, "Производитель 4")
GUICtrlSetData($count, "программа 4 из 5")
Sleep(2000)
GUICtrlSetData($textCurrentProg, "Программа 5")
GUICtrlSetData($textDescription, "Описание программы 5")
GUICtrlSetData($textAuthor, "Производитель 5")
GUICtrlSetData($count, "программа 5 из 5")
Sleep(2000)
GUICtrlSetData($textCurrentProg, "")
GUICtrlSetData($textDescription, "")
GUICtrlSetData($textAuthor, "")
GUICtrlSetData($count, "установка программ завершена!")
Sleep(2000)

Exit
EndFunc

D_Master
05-03-2009, 19:20
:yahoo: Creat0R, Вы волшебник!!! спасибо большое!!! :happy:




© OSzone.net 2001-2012