Отображение формы, созданной программно VFP
« Назад Получим прежде ссылку на объект oForm формы: oForm = CreateObject("Form") Отобразить форму (сделать ее видимой) позволяет ее метод Show или свойство Visible: oForm.Show && или: Form.Visible = .T. Однако две строки кода oForm = CreateObject("Form") oForm.Show не приведут к появлению формы. Точнее она пропадет сразу после появления. Устранить этот недостаток можно, объявив переменную oForm как глобальную: public oForm oForm = CreateObject("Form") oForm.Show либо использовав команду READ EVENTS, начинающую обработку событий: on key label Alt+F1 clear events oForm = CreateObject("Form") oForm.Show read events wait "Обработка событий завершена" window nowait Приведенный код гарантирует, что обработка событий будет завершена после нажатия на Alt+F1. Команды READ EVENTS и CLEAR EVENTS употребляются при организации приложения в виде исполняемого EXE-файла (см. команду BUILD EXE). Форма будет запущена без главного окна VFP, если ее свойству ShowWindow присвоить значение 2, а свойству Visible главного окна – .F. Поскольку на этапе исполнения свойство ShowWindow доступно только для чтения, то для достижения первой цели придется либо создать форму средствами проектировщика, либо ввести новый класс, например SomeForm, в котором определить значение рассматриваемого свойства: on key label Alt+F1 clear events _SCREEN.Visible = .F. oForm = CreateObject("SomeForm") oForm.Show read events define class SomeForm as Form ShowWindow = 2 endDefine Если форма запускается модально (переход в другие окна запрещен), то можно обойтись двумя операторами oForm = CreateObject("Form") oForm.Show(1) && Показываем форму модально Замечание. Форма не будет создан, если событие Load вернет .F. При этом событие Destroy формы не выполняется. |