![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Получить значение Radio |
|
[решено] Получить значение Radio
|
Новый участник Сообщения: 12 |
Всем доброго здоровья.
Есть 2 формы с Radio. Первый вариант создавался раньше, с фиксированным набором Radio, и работает с требуемым результатом. Работает
#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $iLeft = @DesktopWidth/2-115 $iTop = 10 $Window = GUICreate("Pass", 230, 174,$iLeft, $iTop) $B_Show = GUICtrlCreateButton("Показать", 152, 144, 73, 17) GUICtrlSetState(-1, $GUI_DISABLE) $Group1 = GUICtrlCreateGroup("", 5, 28,220,90) $iRadio1 = GUICtrlCreateRadio("Аа", 24, 40, 73, 17) $iRadio2 = GUICtrlCreateRadio("Бб", 24, 64, 73, 17) $iRadio3 = GUICtrlCreateRadio("Вв", 24, 88, 73, 17) $iRadio4 = GUICtrlCreateRadio("Гг", 120, 40, 73, 17) $iRadio5 = GUICtrlCreateRadio("Дд", 120, 64, 73, 17) GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE; $nCancel Exit Case $iRadio1 To $iRadio5 $vaar =GUICtrlRead($nMsg,1) GUICtrlSetState($B_Show,$GUI_ENABLE) MsgBox(0,'',$vaar) EndSwitch WEnd Но со временем немного поменялись условия и набор Radio необходимо создавать динамически - Периодически необходимо разное колличество этих Button-ов. Во втором варианте это реализовано Не работает
#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $sPath_ini = @HomeDrive & "\Example.ini" $iLeft = @DesktopWidth/2-115 $iTop = 10 $iLeftR =10 $iTopR = 35 $sRead = IniRead($sPath_ini, "Section", "Key", "NotFound") $iRadio = StringSplit($sRead, ",") $Window = GUICreate("Pass", 230, 174,$iLeft, $iTop) $B_Show = GUICtrlCreateButton("Показать", 152, 144, 73, 17) GUICtrlSetState(-1, $GUI_DISABLE) $Group1 = GUICtrlCreateGroup("", 5, 28,220,90) For $i = 1 To $iRadio[0] $iItem = GUICtrlCreateRadio($iRadio[$i], $iLeftR, $iTopR) $iTopR += 20 If $iTopR > 100 Then $iTopR = 35 $iLeftR += 75 EndIf Next GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE; $nCancel Exit Case $iItem $vaar =GUICtrlRead($nMsg,1) GUICtrlSetState($B_Show,$GUI_ENABLE) MsgBox(0,'',$vaar) EndSwitch WEnd Вот только ответ получаю от последнего созданного, а надо бы от каждого, как в первом. Есть ли возможность всё это дело поправить? |
|
Отправлено: 17:00, 29-04-2016 |
Новый участник Сообщения: 38
|
Профиль | Отправить PM | Цитировать через массивы:
Скрытый текст
#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Array.au3> Local $sPath_ini = @HomeDrive & "\Example.ini" Local $iLeft = @DesktopWidth/2-115 Local $iTop = 10 Local $iLeftR =10 Local $iTopR = 35 Local $sRead = IniRead($sPath_ini, "Section", "Key", "NotFound") Local $iRadio = StringSplit($sRead, ",") Local $iRadio = [3,"1 radio","2 radio","3 radio"] Local $Window = GUICreate("Pass", 230, 174,$iLeft, $iTop) Local $B_Show = GUICtrlCreateButton("Показать", 152, 144, 73, 17) GUICtrlSetState(-1, $GUI_DISABLE) Local $Group1 = GUICtrlCreateGroup("", 5, 28,220,90) Local $count = $iRadio[0] Local $aItem = [] Local $iItem For $i = 1 To $count $iItem = GUICtrlCreateRadio($iRadio[$i], $iLeftR, $iTopR) _ArrayAdd($aItem,$iItem) $iTopR += 20 If $iTopR > 100 Then $iTopR = 35 $iLeftR += 75 EndIf Next GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE; $nCancel Exit Case $aItem[1] to $aItem[$count] $vaar =GUICtrlRead($nMsg,1) GUICtrlSetState($B_Show,$GUI_ENABLE) MsgBox(0,'',$vaar) EndSwitch WEnd |
Отправлено: 17:41, 29-04-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Прошу прощения за долгий ответ. Праздники... Цитата Mike909:
через массивы: » всё чудесно работает, но наборы Radio при этом приходится создавать вручную. Сразу я конечно то и не предупредил, моя вина, что Radio создаются автоматом из ini.-файла - сколько там значений столько и Radio. Сейчас буду пробовать прикрутить свойства массива к скрипту. Может у кого проще и быстрее получится буду благодарен т.к. не так силён в AutoIt. ini.файлик во вложении |
Отправлено: 08:39, 04-05-2016 | #3 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать "Допилил". Возможно не очень красиво, (пришлось ini-шку подправить), но меня устраивает:
#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Array.au3> Local $sPath_ini = @HomeDrive & "\Example.ini" Local $iLeft = @DesktopWidth/2-115 Local $iTop = 10 Local $iLeftR =10 Local $iTopR = 35 Local $sRead = IniRead($sPath_ini, "Section", "Key", "NotFound") Local $iRadio_R = StringSplit($sRead, ",") Local $Window = GUICreate("Pass", 230, 174,$iLeft, $iTop) Local $B_Show = GUICtrlCreateButton("Показать", 152, 144, 73, 17) GUICtrlSetState(-1, $GUI_DISABLE) $msg = '' For $i = 1 To $iRadio_R[0] $msg &= $iRadio_R[$i]&',' Next $result = StringTrimLeft($msg,1) $result = StringTrimRight($result,1) Local $iRadio = [$iRadio_R[0],$result] $vvv=StringReplace($result,"'",'') $vvv=StringSplit($vvv,",") Local $Group1 = GUICtrlCreateGroup("", 5, 28,220,90) Local $count =$vvv [0] Local $aItem = [] Local $iItem For $i = 1 To $count $iItem = GUICtrlCreateRadio($vvv[$i], $iLeftR, $iTopR) _ArrayAdd($aItem,$iItem) $iTopR += 20 If $iTopR > 100 Then $iTopR = 35 $iLeftR += 75 EndIf Next GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE; $nCancel Exit Case $aItem[1] to $aItem[$count] $vaar =GUICtrlRead($nMsg,1) GUICtrlSetState($B_Show,$GUI_ENABLE) MsgBox(0,'',$vaar) EndSwitch WEnd ![]() ![]() Тему закрываю. Может кому пригодится ini-Поправленный: |
Отправлено: 12:33, 04-05-2016 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Как получить значение параметра из реестра, добавить значение в текстовый файл etc.? | Dark Ange1 | Скриптовые языки администрирования Windows | 28 | 22-06-2022 14:37 | |
CMD/BAT - Как получить значение искомой подстроки в строке? | Loki3D | Скриптовые языки администрирования Windows | 11 | 24-02-2018 08:37 | |
[решено] получить значение из _GUICtrlComboBoxEx_Create | VNRed_OK | AutoIt | 4 | 13-05-2015 08:21 | |
[решено] AJAX. получить значение в подгружаемом элементе | Artem-Samsung | Вебмастеру | 1 | 11-09-2010 12:43 | |
Как получить значение CPU и VM. Желательно на С++ | Lenycik | Программирование и базы данных | 3 | 16-05-2007 12:07 |
|