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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Нужно заблокировать кнопку (http://forum.oszone.net/showthread.php?t=186412)

ZeroCrash 25-09-2010 03:27 1503781

Нужно заблокировать кнопку
 
В общем вот код. Нужно чтобы после нажатия на кнопку, она блокировалась на 3 секунды. Пробовал перенести в мой код такую функцию из моей очень старой программы, но чего-то у меня не получилось это реализовать :( Буду рад, если поможете :)

Код:

#include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <TreeViewConstants.au3>  $hGUI = GUICreate("Генератор отчётов. Версия 2.0", 445, 315)  $TreeView = GUICtrlCreateTreeView(6, 6, 212, 300, -1, $WS_EX_STATICEDGE+$WS_EX_CLIENTEDGE) $BS_MULTILINE#Region General TVItem $General_TVItem = GUICtrlCreateTreeViewItem("Россия", $TreeView) GUICtrlSetColor(-1, 0x0000C0$iGeneral_Last_Item = GUICtrlCreateDummy() #EndRegion General TVItem #Region Ярославская область $About_TVItem35 = GUICtrlCreateTreeViewItem("Ярославская область", $General_TVItem$okbutton35 = GUICtrlCreateButton("Переславль-" & @CRLF & "Залесский", 230, 20, 95, 40, $BS_MULTILINE) GUICtrlSetState(-1, $GUI_HIDE$iAbout_Last_Item35 = GUICtrlCreateDummy() #EndRegion 35 TVItem  $iLast_TVItemsID = GUICtrlCreateDummy() GUISetState()  While 1    $nMsg = GUIGetMsg()      Switch $nMsg Case $GUI_EVENT_CLOSE    Exit $okbutton35    If Random() < 0.5 Then Run(@ComSpec & " /c Start M_Pereslavl'-Zalesskij.bat") Else Run(@ComSpec & " /c Start Z_Pereslavl'-Zalesskij.bat") Endif                  Case $General_TVItem, $About_TVItem35                  $iEnd_ItemID = 0            Switch $nMsg                Case $General_TVItem                    $iEnd_ItemID = $iGeneral_Last_Item                Case $About_TVItem35                    $iEnd_ItemID = $iAbout_Last_Item35                            EndSwitch              $sExclude_IDs = $General_TVItem              _GUICtrlTreeView_ToggleItemsState($General_TVItem, $iLast_TVItemsID, $nMsg+1, $iEnd_ItemID, $sExclude_IDs)    EndSwitch    WEnd  Func _GUICtrlTreeView_ToggleItemsState($iHideStartID, $iHideEndID, $iShowStartID, $iShowEndID, $sExclude_IDs="")    If $sExclude_IDs <> "" Then $sExclude_IDs = "|" & $sExclude_IDs & "|"      For $i = $iHideStartID To $iHideEndID        If $sExclude_IDs = "" Or Not StringInStr($sExclude_IDs, "|" & $i & "|") Then GUICtrlSetState($i, $GUI_HIDE)    Next      For $i = $iShowStartID To $iShowEndID        If $sExclude_IDs = "" Or Not StringInStr($sExclude_IDs, "|" & $i & "|") Then GUICtrlSetState($i, $GUI_SHOW)    Next EndFunc

Creat0R 25-09-2010 03:38 1503783

Цитата:

Цитата ZeroCrash
В общем вот код »

Почему нет перевода строк?

Или у тебя так работает? :o

ZeroCrash 25-09-2010 03:59 1503786

хм...не всегда в нормальном виде получается. я вчера парился всю прогу перерезал чтобы убрать лишнее, я тогда сейчас файлом залью, я там в общем разбил на регионы разберёшься быстро, ну или если всё таки угодно, то скажи, я код порежу и выложу здесь)
http://zalil.ru/29724608

Creat0R 25-09-2010 04:38 1503789

Цитата:

Цитата ZeroCrash
не всегда в нормальном виде получается »

В чём проблема? у тебя так же код отправлялся и без раскраски. В чём набираешь код?

Creat0R 25-09-2010 05:56 1503792

Цитата:

Цитата ZeroCrash
Нужно чтобы после нажатия на кнопку, она блокировалась на 3 секунды »

Так не подходит:
Код:

        Case $okbutton
            ;...

            GUICtrlSetState($okbutton, $GUI_DISABLE)
            Sleep(3000)
            GUICtrlSetState($okbutton, $GUI_ENABLE)

?

И ещё, конструкцию
Код:

            If Random() < 0.5 Then
                ;...
            Else
                ;...
            EndIf

я бы заменил например так:

Код:

Run(@ComSpec & " /c Start /MIN Russia\" & _Iif(Random() < 0.5, "M", "Z") & "_Rubcovsk.bat")
для _Iif нужно подключить Misc.au3.


Время: 07:19.

Время: 07:19.
© OSzone.net 2001-