Недавние сообщения

Страницы: 1 2 [3] 4 5 ... 10
21
GUI - Графический интерфейс пользователя / Re: Режим OnEvent и приоритетность
« Последний ответ от InnI Отправлен Вчера в 03:17:28 »
Alofa
OffTopic
(нажмите для показа/скрытия)
22
GUI - Графический интерфейс пользователя / Re: Режим OnEvent и приоритетность
« Последний ответ от Alofa Отправлен Вчера в 01:52:20 »
OffTopicVadimKHL
(нажмите для показа/скрытия)
23
GUI - Графический интерфейс пользователя / Re: Режим OnEvent и приоритетность
« Последний ответ от VadimKHL Отправлен Вчера в 01:25:23 »
OffTopicVadimKHL
Цитировать
о котором не знали
Знали, только применяли "с другой стороны": получали, а не отправляли :)
Пустой последний параметр отправляет кнопке 0, что для неё значит $BN_CLICKED (меня нажали), о чём она и сообщала своему окну. Всё просто.

Спасибо.  $BN_CLICKED


Добавлено: Вчера в 01:31:15
У меня прям слов нет, я сечас напишу поэзию


Добавлено: Вчера в 01:31:49
но поэзии нет нет


Добавлено: Вчера в 01:33:37
Можно к новеньким как то нормально относиться?
24
GUI - Графический интерфейс пользователя / Re: Количество дисков SSD/HDD
« Последний ответ от Scampy Отправлен Вчера в 01:13:53 »
Немного сложновато, но я делаю всегда именно так
А если в компе внутренний картридер? Он ведь в Вашем скрипте тоже определяется как HDD диск.

Вообщем в итоге у меня получилось как то так...
Код: AutoIt [Выделить]
#include <WinAPIFiles.au3>

Local $aData, $aDrive = DriveGetDrive('FIXED')
Local $aList[10]

For $i = 0 To UBound($aDrive) - 1
    $aList[$i] = ''
Next
If IsArray($aDrive) Then
    For $i = 1 To $aDrive[0]
        $aData = _WinAPI_GetDriveNumber($aDrive[$i])
        If IsArray($aData) Then
            $aList[$aData[1]] &= StringUpper($aDrive[$i]) & ' '
        EndIf
    Next
EndIf
For $i = 0 To UBound($aDrive) - 1
   If $aList[$i] Then
      $ssd = DriveGetType($i, $DT_SSDSTATUS)
      If $ssd = "" Then $ssd = "HDD"
      ConsoleWrite("Диск " & $i & @TAB & $ssd & @CRLF)
    EndIf
 Next
 

25
GUI - Графический интерфейс пользователя / Re: Режим OnEvent и приоритетность
« Последний ответ от Alofa Отправлен Вчера в 01:13:25 »
OffTopicInnI
(нажмите для показа/скрытия)

VadimKHL
(нажмите для показа/скрытия)
26
GUI - Графический интерфейс пользователя / Re: Режим OnEvent и приоритетность
« Последний ответ от InnI Отправлен Вчера в 01:07:53 »
OffTopicVadimKHL
Цитировать
о котором не знали
Знали, только применяли "с другой стороны": получали, а не отправляли :)
Пустой последний параметр отправляет кнопке 0, что для неё значит $BN_CLICKED (меня нажали), о чём она и сообщала своему окну. Всё просто.
27
Дни рождения / С днём рождения yukuru, mrvolk!
« Последний ответ от Представитель Сообщества Отправлен Вчера в 01:00:07 »
От имени всего Русского сообщества AutoIt поздравляем Вас yukuru, mrvolk с днём рождения!



Цитировать
Пусть все мечты исполнятся,
Пусть все желанья сбудутся,
Пусть радости запомнятся,
А горести забудутся.

Здоровье будет крепкое,
В делах всегда согласие,
Любовь навеки верная —
Без ссор и разногласия.

Зарплата только вовремя,
Стабильная, высокая.
Работа будет лёгкая
И не совсем далёкая.

Пусть жизнь Вам дарит самые
Прекрасные мгновения.
Желаем только радости
И счастья, с днем рождения!
28
GUI - Графический интерфейс пользователя / Re: Режим OnEvent и приоритетность
« Последний ответ от VadimKHL Отправлен Вчера в 00:14:59 »
VadimKHL
Цитировать
Как тогда различать "ПУСТЫШЕК"?
Как и любых других элементов - по идентификатору.

