OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 19 Октябрь, 2019 16:21

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 13 Март, 2014 09:58 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
Пётр Кушнир писал(а):
По результатам исследования в сырцах я выяснил такой путь прохождения пользовательских сигналов управления.

На примере нажатия клавиши:
Нажатие → WinAPI → оконная процедура HostWindows.DocHandler (или DlgHandler, в зависимости от типа окна) → HostWindows.Window.KeyDown → супервызов Windows.Window.KeyDown → Windows.Window.ForwardCtrlMsg → Views.HandleCtrlMsg (это процедурная переменная, установленная из Controllers) → Controllers.HandleCtrlMsgs.


Петр, а дальше не разбирались? Все таки хотелось бы отвязаться от раскладки клавиатуры, для горячих клавиш.

Попробовал Views.HandleCtrlMsg из своего модуля установить, но там ассерт на NIL (т.е. похоже можно устанавливить, только если еще не установлена)

(модератор) выделено из темы viewtopic.php?t=4376 по указанию автора темы


Последний раз редактировалось Евгений Темиргалеев Четверг, 13 Март, 2014 15:39, всего редактировалось 1 раз.
пометка о разделении


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсветка парных скобок
СообщениеДобавлено: Четверг, 13 Март, 2014 10:11 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2602
Откуда: Россия, Ярославль
Горячие клавиши меню? Они обрабатываются в HostMenus, емнип, и выше хоста не поднимаются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсветка парных скобок
СообщениеДобавлено: Четверг, 13 Март, 2014 10:15 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
Я плохо понял, что это значит, не подскажите ли, чего по этому поводу можно исправить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсветка парных скобок
СообщениеДобавлено: Четверг, 13 Март, 2014 10:35 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
я смотрю, у меня, зеленый цвет в процедуре HostMenus.TranslateAccelerators.

Это в ней надо править? А компонентно никак? (обертку вьюшку пока не осилю, поэтому не предлагать)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсветка парных скобок
СообщениеДобавлено: Четверг, 13 Март, 2014 11:11 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
Смутно конечно понимаю, о чем спрошу, но может быть можно выложить соответствие клавиш раскладок в файл, и использовать из него (вроде для этого есть какая-то возможность mapstring с файлом String, если я правильно понял). Ну или вроде у клавиш есть коды, которые не зависят от раскладки, и следовательно можно просто переделать на их использование.

В общем как будет правильнее?

В планах по развитию эта проблема обозначена? Мог бы попробовать разобраться с данной процедурой TranslateAcselerat , если еще никто не ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсветка парных скобок
СообщениеДобавлено: Четверг, 13 Март, 2014 12:40 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
Поэксперементировал (сделал вывод в лог), или чего не так делал, или данная процедура отвечает за горячие клавиши которые прописаны в меню (они отрабатывают в любых раскладках).

Но она не отрабатывает при нажатии Alt для выбора пункта меню по соответствующим буквам (это как раз и надо исправить).

Или я чего не так делал. В общем дальше не знаю, где еще посмотреть. Решил пока повесить на все что требуется горячие клавиши, как ближе с блекбоксом познакомлюсь, тогда уже дальше разбираться буду. Ну или если кто подсказку даст, куда копать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсветка парных скобок
СообщениеДобавлено: Четверг, 13 Март, 2014 12:57 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2602
Откуда: Россия, Ярославль
adva писал(а):
Но она не отрабатывает при нажатии Alt для выбора пункта меню по соответствующим буквам (это как раз и надо исправить).
А-а, понял о чем вы.
Тут я не могу сказать ничего определенного, данной фичей не пользуюсь практически, единственное что я знаю - эти буквы задаются в меню знаком &. То есть, можно проследить путь от парсинга меню с такой буквой.
Я вижу из похожего только HostMenus.GetHotkey.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсветка парных скобок
СообщениеДобавлено: Четверг, 13 Март, 2014 13:41 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2316
Откуда: Россия, Томск
adva писал(а):
Но она не отрабатывает при нажатии Alt для выбора пункта меню по соответствующим буквам (это как раз и надо исправить).
Этот функционал обрабатывается главным меню окна BlackBox. В качестве главного меню используется компонент ОС, поэтому обработка происходит там.

http://stackoverflow.com/questions/1162 ... pplication
http://msdn.microsoft.com/en-us/library ... 77(v=vs.85).aspx


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсветка парных скобок
СообщениеДобавлено: Четверг, 13 Март, 2014 14:17 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
Ясно, спасибо, тогда пока точно не осилю. Ладно, остаются горячие клавиши, буду пока их использовать по максимуму.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 13 Март, 2014 16:47 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
Я правильно понял, с помощью установки переменной HostMenus.hookApplWinHandler можно повесить свой обработчик клавиш?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Март, 2014 06:36 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
А подскажите пожалуста, есть ли возможность в тексте установить закладку ? Или ее аналог какой-нибудь ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Март, 2014 06:41 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2316
Откуда: Россия, Томск
adva писал(а):
А подскажите пожалуста, есть ли возможность в тексте установить закладку ? Или ее аналог какой-нибудь ?
Поищите CpcBookmarks на ZinnAmTurm.eu


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Март, 2014 06:47 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
Александр Ильин писал(а):
Поищите CpcBookmarks на ZinnAmTurm.eu


Спасибо, если есть возможность, в личке ответьте, пожалуйста


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Март, 2014 12:33 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
Выяснил, что у многих других программ, поведение с меню точно такое же, поэтому пожалуй решить вопрос по простому не получится. После того, как нажимается ALT , дальнейшеие события отрабатываются windows в процедуре DefWindowProc, о чем ранее сказал Ильин А., но я его не понял сразу. Дальнейший разбор прекратил.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Март, 2014 12:43 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
Единственное, была пару идей: но они вроде не позволяли решить вопрос не внеся изменения в код хоста, поэтому думать не стал

1) при нажатии системной клавиши "переключать раскладку" (нажатие отлавливается)
2) при установке менюшных клавиш вызова с "&", добавлять дополнительно букву из другой раскладки (но это так идея, потому как здесь до конца не понял, как происходит установка)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Март, 2014 13:15 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2316
Откуда: Россия, Томск
adva писал(а):
1) при нажатии системной клавиши "переключать раскладку" (нажатие отлавливается)
Это умеет делать бесплатная программа PuntoSwitcher от Yandex:
Вложение:
PuntoSettings.png
PuntoSettings.png [ 27.5 КБ | Просмотров: 5112 ]

adva писал(а):
2) при установке менюшных клавиш вызова с "&", добавлять дополнительно букву из другой раскладки (но это так идея, потому как здесь до конца не понял, как происходит установка)
Это не будет работать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB