powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / 100% загрузка системы при "работе" на фоне
18 сообщений из 18, страница 1 из 1
100% загрузка системы при "работе" на фоне
    #32876381
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересный "эффект" - запускаю под 8 фоксом свою прогу, захожу в горизонтальное меню, но ничего не выбираю - загрузка пару %.
Сворачиваю окно фоксы - тут же загрузка 100%.
Выхожу в фокс, сворачиваю - загрузка нормальная, пару процентов.
Запускаю прогу, из меню запускаю форму - загрузка норма, сворачиваю - загрузка в норме.
Выхожу из формы назад в основное меню, загрузка в норме, сворачиваю - загрузка 100%!!!
Че за?

ЗЫ 100% сразу после не конкретно сворачивания, а при последующей активации любого другого окна под виндами (ХРНЕ). В целом не обязательно даже сворачивать окно фоксы с прогой, достаточно просто перейти в другое окно и 100% загрузки обеспечено.
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32876520
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оказывается так фокса реагирует на меню созданное программой, а не построителем!
А построителем построить меню по некоторым соображениям не получается.
И вообще если менюпад называется по-русски то и поп"ап(сабменю) ему соответствующий тоже называется по-русски. Еще пады можно по-английски переназвать, а чего делать с поп"апами? Абсолютно идиотский построитель!!! Почему он думает, что я на каждый пад меню хочу назначить хот-кей? Сам его лупит кирилическим и сам же потом на этом спотыкается...

что же делать?
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32876529
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KOчто же делать?
Можно модифицировать генератор меню

http://www.foxclub.ru/sol/index.php?act=view&id=138
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32877073
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Но там решен вопрос с горячими клавишами, а этот вопрос я и сам догадался решить - просто вставил сочетания с латиницей в Options-ах.

А вот основной проблемы это не решает. Если задавать пункт меню как SubMenu то создается попап названный кирилицей! И еще, я в программе могу создать бар от попапа с именем месяца, который выясняется в ходе программы. Это, например, пукт "Закрыть месяц декабрь". Тут название месяца меняется после исполнения этого пункта на следующий месяц. А генменю ведь забацает только статичные пункты. И еще. Если задать меню таким образом, то параллельно работает фокс как сам по себе, только системное меню у него мое, а так и комманд окно есть и тд и тп. А ежели програмно опеределять меню, то фокса неактивна. Но есть и тут вопросы - так меню срабатывает 1 раз - и все, прога идет дальше по тексту. Я сделал
Exit=.f.
do while not Exit
acti menu _msysmenu
enddo
return
а в меню выхода переменная Exit меняет значение на .Т.

Криво наверное... Что посоветуете?

Взять, чтоли, сделать форму как меню... Тоже не получится нормально...
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32877260
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изменить имя Popup :

-) Войдите внутрь того Popup, имя которого собираетесь изменить
-) Пункт меню View, подпункт Menu Options. Раздел Name - это и есть имя Popup, которое будет создано при генерации меню

Если по каким-то причинам, Вы переименуете Bar-пункт основной линейки меню, то имя Popup-меню автоматически поменяется на это измененное значение. Надо будет повторить все описанные манипуляции чтобы восстановить нужное имя Popup-меню

Динамическое изменение заголовка Bar-пункта меню
-) Устанавливаете имя для нужного Popup-меню, по приведенной выше схеме. Например, Вы указали имя MySample

Теперь, в любом месте программы можно написать примерно такой код

DEFINE BAR 1 OF MySample PROMPT "Новый текст"

Это и есть переопределние текста первого сверху пункта Popup-меню. Правда, тут надо переопределить вообще все опции, какие есть. Например, если есть горячие клавиши или условие SKIP. Подробнее смотри HELP по этой команде.

Управление приложением через меню :

В главном стартовом файле пишешь что-то вроде

DO MyMenu.mpr
READ EVENTS

В пункте меню "Выход" надо прописать команду CLEAR EVENTS
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32877307
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ACTIVATE MENU (возможно, и POPUP тоже) и INKEY - две вещи, которые гарантированно грузят процессор, причем, насколько я понимаю, в этом плане от версии к версии ничего не менялось.

SET SYSMENU AUTOMATIC (т.е. то, что делает построитель) - панацея от первого. А второе - и в FPD его нечасто приходилось использовать, а в VFP и вообще необходимости почти не вижу, да и не о нем речь сейчас ;-))).

Кстати, имя для пункта меню как SubMenu, то есть попапа, можно и поменять на нормальный идентификатор на латыни. А уж хот-кеи - это известный глюк, не надо их по умолчанию оставлять, надо менять на латыницу. Или убирать.

Кстати, и вид у меню, которое ACTIVATE MENU довольно попсовый, и работает не так, как win-меню.

Кстати, построитель меню и в самом деле довольно многим не нравится, мне в том числе. Всегда программно пишу меню (причем многое при этом строю). Объекты, правда, здесь не использую, делаю процедурно, но многие делают и объектную обвязку меню. Очень хорошо выходит.

