Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] [GUI] Вопрос с отображением формы и циклом (http://forum.oszone.net/showthread.php?t=133899)

D_Master 05-03-2009 15:41 1055730

[GUI] Вопрос с отображением формы и циклом
 
Всем привет!
Сразу извиняюсь за название темы - не могу несколькими словами сформулировать вопрос :)
В общем, имеется скрипт:
Код
Код:

#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 1055827

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 1055866

266903582, это понятно, но как это реализовать именно в моей форме?

Creat0R 05-03-2009 18:38 1055882

Цитата:

Цитата D_Master
Внизу формы есть лейбл, куда по идее должны писаться дата/время, что у меня и не получается »

Они не пишутся так как дело до цикла вовсе не доходит ;) - Попробуй так:

Код:

#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 1055915

:yahoo: Creat0R, Вы волшебник!!! спасибо большое!!! :happy:


Время: 08:01.

Время: 08:01.
© OSzone.net 2001-