Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Цитата ZeroCrash:
beve, разобрал твой пример....многовато кода получается если добавлять эти функции к каждой кнопке. Может просто я неясно выразился или просто по-другому никак, но мне нужно чтобы при нажатии любой кнопки блокировались все кнопки на 3с. Сейчас разберу скрипт proxy и сравню »
пооооооооооооооооооо любому, придется прописывать ВСЕ кнопки, которые необходимо заблокировать.
Либо сразу напрямую:
Код: Выделить весь код
ControlDisable($mainwindow,"",$Okbutton)
или
Код: Выделить весь код
GUICtrlSetState($okbutton, $GUI_DISABLE)
Либо состовлять списки указателей на кнопки, кторые необходимо заблокировать. Пример:
Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>

Opt('GUIOnEventMode', 1)

Global $mainwindow, $okbutton1, $okbutton2, $sButtonList

$mainwindow = GUICreate('Программа2', 460, 340)
    GUISetOnEvent($GUI_EVENT_CLOSE, 'CLOSEClicked')

$okbutton1 = GUICtrlCreateButton('Кнопка', 5, 30, 90)
    GUICtrlSetOnEvent(-1, 'OKButton')
$okbutton2 = GUICtrlCreateButton('Кнопка', 5, 30+30, 90)
    GUICtrlSetOnEvent(-1, 'OKButton')

$sButtonList = $okbutton1 & '|' & $okbutton2
GUISetState()

While 1
    Sleep(100)
WEnd

Func CLOSEClicked()
    Exit
EndFunc

Func OKButton()
    If Random() < 0.5 Then
        Run(@ComSpec & ' /c Start 1.bat')
        Sleep(3000)
    Else
        Run(@ComSpec & ' /c Start 2.bat')
        Sleep(3000)
    Endif
    AdlibEnable('_EnableButton', 3000)
    _ButtonSetState(0)
EndFunc

Func _EnableButton()
    _ButtonSetState(1)
    AdlibDisable()
EndFunc

Func _ButtonSetState($fState)
    Local $aListButton = StringSplit($sButtonList, '|')
    If @error Then Return
    Local $fUnState, $i
    If $fState Then
        $fState   = $GUI_ENABLE
        $fUnState = $GUI_DISABLE
    Else
        $fState   = $GUI_DISABLE
        $fUnState = $GUI_ENABLE
    EndIf
    For $i=1 To $aListButton[0]
        If BitAND(GUICtrlGetState($aListButton[$i]), $fUnState) Then GUICtrlSetState($aListButton[$i], $fState)
    Next
EndFunc
Да, думаю, не плохо сначала проверять состояние кнопки, Enable или Disable, что бы лишний раз не "моргать" кнопкой:
Код: Выделить весь код
If BitAND(GUICtrlGetState($okbutton), $GUI_ENABLE) Then GUICtrlSetState($okbutton, $GUI_DISABLE)

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:17, 01-07-2009 | #5