К примеру, мы пишем:
oSysMenu.oPopup("Form").oBar("Open").Skip = .F.
А там выполняется команда:
SET SKIP OF BAR Open OF MENU Form TO .F.
PS: прошу прощения за возможные огрехи в синтаксисе ;-)
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32877479
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОГРОМНОЕ ВАМ СПАСИБО!
Изменить имя Popup
я догадывался что такое должно быть - для пада же ш есть. Но не догадался что оно в основном меню может находиться. Я рассудил что раз для пада есть опции где его имя можно задать то также и для пада должно быть.

Динамическое изменение заголовка Bar-пункта меню
принцип действий понятен, редефайн любого бара можно сделать в любое время. На практике еще не попробывал сейчас, но ранее именно так и действовал.

Управление приложением через меню
а вот этого просто не знал! А работает нормалёк, и 100% загрузки теперь нет!

еще раз спасибо!
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32877738
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а еще вопрос - таким образом появляется меню, все пучком, но выбрать пункт меню можно только мышью. А как чтоб сразу подсвечен был 1 пункт меню? Тогда можно клавой выбирать.
Я как частный случай заслал Keyboard"{ALT+A}", но такое срабатывает однократно, а после отработки по любому пункту опять берись за мышьяк :)
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32877797
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартная активация линейки меню через клавиатуру - это клавиша F10 или клавиша Alt (просто Alt без каких-либо дополнительных клавишь). Это стандарт. Почти такой же, как Help через F1.

Ну, а если через команды, то это

ACTIVATE MENU _MSYSMENU
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32879645
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ACTIVATE MENU _MSYSMENU работает, но однократно, как я и писал - до отработки пункта меню, затем активируется окно проекта и клавишами двигаемся в нем. Если окна этого нет, то я вообще не знаю где курсор клавиатурный - но похоже что в тулбаре (надо его отключить тоже).
видимо только отключение тулбара мне и поможет...
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32879708
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал в проге Deactivate window stadard - это отключило стандартный фоксовый тулбар на время исполнения. Но все равно! Раз отработал пункт меню - и все. С клавы по меню не двигается!
Что делать? Как сделать чтобы меню постоянно было доступно с клавы/активировано для движения по нему клавой?
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32879720
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получается либо надо каждый раз нажимать Ф10
либо добавить в конец каждой подпрограммы активирование меню.

Либо есть 3-й путь которого я не знаю?
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32879996
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй вместо
SET SYSMENU AUTOMATIC
делать
SET SYSMENU ON
.
Но не уверен, что 1) поможет и 2) при этом не возникнут другие глюки.
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32880065
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не помогает...
придется навэрна ф10 обучить жмакать...
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32880090
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KOполучается либо надо каждый раз нажимать Ф10
либо добавить в конец каждой подпрограммы активирование меню.

Либо есть 3-й путь которого я не знаю?
Существует такое понятие "горячая клавиша". Это одна клавиша или комбинация клавишь, которые автоматически вызывают определенный пункт меню вне зависимости от его уровня вложенности в иерархии меню-подменю.

Сделайте назначение на наиболее активно используемые пункты меню. В этом случае не нужно активизировать собственно меню. Вызов пункта будет по горячей клавише. Это значительно быстрее чем двигаться по всей линейке меню.
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32880139
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так это и будет правильное поведение меню ;-)
А так - общие комментарии:
1. Меню должно быть по возможности похоже на меню других Win-приложений.
2. Горячие клавиши должны быть по крайней мере на постоянные действия, со временем пользователи их запомнят.
3. Меню-центрированное приложение можно смело заменить на навигаторо-центрированное ;-). Т.е. в меню оставить только действия для работы с данными, окнами и т.д., а список форм, доступных для запуска в данной сессии, проводить через специальную форму-навигатор, реализованную, например, на базе Tree-View.
4. Ну и тулбары не игнорировать в качестве привычного пользователям элемента мышиного управления ;-)))
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32880176
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вероятно так оно умнее, но есть одно но
юзьверя не привыкшие хоткеи жать, а привыкшие они досовой прогой пользоваться где навигация в меню курсором. Иерархия меню несложная.
Мышиного управления не было и привычных батонов в тулбаре тоже нету для них.

Вобщем решил я покаместь в анлоад всех вызываемых из маню форм втулить keyb"{F10}". Так оно и работает...
осталось втулить перед ретурном оставшихся подпрог.

С другой стороны мож и надо хоты забадяжить да юзьверей обучить. Опять же но: все хоты работатют, по-идее, в совокупности альт+латиницы буква. И че? Теперь чтобы хот сработал надо в латиницу перейти и там обратно на кирилицу, чтоб инфу внести? Вроде как лишние телодвижения получаются... Или с альтом сработает хоть бы там что?
проверил вот...
срабатывает независимо от текущей раскладки...

и самое интересное что нажатие на альт = Ф10.

ну что ж. будем ваять хоты.
...
Рейтинг: 0 / 0
100% загрузка системы при "работе" на фоне
    #32880287
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда мне кроме хот-кеев в меню приходилось дополнительно писать в коде после загрузки меню что-то подобное:
(напр, в mainform.Init)
Код: plaintext
1.
ON KEY LABEL CTRL+F4 mainForm.Release
ON KEY LABEL CTRL+F4 MyGlobalProc()

Оказывается ON KEY LABEL <key> <command> работала надежнее (VFP5),но только приходилось в mainform.unload для нее писать очистку ON KEY LABEL <key>
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / 100% загрузка системы при "работе" на фоне
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]