Приложение Редактор MemberData позволяет разработчикам редактировать MemberData. Редактор MemberData представляет собой легкий в использовании интерфейс, который позволяет просматривать и редактировать MemberData, ассоиированные с вашими классами.

Для запуска Редактора MemberDataTo выберите пункт MemberData Editor из меню Form или Class при открытом и активном дизайнере форм или дизайнере классов. Член класса, например, введенное вами свойство "ClassDocumentation", который выбран в окне Properties появится выбранным в списке Редактора MemberData. Однако, в списке редактора вы можете щелкнуть по любому интересующему вас члену класса и редактировать его MemberData.

MemberData, которое вы видете и редактируете, хранится в свойстве _MemberData, которое вы можете редактировать непосредственно в окне Properties или воспользовавшись опцией Zoom из контекстного меню, вызываемого щелчком по правой клавише мыши на свойстве _MemberData, выбранном в окне Properties. Глобальные MemberData хранятся в вашей таблице _FOXCODE. MemberData форматирован в виде XML строки.

Member Data Editor Window

Использование Редактора "MemberData Editor"

Вы можете видеть и редактировать MemberData с помощью редактора. Ниже описаны основные части интерфейса редактора.

Member List

Содержит список всех достпуных членов (свойства, события и методы) для выбранного класса в дизайнере. Выберите интересующего вас члена для дополнения или изменения его MemberData.

Символы префикса ">>" означают, что член имеет ассоциированное с ним MemberData. Если член класса появляется выведенным жирным шрифтом, то это означает, что он имеет его MemberData для выбранной области Scope.

Scope

Установка Scope определяет - где хранится MemberData. Возможны приведенные ниже значения этой установки :

  • Object – MemberData доступен на уровне объекта. Эта опция требует, чтобы выбранный объект имел свойство _MemberData, в противном случае она недоступна.

  • Container – MemberData доступен на уровне контейнера, такого как форма. Если объект не имеет своего собственного MemberData, тогда он наследует его из контейнера, в котором он размещается. Если существует множество контейнеров, каждый со своим собственным свойством _MemberData, тогда возможен выбор контейнера из выпадающего списка.

  • Global – MemberData доступен на глобальном уровне (ваша таблица _FOXCODE). Эта установка не является характерной для объекта. Если объект не наследует MemberData из другого объекта или контейнера, тогда он будет использовать при возможности глобальную установку.

Вы должны понимать правила наследования с MemberData, так как это оказывает влияние на установку Scope. При вызове редактора MemberData, он первоочередно выбирает текущий выбранный в окне Properties объект или свойство. Например, если на форме выбран элемент управления Textbox, а он, Textbox, не содержит свойства _MemberDat, тогда вы не можете указать MemberData на уровне объекта Textbox. Вы можете указать только уровень контейнера или глобальный.

Has MemberData

Отметьте этот чек-бокс для ввода MemberData для выбранного члена. MemberData XML вводится только для выбранного Scope.

Описание панели

Перечисляет аттрибуты MemberData, которые установлены для выбранного члена и к какому уровню Scope относятся установки для текущих элементов.

NoteЗамечание

Командная кнопка Hierarchy отображает подробные установки MemberData для всех уровней выбранного члена.

Filter

Вы можете отфильтровать список членов, на основе приведенных ниже критериев:

  • All members - перечисляются все члены выбранного объекта.

  • Custom members only - перечисляются только пользовательские свойства или методы.

  • Custom members added in this class - перечисляются только пользовательские свойства или методы, которые были добавлены в текущий экземпдяр объекта. Наследуемые пользовательские члены не отображаются в списке.

  • Native members only - отображаются только внутренние члены Visual FoxPro.

  • Favorites only - отображаюьтся члены, которым в MemberData присвоен атррибут "Favorites".

View XML

Отображает подробный MemberData XML для всех членов выбранного объекта на выбранном уровне.

Hierarchy

Отображает подробные аттрибуты MemberData для всех уровней выбранного члена.

Options

Выводит диалоговое окно Options.

Базовые аттрибуты MemberData

Visual FoxPro резервирует определенные аттрибуты MemberData для оперативного использования в интегрированной среде разработки Visual FoxPro (IDE). С помощью редактора MemberData могут быть установлены приведенные ниже аттрибуты:

Favorites

Позволяет вам управлять - будет ли член отображен в окне Properties на закладке Favorites. Если вы установите метку в этот чек-бокс, вы можете выбрать между True или False в выпадающем списке. Кроме того, состояние чек-бокса определяет - будет ли аттрибут favorites записан в MemberData XML, и имеет ли вовлеченность в наследование.

Override

