Примеры Библиотек Классов Visual FoxPro обеспечивают Инкапсуляцию требуемой функциональности в ваших разрабатываемых Приложениях. Примеры Решений иллюстрируют варианты использования Классов. Группы примеров Классов подробно описаны в следующих Разделах:
Библиотека Классов Командных Кнопок
Библиотека Buttons.vcx содержит следующие Классы Командных Кнопок.
Класс | Краткое Описание |
---|---|
CmdOK |
Командная кнопка Закрытия родительской Формы. Если форма является Элементом набора форм (FormSet), cmdOK закрывает весь набор форм. |
CmdCancel |
ПодКласс, порождаемый классом cmdOK, в котором свойство Caption имеет значение = "Cancel" (Отмена) |
CmdHelp |
Кнопка активации подсистемы Помощи (раздела помощи) в соответствие с идентификатором HelpContextID, который определен для Формы, в которую помещена данная Кнопка. |
MailBtn |
Кнопка обработки Почты, входит в состав Контейнера, вместе с Контролами: Microsoft MAPI Message, Microsoft MAPI Session. Программный фрагмент события Click данной кнопки выполняет подключение к Электронной Почте, создает соответствующее Сообщение на основе Данных из Текущей Записи Таблицы. Например, Класс кнопки MailBtn используется в форме: SENDMAIL.SCX, подкаталог: ...Samples\Solution\OLE. |
VCR |
Набор командных кнопок навигации по записям Таблицы Данных, обеспечивается выполнение стандартных навигационных команд: Next, Prior, Top, Bottom. При использовании данного класса уточните значение свойства Skiptable, содержащего Алиас Таблицы Данных, для которой требуется навигация. Если Skiptable ="", указатель Записи перемещается для текущей рабочей области. |
Библиотека Классов Макетов
Библиотека Samples.vcx солдержит следующие Классы.
Класс | Краткое Описание |
---|---|
CboFontName |
Контрол типа "combo box", отображающий все текущие доступные системные Шрифты. |
CboFontSize |
Контрол типа "combo box", отображающий вместе с доступными Шрифтами возможные Размеры данных Шрифтов. Для заполнения данного Контрола используется внутренний метод: FillList, ему передается имя Шрифта. Свойства nLargestFont и nSmallestFont ограничивают минимальный и максимальный размеры для отображаемых Шрифтов. Вы можете использовать данный Класс совместно с Контролом cboFontName (смотрите выше). В программном фрагменте события InteractiveChange объекта cboFontName вызывается указанный Метод FillList рассматриваемого контрола cboFontSize:
Например, данный класс (контрол) используется при построении класса tbrEditing, расположенного в данной Библиотеке. |
Clock |
Класс-Контейнер, отображающий текущую Дату и Время. Компонета "Display a system clock" (Отобразить Системное Время) из Общих Решений VFP, использует рассматриваемый класс Clock. |
Datachecker |
Пользовательский Класс, обеспечивающий разрешение Конфликтов обработки данных в многопользовательской среде (или при многосеансной обработке данных). Программный фрагмент в событии Error контрола VCR из библиотекиn BUTTONS.vcx выполняет вызов соответствующий метод обработчика Конфликтов CheckConflicts в том случае, когда возникает конфликтная ситуация при сохранении измененных данных Буферизованных Таблиц, смотрите Код ниже:
В разделе "Run multiple instances of a form" (Активация нескольких Экземпляров одной Формы ) из Общих Решений VFP демонстрируется использование рассматриваемого класса обработки Конфликтов. Дополнительную информацию смотрите в соответствующем Разделе, при описании, или в комментариях к указанному Примеру. |
Distinct_values_combo |
Контрол типа "combo box", который заполняется уникальными (неповторяющимися) значениями из соответствующего источника данных, определенного в свойстве: ControlSource. Например, если вы разместите данный класс в вашей Форме, уточните значение свойства ControlSource = "customer.country", то данный Контрол будет заполнен значениями "Национальностей" из указанной Таблицы, при этом значения будут неповторяющиеся. |
FrmNoTitle |
Контрол типа "Form", у которого отсутствует Заголовок. Если вам требуется отобразить некоторую информацию в обычном Окне (не в Форме), вы можете создать пользовательский Объект, порождаемый данным классом, а далее использовать Графические Методы обычной Формы. Раздел "Display line animation on a form" (Подвижные Линии в Форме) из Общих Решений VFP демонстрирует использование указанного Класса-формы без Заголовка. |
Lookup_combo |
Контрол типа "combo box", который позволяет достаточно просто отображать значения одного из полей таблицы, например, Имя Компании, в том случае, когда свойство ControlSource "привязано" к другому Полю, например, используется идентификатор Компании (company id number). Данный Класс имеет дополнительные, пользовательские Свойства: order_column: Номер столбца Сортировки Таблицы (опционально). lookup_table: Имя алиаса Таблицы, из которой заполняется данный Контрол. display_column: Имя отображаемого Столбца Таблицы. return_column: Имя столбца, который связывается со свойством ControlSource. |
MoverLists |
Контейнер, содержащий Два Списка и Четыре Командные Кнопки. Пользователь может переносить выбранные Элементы Списков в другой Список при помощи соответствующих Кнопок или при помощи операций "перетаскивания" (dragging-and-dropping). Вым необходимо контролировать, чтобы значение свойства в обоих Списках было RowSourceType = 0; элементы в Списки добавляются с помощью стандартного Метода AddItem. Класс MoverLists содержит Три пользовательскихСвойства: CanDropIcon: Имя графического файла Курсора мышки, который отображается при доступности выполнения операции "перетаскивания": "drag and drop". NoDropIcon: Имя графического файла Курсора мышки, который отображается в том случае, когда указанная выше операция недоступна. DragThreshold: Количество пикселов, которое определыяет начало указанной операции "перетаскивания". Рассматриваемый класс иллюстрируется в разделе "Move items between list boxes" (Перенос Элементов между двумя Списками) в Общих Решениях VFP. |
Print_reports |
Класс модальной Формы, содержащий требуемый функционал, позволяющий Пользователю выполнить Предварительный просмотр Отчета, или напечатать Отчет, или перенаправить данный Отчет в Текстовый файл. Вы можете использовать свойство cReport - для указания требуемого файла Отчета, или передать имя данного Отчета в качестве паракметра, при создании данной Формы, смотрите пример ниже:
|
QBF |
Контейнер с Тремя Кнопками. Данный Класс используется совместно с классом VCR в формах, обрабатывающих Данные из Таблиц. Когда вы нажимаете кнопку <Enter QBF> (Определить Запрос по Форме, примеру [Query -By- Form]), значения в контролах очищаются. Вводимые новые значения будут определять условия Фильтрации Записей Таблицы; фильтр устанавливается кнопкой <Query> (Запрос). Каждый из контролов-источников значений филтра должен иметь заданное свойство ControlSource, эти контролы должны иметь родительским Контейнером ту же самую Форму. Компонента Примеров Решений VFP "Create a query by example form" (Создание Запроса-по-примеру) иллюстрирует использование рассматриываемого Класса |
Resizable |
Класс типа "Custom", который обеспечивает изменение размеров Контролов на Форме, а также их размещение относительно изменяемых размеров самой Формы. Включите данный класс в вашу форму и определите в программном Коде события Resize формы вызов специального метода данного класса: AdjustControls:
Рассматриваемый класс Resizable содержит два пользовательских свойства, которые требуется уточнить: RepositionList: Символьная строка, как список обрабатываемых (перемещаемых) базовых Классов. ResizeList: Символьная строка, как список классов, у которых изменяются размеры. Компонента "Resize and reposition controls at run time" (Перемещение и Масштабирование Контролов при выполнении Приложения) иллюстрирует использование данного Класса. |
RTFcontrols |
Класс типа "Container", содержащий описанные выше контролы: cboFontName, cboFontSize, а также дополнительные кнопки: Bold, Italic, ForeColor. Подконтрол cboFontSize обновляет (или учитывает) изменения в указанных контролах, смотрите код события: InteractiveChange для cboFontName, Компонента "Use the RichText control" (Использование внешнего Контрола типа RichText) из Примеров Решений VFP иллюстрирует использование данного контейнера. |
SoundPlayer |
Класс обеспечивает открытие и активацию невизуальных (звуковых) мультимедийных файлов, типа .WAV (Audio). Дополнительную информацию по использованию данного класса смотрите в разделе Sample Multimedia Classes (Примеры обработки Мультимедийных Файлов), смотрите Далее.... |
StopWatch |
Контейнерный класс, содержащий базовые классы Timer & Label, позволяющие эмулировать работу Секундомера. Класс StopWatch имеет Три пользовательских Метода, которые имеют следующее назначение: Start: Запуск Секундомера; Stop: Остановка Секундомера; Reset: Очистка текущего значения (Табло Секундомера) (0:00) Компонента "Display a stop watch" (Отображения Секундомера)иллюстрирует использование данного класса. |
TbrEditing |
Класс Инструментария для команд Редактирования; tbrEditing содержит следующие компоненты: nAppliesTo Property: возможные значения: 1, 2, или 3.
Refresh: Принимает ссылку на объект и устанавливает все изменяемые свойства объекта. Вызов метода Refresh рекомендуется выполнять в программном Коде события GotFocus каждого Контрола. Компонента "Change font attributes" (Изменение характеристик и свойств Шрифта) иллюстрирует использование данного Класса. |
VideoFrame |
Данный класс может быть использован для Активации и просмотра мультимедийных файлов, таких как "Windows Video". Подробнее смотрите в разделе "Sample Multimedia Classes" (Примеры Мультимедийных классов), смотрите ниже.... |
Макеты мультимедийных Классов
Два представленных Класса (SoundPlayer и VideoFrame) из библиотеки классов ...Samples\Classes\Samples.vcx позволяют вам вцыполнять специальные команды MCI (Multimedia Command Interface) для обработки и активации Мультимедийных файлов.
Техническая документация по использованию команд MCI может быть найдена по фильтру "Multimedia Commands" на следующем разделе MSDN (http://msdn.microsoft.com/library).
Класс Звукового Плейера (Sound Player Class)
Данный класс позволяет открывать и активировать (проигрывать) мультимедийные (звуковые) файлы, такие как: .WAV. После открытия конкретного звукового файла вы получаете возможность обращаться к встроенным функциям указанного инструментария MCI.
Свойство | Краткое Описание |
---|---|
AutoOpen |
Определяет, что звуковой файл Открывается автоматически после создания рабочего Экземпляра данного Класса. Значение по-умолчанию: True (.T.). |
AutoPlay |
Определяет, что после открытия Звукового файла, он автоматически Активируется (проигрывается). Значение по-умолчанию: True (.T.). |
AutoRepeat |
Определяет, что по-завершении проигрывания звукового файла требуется повторить его Активацию. Значение по-умолчанию: False (.F.). |
ControlSource |
Определяет Имя Поля (столбца) некоторой Таблицы, который содержит ссылку на Звуковой файл. Если данное значение не указано (пустое), то предполагается значение свойства SoundFile, как имя звукового файла. |
MCIAlias |
Определяет имя Алиаса Таблицы, используемой при выполнении команд MCI. Если значение не задано (пустое), то предполагается в качестве алиаса таблицы значение свойства Name рассматриваемого Класса. Обычно, данное значение можно не указывать, однако при использовании текущего звукового файла дважды - требуется однозначно определять имя рабочего Алиаса для каждого Экземпляра Класса. В противном случае возможны конфликты, или непредсказуемые Ошибки. |
SoundFile |
Содержит или Определяет полное имя звукового файла, например: " |
Метод | Краткое Описание |
---|---|
OpenSound |
Открывает Звуковой Файл. |
PlaySound |
Выполняет Активацию Звукового файла (проигрывание). Перед выполнением данного метода звуковой файл должен быть открыт в методе: OpenSound. |
PauseSound |
Остановка проигрывания звукового файла. Продолжение может быть выполнено методом PlaySound. |
SetPosition |
Позволяет переместить текущий указатель Позиции звукового файла. Данный метод может быть выполнен только после успешного Открытия указанного Звукового файла. Доустимые значения: "Start", "End", или значение N (в миллисекундах), определяющее позицию Звукового файла. |
CloseSound |
Закрывает Звуковой файл и освобождает все связанные с ним Ресурсы системы. |
Класс ВидеоЭкрана (VideoFrame Class)
Класс VideoFrame может быть использован вами для активации (просмотра) мультимедийного файла , такого как стандартное Видео ОС Windows. После успешного открытия видео-файла вы получаете доступ к дополнительным внутренним функциям Инструментария MCI.
Например, использование данного класса можно посмотреть в библиотеке Video.scx, размещенную в подкаталоге: ...Samples\Solution\Forms.
Свойства | Краткое Описание |
---|---|
AutoOpen |
Определяет, что видео-файл автоматически открывается ппосле создания рабочего экземпляра класса. Значение по-умолчанию: True (.T.). |
AutoPlay |
Определяет, что после успешного открытия видео-файла, он Активируется (проигрывается). Значение по-умолчанию: True (.T.). |
AutoRepeat |
Определяет, выполнять ли повтор Просмотра данного файла после завершения текущего Цикла просмотра. Для повторения (непрерывного просмотра видео-файла) требуется установит значение = .T. . Значение по-умолчанию: False (.F.). |
ControlSource |
Определяет имя Поля (столбца), содержащего ссылку на требуемый видео-файл. Если значение не задано (пустое), то предполагается использование значение свойства VideoFile (смотрите ниже...). |
MCIalias |
Определяет имя Алиаса Таблицы, которая используется в инструментарии MCI. Если значение не указано (пустое), то для данного Алиаса используется значение свойства Name рассматриваемого класса. Обычно, данное свойство можно не определять, Однако при неоднократном использовании видео-файла (в нескольких экземплярах данного класса) для каждого из них необходимо указать кникальный идентификатор Алиаса. |
VideoFile |
Определяет или Содержит полное имя видео-файла, например: " |
Метод | Краткое Описание |
---|---|
CloseVideo |
Закрывает текущий видео-файл и освобождает все связанные с ним Ресурсы. |
DoMCI |
Может быть использован для выполнения других (вспомогательных) команд Инструментария MCI. Стандартно применяется для выполнения основных команд MCI. |
OpenVideo |
Открывает заданный видео-файл и отображает начальный кадр. |
PauseVideo |
Приостанавливает просмотр видео-файла. Для возобновления может быть использован метод: PlayVideo. |
PlayVideo |
Стартует Просмотр файла-видео с текущей позиции. Файл должен быть предваритьельно открыт с помощью метода OpenVideo. |
SetPosition |
Позволяет вам установить текущую позицию указателя видео-файла. Данный метод может быть выполнен только после успешного открытия файла. Допустимые значения для параметра позиции: "Start", "End", или позиция N (в миллисекундах) относительно начала видео-файла. |
Библиотека Классов Утилит
Библиотека Utility.vcx содержит следующие Классы.
Класс | Краткое Описание |
---|---|
Arraylib |
Класс типа "Custom", содержащий методы Вставки, Удаления элементов в массивы; имеются также возможности Сканирования Массивов по Столбцам. |
Execsp |
Класс типа "Custom", значительно облегчающий выполнение Хранимых Процедур (SP-SQL) с использованием Технологии Сквозных Запросов (SQL pass through) для Удаленных Источников Данных (Серверов). |
Filelib |
Класс типа "Custom", содержащий Расширенные методы обработки Специализированных символьных строк (имен файлов и подкаталогов), например, исключение или замена расширения имени файла, исключение или добавление к имени подкаталога обратной косой черты (backslash), и так далее. |
Menulib |
Контейнерный класс, содержащий методы создания Контекстных Меню (shortcut menu) из исходных Массивов Данных. В компоненте "Create dynamic shortcut menus" (Создание динамических Контекстных Меню) из Раздела Примеры Решений VFP иллюстрируется использование рассматриваемого Класса. |
Программы Обработки Реестра ОС Windows
Модуль Registry.prg содержит описание следующих Классов.
Класс | Краткое Описание |
---|---|
FileReg |
Является Подклассом основного класса Registry, который обеспечивает Чтение специфической информации о конкретном Приложении, на основании расширения файла Приложения и местом расположения указанного Приложения. |
FoxReg |
Является подклассом основного класса Registry, который обеспечивает Чтение-Запись специальных параметров системы Visual FoxPro в реестре ОС Windows. |
ODBCReg |
Является подклассом основного класса Registry, который обеспечивает Чтение информации о внешних или внутренних Источниках Данных (ODBC data source), а также специальную информацию о соответствующих Драйверах. |
OldINIReg |
Является подклассом основного класса Registry, который обеспечивает Чтение-Запись пользовательской информации в файлах .INI |
Registry |
Основной класс для работы с Реестром ОС Windows, базирующийся на эффективном использовании инструментария Windows API. |
Для знакомства с примерами по работе с Реестром запустите приложение SOLUTION.app из папки примеров: ..\Samples\Solution\.