Распечатать страницу

Создание формы в Visual FoxPro

« Назад

Форма – это объект, предназначенный для управления данными и их отображения.

Форма может быть создана в проектировщике форм или программно.

Формы, созданные интерактивно, записываются в файл с расширением SCX. Файл для memo-данных формы имеет расширение SCT.

Проектируемая форма, если она входит в проект, является объектом – файлом коллекции Files объекта Project и может управляться как средствами интерфейса, так программно.

Пример. Выводятся имена всех форм активного проекта, включаемых в приложение при его генерации.

oProj = _VFP.ActiveProject

for each file in oProj.Files

if Upper(file.FileClass) = 'FORM' and not file.Exclude then

? file.Name

endif

next

Исполняемая форма является объектом и модифицируется программно, то есть на этапе исполнения в нее могут быть добавлены объекты и изменены свойства формы и ее элементов управления.

Команда

CREATE FORM [FormName | ?] [AS cClassName FROM cClassLibraryName | ?]
                   [NOWAIT] [SAVE] [DEFAULT] [[WINDOW WindowName1] [IN [WINDOW]
                   WindowName2 | IN SCREEN]]

открывает проектировщик формы для ее создания.

Опции и параметры (см. также табл. 1.6):

FormName – имя файла формы. Если расширение не задано, то берется SCX. При открытии проектировщика команда учитывает установку SET SAFETY.

AS cClassName FROM cClassLibraryName | ? – создает форму на базе класса cClassName библиотеки классов cClassLibraryName. Класс cClassName должен базироваться на классе FORM. Если указать ?, то будет открыт диалог Open для выбора библиотеки классов.

DEFAULT – указывает, что проектировщик форм открывается с заданным в VFP по умолчанию шаблоном форм, замещая шаблон, заданный на вкладке Forms диалога Tools – Options.

Команда

MODIFY FORM [FormName | ?] [NOWAIT] [METHOD MethodName]
                   [NOENVIRONMENT] [SAVE] [[WINDOW WindowName1]
                   [IN [WINDOW] WindowName2 | IN SCREEN]]

открывает проектировщик формы для ее изменения или создания.

Опции и параметр (см. также табл. 1.6):

METHOD MethodName – задает событие или метод, окно с кодом которого появляется при открытии проектировщика. Параметр MethodName задается с использованием синтаксиса для объектов VFP. Так, чтобы открыть код обработчика события Click элемента управления txtFirstName в форме frmAddress, следует употребить команду

modify form frmAddress method txtFirstName.Click

Если имя элемента управления опущено

modify form frmAddress method Click

то откроется обработчик события Click самой формы.

NOENVIRONMENT – включена для совместимости с версиями 2.x; предотвращает восстановление окружения, сохраненного с формой.

В VFP окружение данных (объект DataEnvironment), ассоциируемое с формой, восстанавливается, если свойство AutoOpenTables окружения установлено в .T. (что задано по умолчанию). Окружение данных формы будет закрываться, если свойство окружения AutoCloseTables установлено в .T., что также задано по умолчанию.

При создании или изменении формы можно сохранить текущее окружение данных VFP в файле формы. При этом в этот файл будут добавлены данные обо всех открытых таблицах, индексных файлах, управляющем индексе и отношениях между таблицами.

Если в качестве имени формы нужно использовать строку, то применяется выражение с именем, например:

modify form (Home(2) + 'Solution\Controls\Timer\Swatch.scx')

Открытая форма модифицируется средствами меню Form, Format, View Edit, также при помощи панелей инструментов: FormDesigner, Layout, FormControls (рис. 10.1) и др.

152.1.-Панели-инструментов-FormDesigner-Layout-FormControls

Рис. 10.1. Панели инструментов: а – FormDesigner;
б – Layout; в – FormControls

Замечание. Примеры для форм и других объектов VFP можно просмотреть, выполнив команду

do (Home(2) + 'Solution\Solution.app')