Цитировать
или имеет место жить?
Для кнопки допустимо, т.к. она не меняет своё состояние, в отличие, например, от CheckBox.

Большое спасибо за помощь. Без Ваших наводок я думаю не справился.
Но зато я своей тупостью/упортостью нашел новое использование ControlCommand, о котором не знали даже "ГУРУ".
(сам себя не похвалишь, ...)

У меня мозг заточен под 8 бит, ассемблер, для МК PIC, и все прерывания должны быть под моим контролем :)


Добавлено: Вчера в 00:46:17
... Мда... Alofa, амбициозность неистребима...
Причем тут амбиции, это еще один вариант.
Вы спросили совета - вам его их дали. Самый главный из них мне кажется этот:
... в этом режиме функция AdlibRegister не может прервать функцию-обработчик события. А в режиме MessageLoop всё наоборот.
Вы же уперлись в этот OnEvent и пытаетесь подойти к решению проблемы с задней стороны.

P.s: К стати, там подправил.

Подправили. Не работает. Если нажать кнопку когда выключен OnEvent клик пользователя остается не обработанным.
Плохо подправили :)

Почему я уперся в Event?
Да потому что кнопок сейчас 15, а завтра захочу добавить еще 10. Потом еще 10.
Да и еще привык работать с прерываниями, только конечно на микроконтроллерах. Я мыслю логикой МК, и зная, а точнее делаю так, что бы он соблюдал свои протоколы передачи данных (время, задержки, контрольные суммы и т.д.), успевая делать остальные свои работы кроме переферии.
Вроде пока получается..., с Вашей помощью, форумчани.
29
GUI - Графический интерфейс пользователя / Re: Режим OnEvent и приоритетность
« Последний ответ от InnI Отправлен Январь 20, 2017, 23:54:05 »
VadimKHL
Цитировать
Как тогда различать "ПУСТЫШЕК"?
Как и любых других элементов - по идентификатору.

Цитировать
или имеет место жить?
Для кнопки допустимо, т.к. она не меняет своё состояние, в отличие, например, от CheckBox.
30
GUI - Графический интерфейс пользователя / Re: Режим OnEvent и приоритетность
« Последний ответ от VadimKHL Отправлен Январь 20, 2017, 23:43:00 »
Alofa
Я тоже умею читать справку ;) и знаю, что делает WM_COMMAND. Меня смутило сообщение WM_GETTEXT, которое отлавливает SpyXX. Но, похоже, данное сообщение отправляет сам AutoIt, когда работаем с элементами его же окна. Потому что, если отправить WM_COMMAND "снаружи" (из другого приложения), то никакие WM-сообщения элементу не поступают.

VadimKHL
Цитировать
что нужно вписать в последнее поле функции ControlCommand, которое CommandID
Ничего не нужно. В этом сообщении передаётся дескриптор элемента и этого достаточно.

Цитировать
хочу сделать так, что бы даже кнопку скрытую добавлять не нужно было
Режим OnEvent рассчитан на элементы GUI, поэтому всё равно его (элемент) нужно добавлять. Но можно добавить "пустой" элемент - Dummy
Код: AutoIt [Выделить]
...
;$BTHIDE = GUICtrlCreateButton("TMR4", 260, 145, 100, 25)
$BTHIDE = GUICtrlCreateDummy()
GUICtrlSetOnEvent(-1, "_TMR4")
;GUICtrlSetState($BTHIDE, $GUI_HIDE)
...
      ;ControlCommand($WINGUI, "", "TMR4", "SendCommandID", "")
      GUICtrlSendToDummy($BTHIDE)
...


Действительно работает. Интересно, почему такой вариант в начале темы не предложили :) Я бы две недели не рвал волосы на голове.
Но вопрос, если надо событий с разными временами, допустим одно событие каждые 10 секунд, другое 100 мс.
Как тогда различать "ПУСТЫШЕК"?

И очень интересно, мой найденный вариант с ControlCommand, это просто баг и случайность или имеет место жить?
Страницы: 1 2 [3] 4 5 ... 10