OberonCore
https://forum.oberoncore.ru/

Четвертый операнд в строке меню.
https://forum.oberoncore.ru/viewtopic.php?f=1&t=3425
Страница 1 из 1

Автор:  Валерий Лаптев [ Понедельник, 25 Апрель, 2011 20:33 ]
Заголовок сообщения:  Четвертый операнд в строке меню.

Чего-то не могу найти внятного описания четвертого аргумента в создаваемой строке меню.
Первые три - понятны:
пункт меню, горячая клавиша, команда.
А четвертый? И почему кое-где там стоят команды защиты, а кое-где - ничего нет?

И еще: в папке System/Rsrc только один файл menus.odс
Но в нем куча гиперссылок! Где остальные менюшки?

Автор:  Александр Ильин [ Понедельник, 25 Апрель, 2011 20:37 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

Валерий Лаптев писал(а):
Чего-то не могу найти внятного описания четвертого аргумента в создаваемой строке меню.
^Q "StdCmds.OpenBrowser('System/Docu/User-Man', 'System User Manual')" -> "8 Menu Configuration"

Автор:  Валерий Лаптев [ Понедельник, 25 Апрель, 2011 20:45 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

Дык в переводе написано:
Цитата:
Примечание: процедуры охраны меню вызываются, например, когда пользователь щелкает мышью по линейке меню. Это вызывает загрузку модуля, в котором содержится процедура охраны, даже если соответствующая команда никогда не вызывается.

Но это плохо понятно.
Или надо лезть в каждый модуль и смотреть каждый раз соответствующую процедуру?

Автор:  Info21 [ Понедельник, 25 Апрель, 2011 21:01 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

Валерий Лаптев писал(а):
Чего-то не могу найти внятного описания четвертого аргумента в создаваемой строке меню.
...
А четвертый? И почему кое-где там стоят команды защиты, а кое-где - ничего нет?
Эта штука позволяет деактивировать (сделать серым) пункт меню, когда команда заведомо неприменима.

Например, если в переднем окне не выделен фрагмент текста, то команда Dev, Compile Selection деактивирована -- как и многие другие, требующие куска текста.

Автор:  Валерий Лаптев [ Понедельник, 25 Апрель, 2011 21:38 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

Соответственно, если я делаю собственное меню, то я вообще-то говоря, могу (должен) написать и команду, и процедуру защиты. Или использовать подходящую стандартную команду.
Или вообще не использовать, если пункт меню должен быть всегда открыт.

Автор:  Евгений Темиргалеев [ Понедельник, 25 Апрель, 2011 22:25 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

Да, всё именно так.

Стандартные охраны, по-моему, в чаще всего применяются из StdCmds и TextCmds.

Этот кусок тоже не понятен или Вы проглядели?
Цитата:
Охрана, которая может быть пустой, содержит команду, которая периодически вызывается системой, чтобы определить, является пункт активным или нет, помечен он (галочкой) или нет, или чтобы установить название пункта, отличное от основного (например, переключает Показать АВС на Скрыть АВС).

Автор:  Валерий Лаптев [ Вторник, 26 Апрель, 2011 07:10 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

Это я проглядел. Но непонятно здесь "периодически вызывается системой"...
Получается, ББ содержит цикл наподобие систем реального времени?
Нафига?
Включить-выключить - разовое действие.
Или это тот самый цикл, который содержит переключатель по действиям пользователя? В котором в какой-то части проставлена и эта проверка...

Автор:  Евгений Темиргалеев [ Вторник, 26 Апрель, 2011 09:37 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

Валерий Лаптев писал(а):
Но непонятно здесь "периодически вызывается системой"...
В примечании, которое Вы первый раз процитировали, по-моему, этому дано пояснение.

Автор:  Trurl [ Вторник, 26 Апрель, 2011 12:34 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

Валерий Лаптев писал(а):
Получается, ББ содержит цикл наподобие систем реального времени?
Нафига?

Скорее, наподобие любой виндосовской проги. :) GetMessage - DispatchMessage.

Цитата:
Включить-выключить - разовое действие.

Не скажите. Курсор двинул - вот и выключать надо.

Автор:  Пётр Кушнир [ Вторник, 26 Апрель, 2011 14:37 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

если обобщить весь гуй ББ(отвлекаясь от его WinAPI-шной сущности) то "охранник" это такой механизм настройки отрисовки/поведения отображения контрола. Отрисовка происходит постоянно, в цикле. Как в игровых движках.
У прикладной логики в свою очередь свой, независимый от гуя, контекст работы. Ну, вот и получается, что охранники это такие каналы синхронизации картинки/контроллера с состоянием прикладной "модели".

Автор:  Александр Ильин [ Вторник, 26 Апрель, 2011 14:56 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

Пётр Кушнир писал(а):
если обобщить весь гуй ББ... Отрисовка происходит постоянно, в цикле.
Ого! Вот так обобщили! : ))

Автор:  Илья Ермаков [ Вторник, 26 Апрель, 2011 15:14 ]
Заголовок сообщения:  Re: Четвертый операнд в строке меню.

Ну да.
Те кто работал в Дельфе, помнят, насколько геморройно было обеспечить правильность disable-enable контролов, если не ввести процедуру, которая обновляла махом состояние всех контролов от состояния программы.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/