Функция MRKPAD()

Определяет, помечен ли заголовок меню в строке меню, определенной пользователем, или в системной строке меню Visual FoxPro.

Синтаксис:

MRKPAD(cMenuBarName, cMenuTitleName)

Параметры:
cMenuBarName
Задает имя строки меню, содержащей нужный заголовок меню.
cMenuTitleName
Задает имя заголовка меню.

Результат:
Логический.

Комментарии:
Чтобы пометить заголовок меню или снять отметку, пользуйтесь командой SET MARK OF.
Если заданный заголовок меню помечен, функция MRKPAD( ) возвращает значение "истина" (.T.), в противном случае она возвращает "ложь" (.F.).

Пример:

* В следующем примере программа MARKPAD.PRG использует функцию
* MRKPAD( ), чтобы при выборе заголовка меню ставить или убирать
* помечающую его галочку.
* Сначала текущая системная строка меню сохраняется в памяти по
* команде SET SYSMENU SAVE, а все элементы системных меню удаляются
* по команде SET SYSMENU TO.
* По команде DEFINE PAD создаются несколько элементов системных
* меню. Когда выбирается элемент меню, выполняется процедура choice,
* отображающая имя этого элемента и имя строки меню. Команда SET
* MARK OF используется вместе с функцией MRKPAD( ), чтобы отображать
* на экране галочку, помечающую элемент меню, или удалять с него. Если
* выбрать элемент меню Exit, будет восстановлена первоначальная
* система меню Visual FoxPro.

*** Name this program MARKPAD.PRG ***

CLEAR
SET SYSMENU SAVE
SET SYSMENU TO
SET MARK OF MENU _MSYSMENU TO CHR(4)
PUBLIC glMarkPad
glMarkPad = .T.
DEFINE PAD padSys OF _MSYSMENU PROMPT '\<System'  COLOR SCHEME 3 ;
	KEY ALT+S, ''
DEFINE PAD padEdit OF _MSYSMENU PROMPT '\<Edit'    COLOR SCHEME 3 ;
	KEY ALT+E, ''
DEFINE PAD padRecord OF _MSYSMENU PROMPT '\<Record'  COLOR SCHEME 3 ;
	KEY ALT+R, ''
DEFINE PAD padWindow OF _MSYSMENU PROMPT '\<Window'  COLOR SCHEME 3 ;
	KEY ALT+W, ''
DEFINE PAD padReport OF _MSYSMENU PROMPT 'Re\<ports' COLOR SCHEME 3 ;
	KEY ALT+P, ''
DEFINE PAD padExit OF _MSYSMENU PROMPT 'E\<xit'    COLOR SCHEME 3 ;
	KEY ALT+X, ''
ON SELECTION MENU _MSYSMENU ;
	DO choice IN markpad WITH PAD( ), MENU( )

PROCEDURE choice
PARAMETER gcPad, gcMenu
WAIT WINDOW 'You chose ' + gcPad + ;
	' from menu ' + gcMenu NOWAIT
SET MARK OF PAD (gcPad) OF _MSYSMENU TO ;
	! MRKPAD('_MSYSMENU', gcPad)
glMarkPad= ! glMarkPad
IF gcPad = 'PADEXIT'
	SET SYSMENU TO DEFAULT
ENDIF

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.