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

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

Ответить
Настройки темы
[решено] Определить состояние активной радио-кнопки

Новый участник


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

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


Привет.
Как мне определить, какая радио-кнопка установленна?
Дело в том, что они создаются динамически. У них могут быть разные и неизвестные имена.
Даже неизвестно их количество. Как мне это сделать?
Может быть, как-то их в массив или коллекцию загонять?


Код: Выделить весь код
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
$hGUI1 = GUICreate("Window", 300, 300, -1, -1)
$yyy = 10
$nnn1 = 111
For $i = 1 To 3
$yyy = $yyy + 30
$nnn = $nnn1 * $i
GUICtrlCreateRadio($nnn, 60, $yyy, 100, 22)
Next
Local $but = GUICtrlCreateButton('Получить', 110, 160 , 80, 22)
GUISetState()
While 1
    $hMsg = GUIGetMsg(1)
    Select
        Case $hMsg[0] = -3
            Exit
        Case $hMsg[0] = $but
            MsgBox(0, '', GUICtrlRead("Идентификатор установленной радио-кнопки"))
    EndSelect
WEnd

Отправлено: 10:53, 03-07-2017

 

Ветеран


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

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


Цитата Атос:
Может быть, как-то их в массив или коллекцию загонять? »
Может быть. Выбор варианта зависит от того, где, как создаются, каким образом используются. А может стоит вообще перейти к модели с GUIOnEventMode = 1.

Начните использовать AutoItSetOption("MustDeclareVars", 1), дабы не было таких нелепых ошибок, как в данном примере. И используйте именованные константы вместо чисел.

Отправлено: 11:43, 03-07-2017 | #2



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

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


Новый участник


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

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


Iska, а как такое сделать?
Как мне узнать на какой радио-кнопке стоит галочка?

Код: Выделить весь код
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
$hGUI1 = GUICreate("Window", 300, 300, -1, -1)
$yyy = 10
$nnn1 = 111
For $i = 1 To 3
$yyy = $yyy + 30
$nnn = $nnn1 * $i
GUICtrlCreateRadio($nnn, 60, $yyy, 100, 22)
Next
Local $but = GUICtrlCreateButton('Получить', 110, 160 , 80, 22)
GUISetState()
While 1
    $hMsg = GUIGetMsg(1)
    Select
        Case $hMsg[0] = -3
            Exit
        Case $hMsg[0] = $but
Opt("GUIOnEventMode", 1)
            MsgBox(0, '', GUICtrlRead("Установленная радио-кнопка"))
Opt("GUIOnEventMode", 0)
    EndSelect
WEnd

Отправлено: 12:31, 03-07-2017 | #3


Ветеран


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

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


Атос, бездумное добавление куда попало Opt("GUIOnEventMode", 1) не решит Ваших проблем.

Код: Выделить весь код
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

AutoItSetOption("MustDeclareVars", 1)

Local $hGUI1 = GUICreate("Window", 300, 300, -1, -1)

Local $iTop = 10
Local $sRadioButtonText = "RadioButton"
Local $aRadioButtons[3]

Local $hMsg


For $i = 1 To 3
	$iTop += 30

	$aRadioButtons[$i - 1] = GUICtrlCreateRadio($sRadioButtonText & String($i), 60, $iTop, 100, 22)
Next

Local $idButton = GUICtrlCreateButton('Получить', 110, 160 , 80, 22)

GUISetState()

While True
    $hMsg = GUIGetMsg(1)

    Select
		Case $hMsg[0] = $GUI_EVENT_CLOSE
            Exit
        Case $hMsg[0] = $idButton
			For $i = 1 To 3
				If GUICtrlRead($aRadioButtons[$i - 1]) = $GUI_CHECKED Then
					MsgBox(0, "Checked RadioButton ID =" & $aRadioButtons[$i - 1], GUICtrlRead($aRadioButtons[$i - 1], $GUI_READ_EXTENDED ))
				EndIf
			Next
    EndSelect
WEnd

GUIDelete()
Про:
Цитата Атос:
Даже неизвестно их количество. »
вопросы остаются теми же:
Цитата Iska:
…зависит от того, где, как создаются, каким образом используются. »
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:47, 03-07-2017 | #4


Новый участник


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

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


Iska, чё-то у меня выдаёт ошибку.
Переменная $GUI_READ_EXTENDED не определена.

Она необязательна. Я её удалил.
Спасибо.

Отправлено: 12:51, 03-07-2017 | #5


Ветеран


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

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


Цитата Атос:
Iska, чё-то у меня выдаёт ошибку.
Переменная $GUI_READ_EXTENDED не определена. »
Это не переменная, а глобальная константа, определённая во включаемом файле GUIConstantsEx.au3:
Код: Выделить весь код
; GUICtrlRead Constants
Global Const $GUI_READ_DEFAULT = 0 ; (Default) Returns a value with state or data of a control.
Global Const $GUI_READ_EXTENDED = 1 ; Returns extended information of a control (see Remarks).
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:27, 03-07-2017 | #6


Новый участник


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

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


Странно, в моём такой константы нету. Наверное, версия старая.

Заголовок.

Скрытый текст
; Title .........: GUIConstantsEx
; AutoIt Version : 3.3.12.0
; Language ......: English
; Description ...: Constants to be used in GUI applications.
; Author(s) .....: Jpm, Valik

Отправлено: 14:19, 03-07-2017 | #7


Ветеран


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

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


Наверное.
Код: Выделить весь код
; #INDEX# =======================================================================================================================
; Title .........: GUIConstantsEx
; AutoIt Version : 3.3.14.2
; Language ......: English
; Description ...: Constants to be used in GUI applications.
; Author(s) .....: Jpm, Valik
; Dll ...........:
; ===============================================================================================================================
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:30, 03-07-2017 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
HDD - как определить состояние жесткого диска? Remi Martin Накопители (SSD, HDD, USB Flash) 11 07-02-2012 19:35
HDD - Помогите определить состояние HDD на основании результатов тестов sasha-lav Накопители (SSD, HDD, USB Flash) 28 12-09-2011 18:28
Debian/Ubuntu - Неправильно работает Numpad: кнопки '+50,' работают как кнопки мыши Viktorr Общий по Linux 0 29-04-2009 20:40
VBA - Сохранение активной книги в exel azbest Программирование и базы данных 6 14-12-2007 23:04
Выделение активной ссылки angeldragon Вебмастеру 11 20-06-2004 18:59




 
Переход