Позволяет вам управлять - будут ли аттрибуты MemberData, не найденные для этого члена, искаться вверх по иерархии. Если вы отметите этот чек-бокс, вы можете выбрать между True или False в выпадающем списке. Кроме того, состояние чек-бокса определяет - будет ли аттрибут override записан в MemberData XML, и имеет ли вовлеченность в наследование.

Display As

Управляет тем, как член будет отображаться в интегрированной среде разработки Visual FoxPro (IDE), такой как окно Properties или IntelliSense. Эта опция доступна только для пользоавтельских (определенных пользователем)членов. Эта установка представлена в аттрибуте display.

Script

Вы можете ввести скрипт, который будет вызван, когда пользователь щелкнет по командной кнопке (…) рядом с блоком ввода текста свойства в окне Properties.

Бокс Script и командная кнопка разблокируются только при выборе членов - свойств. Щелчок по командной кнопке Script открывает скрипт в большем по размеру окне редактирования. Эта установка представлена аттрибутом script.

Note Замечание

Скрипты можно использовать со всеми пользовательскими свойствами и некоторыми родными свойствами.

Определенные пользователем аттрибуты MemberData

User Defined Attribites Page

MemberData представляет собой форматированную в виде XML структуру, которая позволяет расширяться. Visual FoxPro предоставляет определенное базовое использование MemberData, например, такое, как указание Favorites. Вы можете ввести свои собственные аттрибуты в XML MemberData для использования, которые вы же и должны определить. Visual FoxPro будет хранить и накапливать эти пользоавтельские аттрибуты вместе с базовым MemberData.

Custom Attributes List

Перечисляет все пользовательские аттрибуты MemberData для выбранного члена.

Value

Устанавливает значение для пользовательских аттрибут, выбранных в списке.

Add

Добавляет новый пользовательский аттрибуть в MemberData. Как и все прочие XML аттрибуты, добавляемые аттрибуты являются регистро-чувствительными. Вы не можете добавить имя, которое уже разервировано, такое как favorites.

Remove

Удаляет пользоваельский аттрибут из MemberData.

Диалоговое окно Options

Member Data Editor Options Dialog

Диалог Options позволяет вас управлять разными установками интерфейса пользователя редактора MemberData, наравне с опциями, генерируемыми MemberData.

Use Hungarian names

Дефолтное свойство "capitalization" для установки Display as (аттрибут display) устанавливает первую букву в нижнем регистре и остаток в надлежащем виде.

Method prefixes

Содержит разделенный запятыми список префиксов для управления, как капитализация слова выполняется для MemberData, когда пользовательский метод имеет префикс, который имеет соответствие в этом списке. Когда соответствие найдено, MemberData Editor капитализирует префикс на основе того, что имеется в списке и капитализирует остаток имени в надлежащем виде.

Line break after each XML element

Определяет - будет ли вставляться разбивка линии после каждого элемента XML во вновь сгенерированном _MemberData.

Automatically add _MemberData property to objects

Если эта установка включена, то есть установлена в on, запись добавляется в вашу таблицу IntelliSense (_FOXCODE), которая автоматически создает свойство _MemberData для формы, открытой в дизайнере форм или для самого внешнего объекта в дизайнере классов.

Script Font

Определяет шрифт, используемый в блоке редактирования текста скрипта - Script.

Замечания переводчика.

Несмотря на всю прелесть использования свойства _MemberData, должен предупредить о некоей нестабильности, которая имеет место быть при использовании этого свойства. Структура XML с завидным постоянством разрушается без каких-либо видимых или объяснимых причин. Можно было бы допустить, что это связано с превышением длины строки свойства в окне Properties, так как, например, приведенная ниже ошибочная строка XML имеет длину в 538 символов. В случае, если нарушение структуры XML произошло, то увидеть сбои вы сможете сразу же при вызове описанного редактора.

Member Data Editor Error Window

Что можно предпринять. В окне Properties выберите свойство _MemberData редактируемого класса или формы, вызовите щелчком по правой клавише мыши контекстное меню и далее выберите опцию Zoom... . Откроется окно редактирования значения свойства:

Zoom Memberdata Expression

Взгляните на выбранный текст. Ошибка начинается с точки "fa<VFPData>". Однако, дело поправимое, хотя в большинстве случаев такое разрушение структуры XML приводит к потере ряда аттрибутов, и, что встречается достаточно часто, значений MemberData для некоторых свойтсв. Для приведенного примера, корректным завершением XML строки будет:

display="cor_ParentContainer_Assign" favorites="True"/></VFPData>

После исправления строки XML, MemberData редактируемого класса вновь станет доступным для приложения редактора MemberData. Удачи!

Смотрите также