:: Visual Foxpro, Foxpro for DOS
NewObject CreateObject и Load формы
GreyCat
Автор

Сообщений: 12
Дата регистрации: 06.07.2010
Потребовалось мне запустить модальную форму из окна, а потом получить результаты ее (формы) работы. Раньше для этого использовал простейшее: loWind=CreateObject("win_edit_s1")
На это раз решил сделать через FormSet с использованием метода NewObject, чтобы упростить обмен данных между формами.
Обнаружил интересную особенность. При создании формы с использованием CreateObject порядок загрузки ее обычный. При создании через NewObject метод Load формы пропускается. В описании метода ничего такого не обнаружил. Это действительно так или я чего-то упустил?
Ratings: 0 negative/0 positive
Re: NewObject CreateObject и Load формы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
формсеты не нужны (были нужны когда-то для конвертации FPD программ, и только). Крайне не советую с ними связываться.

В хелпе написано
Цитата:
All the forms and all the objects on the forms are loaded when you run the form set. Loading many forms with a number of controls might take several seconds.
Из чего, вероятно, и проистекает такое поведение - для динамически добавляемых в формсет форм не срабатывает событие Load. Разницы между методами .AddObject() и .NewObject() при этом нет.
При использовании функции Createobject() форма НЕ добавляется в формсет, а создаётся как совершенно независимая форма. То что ссылка на неё может хранится в свойстве формсета ровным счётом ни на что не влияет. ООна (ссылка) с тем же успехом может хранится в переменной, или в свойстве другого объекта - да хоть бы и какого Empty - это "хранение ссылки" НЕ является "включением объекта в состав другого объекта" - в отличие от методов .AddObject() и .NewObject() имеющихся у некоторых контейнеров, которые действительно "внутрь" помещают новый объект - в т.ч. и в его Parent прописывают ссылку на себя.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: NewObject CreateObject и Load формы
GreyCat
Автор

Сообщений: 12
Дата регистрации: 06.07.2010
Igor Korolyov
Из чего, вероятно, и проистекает такое поведение - для динамически добавляемых в формсет форм не срабатывает событие Load. Разницы между методами .AddObject() и .NewObject() при этом нет.
Спасибо Игорь. Стало более понятно. Была такая мысль, что дело именно в FormSet.
Igor Korolyov
Крайне не советую с ними связываться.
Отказался. Вернулся к своему обычному варианту набора независимых форм и вызов побочных окон через CreateObject.
Ratings: 0 negative/0 positive


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

On-line: 28 (Гостей: 28)

© 2000-2024 Fox Club 
Яндекс.Метрика