Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Каким образом можно определить cуществует ли меню с заданным именем или нет ? / 5 сообщений из 5, страница 1 из 1
09.11.2007, 19:00
    #34929383
Игорь2004
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом можно определить cуществует ли меню с заданным именем или нет ?
Каким образом можно определить cуществует ли меню с заданным именем или нет ?
Функция POPUP() работает только для меню, определенных ранее командой
DEFINE POPUP.
авторMenus are created and activated with DEFINE POPUP and ACTIVATE POPUP. The menu can also be a Visual FoxPro system menu. POPUP( ) returns an empty string if a menu isn't defined and active or you issue POPUP( ) from the Command window.
Мой же вопрос касается меню, определенных ранее командой DEFINE MENU.
DISPLAY MEMORY показывает все имеющиюся меню.
Не анализировать же текстовый файл возвращаемый командной DISPLAY MEMORY TO FILE ?
...
Рейтинг: 0 / 0
09.11.2007, 19:42
    #34929462
Игорь2004
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом можно определить cуществует ли меню с заданным именем или нет ?
Пока ничего лучше не придумал,
возвращает .T. если меню cmenuname определено
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Execscript([Lparameters tcMenuName]+Chr( 13 )+;
      [local lcTmpFile, lcStr]+Chr( 13 )+;
      [lcTmpFile = Sys( 3 )+".txt"]+Chr( 13 )+;
      [Display Memory To File (lcTmpFile) Noconsole]+Chr( 13 )+;
      [lcStr = Filetostr(lcTmpFile)]+Chr( 13 )+;
      [lcStr = Right(lcStr , At("Menu name", lcStr))]+Chr( 13 )+;
      [lcStr = Left(lcStr , Atc("Popup", lcStr))]+Chr( 13 )+;   
      [Erase (lcTmpFile)]+Chr( 13 )+;
      [Return Alltrim(tcMenuName)$lcStr ], cmenuname)
...
Рейтинг: 0 / 0
09.11.2007, 20:57
    #34929505
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом можно определить cуществует ли меню с заданным именем или нет ?
Функции Popup() и Menu() возвращают имена не просто определенных, но активных в данный момент меню.

Функций, которые бы показали именно определенные через DEFINE, но пока не активные меню в FoxPro не существует.
...
Рейтинг: 0 / 0
09.11.2007, 21:14
    #34929519
Игорь2004
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом можно определить cуществует ли меню с заданным именем или нет ?
Код: plaintext
Функции Popup() и Menu() возвращают имена не просто определенных, но активных в данный момент меню.
Касательно функции POPUP() это утверждение верно, только если она вызывается без параметра,
если же я передаю параметр - имя меню, функция возвращает .T. , если меню было ранее определено. К сожалению, функция Menu() лишена такой возможности.
Пример
Код: plaintext
1.
DEFINE POPUP "MyPopup"
?POPUP("MyPopup") && возвращает .T.
описание функции POPUP
авторReturns as a string the name of the active menu, or a logical value indicating if a menu has been defined.
POPUP([cMenuName])
Parameters
cMenuName
Returns a logical value indicating if cMenuName has been defined. POPUP( ) returns true (.T.) if the menu you specify has been defined; otherwise POPUP( ) returns false (.F.).
Return Value Character or Logical
Remarks
POPUP( ) returns the name of the active menu as a character string if you omit the optional cMenuName argument. A menu must be defined and active for POPUP( ) to return its name. Menus are created and activated with DEFINE POPUP and ACTIVATE POPUP. The menu can also be a Visual FoxPro system menu. POPUP( ) returns an empty string if a menu isn't defined and active or you issue POPUP( ) from the Command window
авторФункций, которые бы показали именно определенные через DEFINE, но пока не активные меню в FoxPro не существует.
Я так и понял, хотел получить подтверждение.
...
Рейтинг: 0 / 0
10.11.2007, 11:00
    #34929749
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким образом можно определить cуществует ли меню с заданным именем или нет ?
Да. Поторопился. Действительно POPUP() может показать и определенные, но пока не активированные меню.

А вот Menu() - не может. Видимо, разработчики исходили из предположения, что в всегда будет существовать только одно основное меню и нет смысла его как-то определять.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Каким образом можно определить cуществует ли меню с заданным именем или нет ? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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