OberonCore https://forum.oberoncore.ru/ |
|
Проблема вкладок https://forum.oberoncore.ru/viewtopic.php?f=24&t=3873 |
Страница 1 из 1 |
Автор: | Иван Кузьмицкий [ Воскресенье, 04 Март, 2012 21:38 ] | |||
Заголовок сообщения: | Проблема вкладок | |||
Ситуация следующая. Бросаем на форму контрол TabViews. На первой вкладке Tab1 (см. сним-эк, снимок экрана) размещаем дроп-лист и кнопку. Теперь, внимание! Если переключиться на вкладку Tab2, а затем вернуться на вкладку Tab1, то дроп-лист становится как бы "заморожен" и не реагирует на клики мышкой. А вот если нажать кнопку, то он после этого размораживается и нормально работает. Явный баг. Протестировано на официальном дистрибутиве ББ (http://oberon.ch/zip/SetupBlackBox16-rc6.exe) Прикладываю исходники. В чём может быть причина? Сами пока что копаем, если что нароем - сообщим. P.S. Поймано новое поведение. Если дроп-лист заполнить, то замораживается он всё равно, но после клика мышкой реагирует на клавиатуру и его можно раскрыть, нажав стрелку "вниз". P.P.S. Расследование постепенно сходится в точку, озвученную однажды в viewtopic.php?p=61228#p61228
|
Автор: | Иван Кузьмицкий [ Понедельник, 05 Март, 2012 18:02 ] |
Заголовок сообщения: | Re: Проблема вкладок |
Резюме такое. Причина заморозки дроп-листа при переключении вкладок лежит где-то вне ББ. Докопаться до истины не получилось. Скорее всего, в HostCFrames не учитываются какие-то нюансы поведения виндового контрола. Винапи-сообщения посылаются обычным образом, да только сам дроп-лист со сбитой фокусировкой на них не реагирует. Решение такое. В уведомитель TabViews ставим сброс фокуса. Это помогает. Код: PROCEDURE DropFocus; VAR c: FormControllers.Controller; v: Views.View; r: FormModels.Reader; BEGIN c := FormControllers.Focus(); IF c # NIL THEN c.SetFocus(NIL) END END DropFocus; PROCEDURE Notifier* (tv: StdTabViews.View; from, to: INTEGER); BEGIN DropFocus END Notifier; P.S. Для более общего случая можно использовать Containers.Controller, конечно же. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |