Re[2]: Система доступных элементов меню в программе
От: Дьяченко Александр Россия  
Дата: 23.06.06 05:42
Оценка:
Здравствуйте, tarkil, Вы писали:

А>>Программа реализует набор комманд, доступных через элементы меню.

А>>(например File.Open File.New File.Close File.Save ...) Число комманд достаточно большое ~100
А>>При этом при активации отдельных элементов возможно изменение состояния других элементов.
T>Во-первых, идея, чтоб состояние одного пункта меню зависело от состояния другого пункта меню — архисомнительная. Навесить себе тут циклическую зависимость — как два байта переслать.

Согласен.

T>Во-вторых, есть надёжный и простой способ обновления — обновлять их просто по таймеру. При этом, правда, приходится заботиться о том, чтобы в начале каждого обработчика команды был дубликат проверки. Но об этом я бы позаботился независимо от механизма обновлений — просто для надёжности.


Это по-моему тоже не самый нормальный способ. На мой взгляд правельней делать примерно следующим образом:
1. Заводим класс отвечающий за состояние системы, сгребаем туда всё относящееся к текущему состоянию + события на изменение всего чего туда надобавляли.
2. Команды подписываются на события и при наступлении события изменяют свое состояние.

ЗЫ. Немного запутано наверно, но если надо можно на конкретном примере разобрать.
... << RSDN@Home 1.2.0 alpha rev. 652>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.