Устранение сообщения о синтаксической ошибке при запуске меню
Предлагаю несколько вариантов решения.
I) Глобальный
За генерацию меню (т.е. создание файла MPR на базе вашего файла MPX) отвечает программа GenMenu.prg.
Эта программа расположена в корневом каталоге VFP. Если Вы делали установку в директорию по умолчанию, то это директория "C:Program FilesMicrosoft Visual StudioVfp98"
Откройте файл GenMenu.prg на редактирование командой:
MODIFY COMMAND "c:program filesmicrosoft visual studiovfp98genmenu.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