|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] GUIOnEventMode vs дочерняя форма vs Combo (обработка цикла) |
|
|
[решено] GUIOnEventMode vs дочерняя форма vs Combo (обработка цикла)
|
Ветеран Сообщения: 903 |
Профиль | Отправить PM | Цитировать
Есть форма с вкладкой, на которой выводится инфо о текущих адаптерах системы и статистика сессии по ним. Встала проблема с совмещением режима EventMode и собственно, обработкой событий Combo. Ситуация осложнена наличием дочернего окна с настройками утилиты (планируется):
Проблема - как только подключаю цикл в функции _Combo() (While 1 .... Wend), перестает отображаться окно формы на экране |
|
Отправлено: 15:11, 23-08-2010 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Пример не рабочий ... нет кучи инклюдов, мне нужно найти их самостоятельно тратить время?
В функции _Combo() присутствует без конечный цикл While 1 Функция DllClose($Dll) не на месте Не знаю особо не проверял, не вникал в не рабочий пример! :-* AdlibRegister('_Combo') ;~ .... ;~ .... ;~ .... Func _Combo() If ($Index) And (($Index <> $pIndex) Or (TimerDiff($Timer) > 1000)) Then $Data = _WinAPI_GetIfEntry($Adapter[$Index][0], $Dll) If Not @error Then GUICtrlSetData($Label41, _Str($Data[14]) & ' bytes') GUICtrlSetData($Label42, _Str($Data[8 ]) & ' bytes') GUICtrlSetData($Label41 + 1, StringFormat('%.2f', $Data[14] / 1024 / 1024) & ' MB') GUICtrlSetData($Label42 + 1, StringFormat('%.2f', $Data[8 ] / 1024 / 1024) & ' MB') Else GUICtrlSetData($Label41, '') GUICtrlSetData($Label42, '') EndIf $Timer = TimerInit() $pIndex = $Index EndIf $Index = _GUICtrlComboBox_GetCurSel($Combo) + 1 EndFunc |
Отправлено: 19:27, 23-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать FlatX007, такой вариант дает вывод инфо при загрузке, но при переключении на другой адаптер информация не обновляется. Насколько я понимаю, для обновления информации при переключении адаптеров, должен быть цикл.
Пример сейчас откорректирую и выложу без лишних инклюдов (просто вырезал наспех, извините) Вот: PS шапку тоже поправил |
------- Отправлено: 19:51, 23-08-2010 | #3 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать А зачем нужен режим EventMode ? обычным никак что ли ?
|
Отправлено: 20:25, 23-08-2010 | #4 |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать FlatX007, Creat0R посоветовал (http://forum.oszone.net/post-1478430-9.html). Мне так показалось более изящнее, чтоли. Вроде все работало, так вот взялся переделать и нарвался на косяк...
PS просто на форме много вкладок и все с обработкой инфы + по кнопкам. Если все кнопки "повесить" на MessageLoop, боюсь будут проблемы. |
|
------- Отправлено: 20:34, 23-08-2010 | #5 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Я не работал с этим режимом, мне так и не удалось считать "активный" таб в режиме EventMode.
Цитата saavaage:
Пример с табами: $Form1 = GUICreate("Test", 250, 106, 192, 124) $Tab1 = GUICtrlCreateTab(0, 0, 249, 105) $TabSheet1 = GUICtrlCreateTabItem("Вкладка одЫн") $TabSheet2 = GUICtrlCreateTabItem("Вкладка два") GUICtrlCreateTabItem("") GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case -3 Exit Case $Tab1 ConsoleWrite("Активный таб - " & GUICtrlRead($Tab1) & @CRLF) EndSwitch WEnd |
|
Отправлено: 20:51, 23-08-2010 | #6 |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать FlatX007, у меня раньше и был этот режим. Взялся переделывать на перспективу. Практически все уже адаптировал и вот...
Подождем, что скажут остальные участники... Пока могу только выложить скрипт, на основе которого я и извращался.. |
------- Отправлено: 21:07, 23-08-2010 | #7 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата saavaage:
Какова цель этого цикла? если вместо главного, то просто поставь вызов этой функций вместо основново цикла: |
|
------- Отправлено: 22:18, 23-08-2010 | #8 |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать Creat0R, цель - отображать текущее состояние sent/receive адаптеров. При выборе любого из списка (у меня их 2) показывается в режиме реального времени их работа-трафик.
|
------- Отправлено: 22:31, 23-08-2010 | #9 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата saavaage:
|
|
------- Отправлено: 00:33, 24-08-2010 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как получить значение текущего индекса Combo и кол-во элементов Combo | malev | AutoIt | 4 | 22-06-2009 16:27 | |
VBA - выход из цикла | иоанн | Программирование и базы данных | 2 | 26-05-2009 22:24 | |
Проблема с ASUS Combo | Evjuk | Оптические приводы | 3 | 22-03-2008 20:02 | |
выбор из цикла | slaine | Вебмастеру | 10 | 25-08-2005 12:36 | |
Проблема с CDRW/DVD combo | Elka | Оптические приводы | 17 | 30-05-2004 22:46 |
|