Расширенное меню

В Foxpro всегда не хватало мелких интерфейсных и функциональных возможностей, как например в Delphi. К примеру, нельзя почти никак изменять параметры системного меню, кнопок и других объектов. Но сейчас появился пакет MenuLib для VFP6, с которым добавление всяких приятных мелочей в СИСТЕМНОЕ МЕНЮ становится делом элементарным.

Расширенное меню

В Foxpro всегда не хватало мелких интерфейсных и функциональных возможностей, как например в Delphi. К примеру, нельзя почти никак изменять параметры системного меню, кнопок и других объектов. Но сейчас появился пакет MenuLib для VFP6, с которым добавление всяких приятных мелочей в СИСТЕМНОЕ МЕНЮ становится делом элементарным.

Пункты меню можно делать как checkbox, невидимыми, менять их порядок и название и все это можно делать ДИНАМИЧЕСКИ, т.е. в процессе работы программы. Но сперва можно ознакомиться с демкой.

Перед тем как все это читать и пробовать, Вам нужно скачать библиотеки для работы с усовершенствованным меню. (menulib6.zip). И еще ... здесь краткое, ознакомительное описание библиотеки, а подробное вы найдете внутри архива, но на английском.

Запуск демки

Для запуска демки,

1) Разархивируйте архив в новую директорию
2) Запустите VFP
3) Перейдите в директорию, которую создали
4) Запустите демку :- DO MENUDEMO
5) FILE -> EXIT

Ну а теперь, как это делать.

1. Создаем каркас меню в родном конструкторе меню от VFP.
2. Запускаем bldmenu.prg с указанием созданного меню ( do bldmenu with 'mainmenu')
3. А теперь добавляем новые свойства. И на этом поподробнее.

Добавление новых свойств в меню.

VFP у нас вещь объектно-ориентированная и как следствие меню является объектом. И значит, обращаемся к нему, как к объекту.

Пример:
_screen.menu.file.enabled=.f.

_screen.menu - обращение к меню
file - название пункта меню
enabled - всем известное свойство

Чтобы обратиться к вертикальному подменю указываем так:

_screen.menu.file.print.enabled=.f.

Для добавления в меню новых пунктов используется следующий код: _SCREEN.Menu.AddObject("File","menupad") && добавления пункта меню File

По умолчанию, выводимое на экран название (caption) точно такое же, как и имя пункта меню. Так же при создании, пункт меню получается невидимым. Чтобы отобразить его используйте код:

_SCREEN.Menu.File.Visible = .T.

Для добавления подменю в меню, используйте код:

_SCREEN.Menu.File.AddObject("Open","menupad")
_SCREEN.Menu.File.AddObject("Close","menupad") _SCREEN.Menu.File.AddObject("Spacer1","menupad")
_SCREEN.Menu.File.Spacer1.Caption = "-"
_SCREEN.Menu.File.AddObject("Exit","menupad")

И делаем их видимыми:

_SCREEN.Menu.File.Open.Visible = .t.
_SCREEN.Menu.File.Close.Visible = .t.
_SCREEN.Menu.File.Spacer1.Visible = .t.
_SCREEN.Menu.File.Exit.Visible = .t.

Так же можно добавлять подменю в подменю:

_SCREEN.Menu.File.Open.AddObject("Text","menupad") _SCREEN.Menu.File.Open.AddObject("Picture","menupad")

Свойства пунктов меню

Caption
Описание: Используется для показа названия меню (caption)
Тип: Character

Пример:
_screen.Menu.Edit.Copy.Caption = "Copy"
_screen.Menu.Edit.Sep1.Caption = "-" && разделительная линия

Message
Описание: Используется для вывода сообщения в статусную строку
Тип: Character

Пример:
_screen.Menu.Edit.Copy.Message = "Used to copy text"

Enabled
Описание: Определяет доступен или недоступен пункт меню
Тип: Logical.

Пример:
_SCREEN.Menu.File.Open.Enabled = .f.

Checked
Описание: Определяет выбран-ли пункт меню (check box)
Тип: Logical.

Пример:
_SCREEN.Menu.File.Changed.Checked = .t.

Command
Описание: Определяет команду VFP для выполнения
Тип: Character.

Пример:
_SCREEN.Menu.File.Exit.Command = "CLEAR EVENTS"
_SCREEN.Menu.Report.Detls.Command = "DO DetRpt WITH THIS"

Position
Описание: Порядковый номер в меню
Тип: Numeric

Пример:
_SCREEN.Menu.File.Exit.Position = _MLAST
_SCREEN.Menu.File.Open.Position = _MFIRST
_SCREEN.Menu.File.Close.Position = 2

К этому я бы хотел добавить, что удобнее делать так:

- создаем обычное VFP-меню
- создаем prg-файл, в котором будут лежать команды усовершенствования меню (menu.prg)
- и из главной программы можно запускать уже этот файл (do menu.prg)

Все

Автор: Неизвестно

Автор публикации

не в сети 3 месяца

admin

Комментарии: 1Публикации: 123Регистрация: 10-12-2000
Материалы по теме
Оставить комментарий
//////////////// ///////////////
Авторизация
*
*
Генерация пароля