Вопрос: Почему при создании временного контекстного меню в ACCESS средствами библиотеки MS Office 11.0 Object Library, после вызова контекстного меню методом ShowPopup: 1. Курсор вне области контекстного меню - загрузка процессора (AMD Athlon 64 X2 Dual Core 4200+) ~ 50% 2. Курсор в области контекстного меню - загрузка процессора < 1%. Другой код в это время не выполняется. Создание и вызов контекстного меню выполняется в модуле класса.
Меню лучше создать 1 раз при загрузке программы у клиента и обязательно с диагностикой проверки его существования ( т.к. меню сохраняется в базе при ее закрытии). Далее, если оно не нужно, то выключать (не удалять) его элементы. Вывод. Постоянные эксперименты с памятью приводят к неожиданным последствиям.
Абсолютно верно. Контекстные меню для форм и отчетов именно так и функционируют. Я же решил попытаться расширить область применения контекстных меню, используя временные контекстные меню в качестве элементов управления в форме, для задания значений полей (например выбор даты в заданном диапазоне, выбор значения из справочника). Можно конечно использовать и формы-календари, и формы-справочники, и списки и поля со списками, но хотелось внести некоторое разнообразие. Создавать постоянные контекстные меню и каждый раз при вызове проверять их соответствие источнику данных, (ежедневно изменяемому восьмью пользователями), или заданному диапазону значений (в случае с датой - ежедневно, в случае с временем и того чаще) с дальнейшей корректировкой, применением фильтров на отображаемые (доступные) значения, неверное не лучше, чем создать временное контекстные меню, использовать его и удалить, (хотя я не пробовал). Из опыта реальной работы восьми пользователей различной подготовки в течении двух недель, жалоб на неадекватное поведение приложения (клиент-mde, сервер-mdb) в этой части не последовало (не факт, что не было!), несмотря на применение в одной форме 12-ти временных контекстных меню, создаваемых по вызову и удаляемых сразу по применению. Будем экспериментировать дальше, тем более что размер справочников может быть значительно больше количества комфортно воспринимаемых на экране элементов контекстного меню, не говоря уже о максимальном количестве элементов управления в контекстном меню, времени, затрачиваемом на его создание и др.
Есть еще непонятное ограничение на формы ( !!! речь идет о тех, которые открыты). Если их будет много, точнее около 20 (включая невидимые), то база данных может сваливаться из-за проблем с памятью или выдавать ошибки при открытии новых форм.