PDA

Показать полную графическую версию : Нужно заблокировать кнопку


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

#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <GUIConstantsEx.au3> #include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <StaticConstants.au3> #include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <WindowsConstants.au3> #include (http://www.autoitscript.com/autoit3/docs/keywords.htm##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
В общем вот код »
Почему нет перевода строк?

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

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

Creat0R
25-09-2010, 04:38
не всегда в нормальном виде получается »
В чём проблема? у тебя так же код отправлялся и без раскраски. В чём набираешь код?

Creat0R
25-09-2010, 05:56
Нужно чтобы после нажатия на кнопку, она блокировалась на 3 секунды »

Так не подходит:
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $okbutton
;...

GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)($okbutton, $GUI_DISABLE)
Sleep (http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm)(3000)
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)($okbutton, $GUI_ENABLE)

?

И ещё, конструкцию
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Random (http://www.autoitscript.com/autoit3/docs/functions/Random.htm)() < 0.5 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
;...
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
;...
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

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

Run (http://www.autoitscript.com/autoit3/docs/functions/Run.htm)(@ComSpec (http://www.autoitscript.com/autoit3/docs/macros.htm#@comspec) & " /c Start /MIN Russia\" & _Iif (http://dundats.mvps.org/help/html/libfunctions/_iif.htm)(Random (http://www.autoitscript.com/autoit3/docs/functions/Random.htm)() < 0.5, "M", "Z") & "_Rubcovsk.bat")

для _Iif нужно подключить Misc.au3.




© OSzone.net 2001-2012