OberonCore https://forum.oberoncore.ru/ |
|
WorkWindows - Список окон https://forum.oberoncore.ru/viewtopic.php?f=90&t=792 |
Страница 1 из 2 |
Автор: | Евгений Темиргалеев [ Вторник, 25 Декабрь, 2007 17:27 ] |
Заголовок сообщения: | WorkWindows - Список окон |
Когда при работе оказываются открыты более 9 окон, то переключаться на нужные через меню Windows становится неудобно. Написал приладу, которая показывает список окон в диалоге и позволяет переключатся на них. Вот, может кому-то тоже пригодится: Правда она пользует недокументированные возможности и SYSTEM и на 1.6 работоспособность не пробовал. Может у кого есть идеи как это сделать более элегантно (без SYSTEM и т.п)? Новый вариант (viewtopic.php?p=16357#p16357) Тоже + открытие списка когда мышка подходит к краю окна ББ (viewtopic.php?p=16585#p16585) (08.01.2011) размещено в коллекции: http://oberoncore.ru/bbcc/subs/work/windows |
Автор: | Евгений Темиргалеев [ Вторник, 25 Декабрь, 2007 17:46 ] |
Заголовок сообщения: | Re: Список окон |
Поправочка, чтобы разные окна с одинаковыми именами не дергались в списке: IF (tmin$ > t$) OR (tmin$ = t$) & (wadr[mini] > wadr[j]) THEN mini := j; tmin := t END |
Автор: | Valery Solovey [ Воскресенье, 30 Декабрь, 2007 14:33 ] |
Заголовок сообщения: | Re: Список окон |
Если забыть о дёрганьи окон в списке, то не вижу проблем с таким способом: Код: wadr: POINTER TO ARRAY OF Windows.Window;
|
Автор: | Евгений Темиргалеев [ Среда, 02 Январь, 2008 15:29 ] |
Заголовок сообщения: | Re: Список окон |
Это будут якоря для сборщика мусора |
Автор: | Valery Solovey [ Среда, 02 Январь, 2008 18:40 ] |
Заголовок сообщения: | Re: Список окон |
Ну, мне не приходилось ранее работать таким образом, чтобы задумываться об якорях. Какие тут могут быть проблемы? Кстати, есть ещё способ избавиться от SYSTEM: хранить заголовки, а не указатели на окна. Но если существует несколько одинаковых заголовков, то можно забыть об адекватной реакции при нажатии на один из них. |
Автор: | Евгений Темиргалеев [ Вторник, 08 Январь, 2008 10:51 ] |
Заголовок сообщения: | Re: Список окон |
Нечто подобное изначально и получилось. Было не удобно. В итоге сделал тупую фичу для удобности - требуемую "удобность" она даёт. |
Автор: | Евгений Темиргалеев [ Понедельник, 02 Июнь, 2008 17:22 ] |
Заголовок сообщения: | Re: Список окон |
Замечания Ивана Кузьмицкого: viewtopic.php?p=15813#p15813. Иван Кузьмицкий писал(а): Я бы предложил такое расширение окошка Е.Темиргалеева: оно появляется только тогда, когда мышой стукаешь по правому (левому, или верхнему, или нижнему) краю экрана. Выбрал нужную форму, и список окон исчез - не мешает. Вставка - закрытие списка при переходе к "выбранной форме" ![]() Код: PROCEDURE Select; ... BEGIN IF list.index # -1 THEN Fill; IF list.index # -1 THEN >>>StdCmds.CloseDialog;<<< Windows.dir.Select(Wnd(list.index), Windows.eager) END END END Select; Хотя, учитывая что имена окон в списке могут быть одинаковые и сразу нужное окно не выберется, то закрытие может оказаться антиполезным... ![]() |
Автор: | Евгений Темиргалеев [ Вторник, 17 Июнь, 2008 15:46 ] |
Заголовок сообщения: | Re: Список окон |
Поменял поведение - мне стало удобней. Работа с клавиатуры: - Ctrl+L - появляется список окон; - стрелками ходим, выбираем нужное окно; при выборе окно выскакивает наверх, видно то или не то (если заголовки одинаковые); - на нужном окне жмем Enter, диалог закрывается. Также в списке не отображаются инструментальные окна - они и так висят поверх остальных. Новый вариант во вложении в первом сообщении. |
Автор: | Info21 [ Вторник, 17 Июнь, 2008 16:43 ] |
Заголовок сообщения: | Re: Список окон |
Евгений Темиргалеев писал(а): Поменял поведение - мне стало удобней Пора пробовать... |
Автор: | Иван Горячев [ Понедельник, 23 Июнь, 2008 10:12 ] |
Заголовок сообщения: | Re: Список окон |
Пара замечаний. У кнопки "Закрыть" надо выставить флажок "Cancel button" - тогда диалог по Esc убирается. Ctrl+L - стандартное сочетание для создания ссылок (Create Link). Т.к. на "Alt" (пока) назначить действия невозможно - предлагаю "Ctrl+0". А вообще симпатично смотрится |
Автор: | Александр Ильин [ Понедельник, 23 Июнь, 2008 10:36 ] |
Заголовок сообщения: | Re: Список окон |
Иван Горячев писал(а): предлагаю "Ctrl+0" Dev - Open Module List
|
Автор: | Иван Горячев [ Понедельник, 23 Июнь, 2008 10:50 ] |
Заголовок сообщения: | Re: Список окон |
Александр Ильин писал(а): Иван Горячев писал(а): предлагаю "Ctrl+0" Dev - Open Module ListГрустно. Кстати, никто не составлял список стандартных сочетаний клавиш, задействованых в ББ? |
Автор: | Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 11:21 ] |
Заголовок сообщения: | Re: Список окон |
- Да делал я так. Только вот с двумя кнопками...потом одну менее используемую убрал ![]() ![]() - про Ctrl+L просмотрел... Иван Горячев писал(а): на "Alt" (пока) назначить Alt если и назначать, то только на F1..F12. На алфавитно-цифровые он не пойдет - у них стандартное действие по активации пунктов меню.
|
Автор: | Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 11:32 ] |
Заголовок сообщения: | Re: Список окон |
Иван Горячев писал(а): Кстати, никто не составлял список стандартных сочетаний клавиш, задействованых в ББ? Да можно сделать скрипт, который составляет этот список по меню. У меня есть модуль по работе со строками (стандартными) и меню, но до ридеров дело не дошло, концептуально он сыроват.
|
Автор: | Иван Горячев [ Понедельник, 23 Июнь, 2008 11:33 ] |
Заголовок сообщения: | Re: Список окон |
Евгений Темиргалеев писал(а): Alt если и назначать, то только на F1..F12. На алфавитно-цифровые он не пойдет - у них стандартное действие по активации пунктов меню. Если партия скажет "надо" - будет не только на Alt, но и просто на буквы действия назначать ![]() |
Автор: | Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 11:38 ] |
Заголовок сообщения: | Re: Список окон |
Партия... она может не только сказать, но и привлечь по статье "фичеписательство" ![]() |
Автор: | Иван Кузьмицкий [ Понедельник, 23 Июнь, 2008 12:08 ] |
Заголовок сообщения: | Re: Список окон |
Ещё бы заставить список окон реагировать на касание мышой края экрана. Всё равно выбор окна обычно делается мышой, поэтому тянуться к клаве для показа списка окон просто лень ![]() |
Автор: | Илья Ермаков [ Понедельник, 23 Июнь, 2008 22:25 ] |
Заголовок сообщения: | Re: Список окон |
ОТ МОДЕРАТОРА Обсуждение запуска командеров с клавиатуры ушло сюда - viewtopic.php?f=47&t=1040 |
Автор: | Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 23:57 ] |
Заголовок сообщения: | Re: Список окон |
Иван Кузьмицкий писал(а): Ещё бы заставить список окон реагировать на касание мышой края экрана. Всё равно выбор окна обычно делается мышой, поэтому тянуться к клаве для показа списка окон просто лень Гм... я то обычно делаю вызов с клавиатуры ![]() ![]() Чтобы сделать список -- пришлось пользоваться средствами недокументированного модуля Windows. И все. А чтобы сделать вызов команды по положению мышки... придется копаться в "кишках" ББ. А к таким решениям у меня счас предубеждение... |
Автор: | Евгений Темиргалеев [ Вторник, 24 Июнь, 2008 10:55 ] |
Заголовок сообщения: | Re: Список окон |
Получилось сделать в виде нового отростка WorkWindowsHook к кишкам ББ (прицепил к 1-му сообщ.). Делалось методом подгонки, так что особого качества не ждите ![]() Пришлось добавить WorkWindows.open = "Диалог со списком окон открыт". |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |