Страница: 1 |
Страница: 1 |
Вопрос: Меню, Тулбар, и вся остальная программа
Добавлено: 04.07.07 17:50
Автор вопроса: Shota
Народ, подскажите как "обычно" организовывают программы, чтоб они адекватно отражали бы текущее состояние "документа"
поясню на 2х примерах
1 Программа MS Word, когда например выделишь фрагмент текста, то пункт меню "Copy" сразу становится активным, если при этом открыт второй документ, и перейти к нему, то "Copy" становится не активным
2 Любая программа для работы с базой данных - к примеру одновременно могут быть открыты 2 разные формы, одна в режиме редактирования записи, другая в режиме просмотра
так вот, при переходе от одной к другой, кнопка "Save" на тулбаре то активируется то нет.....
Иными словами в зависимости от "состояния" программы, документа, форм........ и т.д. меню, тоолбар..... адекватно реагирует на это.........
Как это реализовать?......... ( чисто теоретически )
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #1
Добавлено: 04.07.07 20:06
Как обычно: в событиях форм менять свойства элементов.
Номер ответа: 2
Автор ответа:
Viktor
Вопросов: 9
Ответов: 29
Профиль | | #2
Добавлено: 06.07.07 10:28
Как сказал EUGY. Другого способа я пока не нашёл. Попробуй спомощью WithEvent....Object.Activate. Когда активируется нужная стрница (или таблица, или ещё что-либо) проверяеш Clipboard на наличее инфы (и если надо то какая имено инфа: текст, picture, или ещё что-то). А дольше просто Button.Enable=(My.Computer.Clipboard.ContainsText=True)
Номер ответа: 3
Автор ответа:
Shota
Вопросов: 22
Ответов: 52
Профиль | | #3
Добавлено: 07.07.07 16:58
про "ручной" способ я и сам догадываюсь.....
просто я слышал в C++ ( MFC ) есть класс ( не помню как называется ) который обеспечивает корректное отображение меню и тоолбаров в зависимости от состояния документа......
точно не могу объяснить но грубо идея такая:
Есть класс "главного окна", есть класс "документ"
и еще какой то класс, который "синхронизирует" состояние обоих ....... вот я хотел бы получить "описание" приблизительно такой "технологии"
Номер ответа: 4
Автор ответа:
Shota
Вопросов: 22
Ответов: 52
Профиль | | #4
Добавлено: 07.07.07 17:08
либо конкретный пример:
есть приложение работающее с базой.
на тулбаре есть кнопки:
new
delete
edit
save
undo
условие такое:
ни одна запись не должна быть отредактирована без предварительного "запроса/блокировки".
т.е. изначально все видно только в режиме "только чтение", если юзер зашел в режим "редактирования" то он не должен иметь возможность перейти куда либо, пока не сохранит данные, либо не отменит изменения ( потому как в это время записи на сервере остаются блокироваными )
Причем одновременно юзер может открыть много форм, и переходить по ним как ему угодно, но как только он запросит "редактирование" записи на какой либо форме, то все "замерзает" ( он даже в той же самой форме не должен перейти к другой записи)
и соответственно тулбар и меню на это должны "реагировать"..........