OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 23:20

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Четвертый операнд в строке меню.
СообщениеДобавлено: Понедельник, 25 Апрель, 2011 20:33 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Чего-то не могу найти внятного описания четвертого аргумента в создаваемой строке меню.
Первые три - понятны:
пункт меню, горячая клавиша, команда.
А четвертый? И почему кое-где там стоят команды защиты, а кое-где - ничего нет?

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Апрель, 2011 20:37 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Валерий Лаптев писал(а):
Чего-то не могу найти внятного описания четвертого аргумента в создаваемой строке меню.
^Q "StdCmds.OpenBrowser('System/Docu/User-Man', 'System User Manual')" -> "8 Menu Configuration"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Апрель, 2011 20:45 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Дык в переводе написано:
Цитата:
Примечание: процедуры охраны меню вызываются, например, когда пользователь щелкает мышью по линейке меню. Это вызывает загрузку модуля, в котором содержится процедура охраны, даже если соответствующая команда никогда не вызывается.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Апрель, 2011 21:01 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Валерий Лаптев писал(а):
Чего-то не могу найти внятного описания четвертого аргумента в создаваемой строке меню.
...
А четвертый? И почему кое-где там стоят команды защиты, а кое-где - ничего нет?
Эта штука позволяет деактивировать (сделать серым) пункт меню, когда команда заведомо неприменима.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Апрель, 2011 21:38 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Соответственно, если я делаю собственное меню, то я вообще-то говоря, могу (должен) написать и команду, и процедуру защиты. Или использовать подходящую стандартную команду.
Или вообще не использовать, если пункт меню должен быть всегда открыт.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Апрель, 2011 22:25 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Да, всё именно так.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 26 Апрель, 2011 07:10 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Это я проглядел. Но непонятно здесь "периодически вызывается системой"...
Получается, ББ содержит цикл наподобие систем реального времени?
Нафига?
Включить-выключить - разовое действие.
Или это тот самый цикл, который содержит переключатель по действиям пользователя? В котором в какой-то части проставлена и эта проверка...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 26 Апрель, 2011 09:37 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Валерий Лаптев писал(а):
Но непонятно здесь "периодически вызывается системой"...
В примечании, которое Вы первый раз процитировали, по-моему, этому дано пояснение.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 26 Апрель, 2011 12:34 

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

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 26 Апрель, 2011 14:37 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
если обобщить весь гуй ББ(отвлекаясь от его WinAPI-шной сущности) то "охранник" это такой механизм настройки отрисовки/поведения отображения контрола. Отрисовка происходит постоянно, в цикле. Как в игровых движках.
У прикладной логики в свою очередь свой, независимый от гуя, контекст работы. Ну, вот и получается, что охранники это такие каналы синхронизации картинки/контроллера с состоянием прикладной "модели".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 26 Апрель, 2011 14:56 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Пётр Кушнир писал(а):
если обобщить весь гуй ББ... Отрисовка происходит постоянно, в цикле.
Ого! Вот так обобщили! : ))


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну да.
Те кто работал в Дельфе, помнят, насколько геморройно было обеспечить правильность disable-enable контролов, если не ввести процедуру, которая обновляла махом состояние всех контролов от состояния программы.


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

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


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

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


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

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