powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / 2 Inu : Как у тебя заработало меню на форме?
7 сообщений из 7, страница 1 из 1
2 Inu : Как у тебя заработало меню на форме?
    #32231177
Dancer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, как у тебя получилось с меню? Я делаю тоже самое, а у меня проблемы всё равно остаются: выдаются синтаксические ошибки, ну и прочее... Если все ошибки игнорируешь, то меню появляется, но пункты подменю не активны! Может это с версией связано? У тебя какая верси VFP?
...
Рейтинг: 0 / 0
2 Inu : Как у тебя заработало меню на форме?
    #32231507
lnu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меню заработало нормально.
А твои ошибки скорее всего связаны с кириличными названиями пунктов меню.
В файле меню (*.mpr) найдеш чтото вроде

DEFINE PAD _10n0mzn39 OF (m.cMenuName) PROMPT "Пункт меню" COLOR SCHEME 3;
KEY ALT+П, ""

KEY ALT+П - это и есть твоя ошибка (не любит фокс кирилицы :) )
Измени ALT+П, например, на ALT+G (та же кнопка на клавиатуре), тогда всё заработает. :)

ну и прослиди чтобы комбинации не повторялись в следующих пунктах.
...
Рейтинг: 0 / 0
2 Inu : Как у тебя заработало меню на форме?
    #32231569
Dancer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да все понятно, спасибо, но фокс при генерации меню сам автоматически выставляет их, а как сделать что бы он вообще их не ставил?
...
Рейтинг: 0 / 0
2 Inu : Как у тебя заработало меню на форме?
    #32231580
lnu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получится :)
Если не нравится то, что генерирует Фокс - пиши ручками (MPR это обычный текстовый файл). Но всё же легче изменить один символ :)
...
Рейтинг: 0 / 0
2 Inu : Как у тебя заработало меню на форме?
    #32231595
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну почему же, получится. Советы по решению этой проблемы здесь:

http://nsvisual.com/fox2/sol/index.php?act=view&id=138
...
Рейтинг: 0 / 0
2 Inu : Как у тебя заработало меню на форме?
    #32231612
lnu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фокс клуб же не работает...
...
Рейтинг: 0 / 0
2 Inu : Как у тебя заработало меню на форме?
    #32231628
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо, если Вы не можете достучаться, тогда вот только что зашел на него и скопировал:

==============================================

Устранение сообщения о синтаксической ошибке при запуске меню

Предлагаю несколько вариантов решения.

I) Глобальный

За генерацию меню (т.е. создание файла MPR на базе вашего файла MPX) отвечает программа GenMenu.prg.

Эта программа расположена в корневом каталоге VFP. Если Вы делали установку в директорию по умолчанию, то это директория "C:\Program Files\Microsoft Visual Studio\Vfp98"

Откройте файл GenMenu.prg на редактирование командой:

MODIFY COMMAND "c:\program files\microsoft visual studio\vfp98\genmenu.prg"

Найдите в нем функцию
FUNCTION addkey

и закоментируйте в этой функции весь условный оператор, начинающийся с фразы:

IF !IsLeadByte(prompt)

Однако, оставьте незакоментированной в нем единственную строчку

STORE "" to m.cKeyname

Т.е. соответсвующий кусок программы должен выглядеть так:

*!* IF !IsLeadByte(prompt)
*!* STORE c_key_padhotkey_LOC + UPPER(LEFT(prompt,1)) TO m.cKeyname
*!* ELSE
STORE "" to m.cKeyname
*!* ENDIF


Сохраните и откомпилируйте измененный файл GenMenu.prg.

Все. Теперь Вам остается только перегенерить все Ваши меню. Сообщение о синтаксической ошибке больше возникать не будут.


II) Ловкость рук

Если Вы считаете, что MicroSoft не ошибается или не чуствуете в себе достаточной уверенности, чтобы исправлять не свои файлы, то Вам остается только каким-либо способом обмануть генератор меню:

а) Каждый пункт главной линейки меню начинать с цифры
б) Первым символом каждого пункта использовать латинскую букву похожую на русскую ("C","M","P" и т.п.)
в) Обязательно вручную назначать комбинацию горячих клавишь для каждого пунтка меню


III) Игнорирование сообщения об ошибке

Это совсем грубый способ. Перед каждым вызовом меню, следует включать собственный обработчик ошибок. Примерно так:

LOCAL lcOldError, lnErrorNumber
lcOldError = ON("Error")
ON ERROR lnErrorNumber = Error()

DO MyMenu.mpr

ON ERROR &lcOldError


Дополнения пользователей

Black Cat
14.08.2001 06:38:04

дополнение к глобальному способу
в файле genmenu.prg в функции addkey
в условный оператор
IF NOT EMPTY(m.cKeyname)
добавить AND NOT EMPTY(m.cKeylabel)
получится
IF NOT EMPTY(m.cKeyname) AND NOT EMPTY(m.cKeylabel)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / 2 Inu : Как у тебя заработало меню на форме?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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