Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] GUICtrlSetState

Ответить
Настройки темы
[решено] GUICtrlSetState

Аватара для FlatX007

Ветеран


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

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


Можно это прописать отдной строкой ???
Код: Выделить весь код
GUICtrlSetState($Button1, $GUI_DISABLE)
GUICtrlSetState($Button2, $GUI_DISABLE)
GUICtrlSetState($Button3, $GUI_DISABLE)

Отправлено: 08:51, 21-01-2009

 

Аватара для Maza Faka

Ветеран


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

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


FlatX007
Если элементов много, то можно создать массив с этими элементами:
Код: Выделить весь код
#include <GuiConstantsEx.au3>

Global $aButton[12]
Dim $iLeft = 11, $iTop = 11

$hGUI = GUICreate("Test GUI", 269, 200)

For $i = 0 To UBound($aButton) - 1
    $aButton[$i] = GUICtrlCreateButton("Button " & $i + 1, $iLeft, $iTop, 75, 23)
    $iLeft += 85

    If $iLeft >= 200 Then
        $iLeft = 11
        $iTop += 30
    EndIf
Next

$cButton_EnableDisable = GUICtrlCreateButton("Disable", 11, 166, 75, 23)

GUISetState()

While 1
    $msg = GUIGetMsg()
    Switch $msg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cButton_EnableDisable
            If GUICtrlRead($cButton_EnableDisable) = "Disable" Then
                _ControlEnableDisableEx($aButton, 0)
                GUICtrlSetData($cButton_EnableDisable, "Enable")
            Else
                _ControlEnableDisableEx($aButton, 1)
                GUICtrlSetData($cButton_EnableDisable, "Disable")
            EndIf
    EndSwitch
WEnd

Func _ControlEnableDisableEx($aControls, $iState = 1)
    Local $nState = $GUI_ENABLE
    If $iState = 0 Then $nState = $GUI_DISABLE

    For $i = 0 To UBound($aControls) - 1
        GUICtrlSetState($aControls[$i], $nState)
    Next
EndFunc   ;==>_ControlEnableDisable

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение

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

Отправлено: 10:04, 21-01-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для FlatX007

Ветеран


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

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


Элементов допустим 8 НО !
если я пропишу моим способом то строк будет 8 а твоим способом ОГОГО скока кода, и в том, что ты написал ещё разобраться нужно.

А как попроще можно ???

И у меня тут ещё проблема нарисовалась:
Допусим есть у меня граффическое окно с элементом GUICtrlCreateInput для ввода туда текста, допустим ввёл я туда тескст КАК ??? сделать чтобы это поле очистилось после нажатия на некую кнопку в этом же граффическом окне.

Спасиба.

Отправлено: 11:17, 21-01-2009 | #3


Пользователь


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

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


FlatX007, в код кнопки допиши GUICtrlSetData($controlid, "")

-------
Информация для размышления
Такому в вузах не научат

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

Отправлено: 11:54, 21-01-2009 | #4


Аватара для FlatX007

Ветеран


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

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


Чёрд это я стормазил ... над очевидным решением Спасибо работает!

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


Аватара для Maza Faka

Ветеран


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

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


Цитата FlatX007:
если я пропишу моим способом то строк будет 8 а твоим способом ОГОГО скока кода »
А мне лень писать GUICtrlSetState($Button1, $GUI_DISABLE) восемь раз да и некрасиво будет выглядеть.
Всё зависит от поставленной задачи: если тебе требуется выполнить вышеуказанные действия единожды, то может быть твой способ будет предпочтителен.

Цитата FlatX007:
А как попроще можно ??? »
А кто сказал, что будет легко? (С)

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 12:15, 21-01-2009 | #6


Аватара для Creat0R

Must AutoIt


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

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


Цитата FlatX007:
Можно это прописать отдной строкой ? »
Одной нет, но если все переменные такого-же типа, то можно в цикле:

Код: Выделить весь код
For $i = 1 To 8
    GUICtrlSetState(Eval("Button" & $i), $GUI_DISABLE)
Next

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 14:21, 21-01-2009 | #7


Аватара для FlatX007

Ветеран


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

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


Creat0R я примерно так себе это представлял .... только незнал как правильно решить - спасибо ты МОЗГ!!

Отправлено: 17:57, 21-01-2009 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] GUICtrlSetState

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход