for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
   :: Помощь сайту :: 

NewObject CreateObject и Load формы
GreyCat
Автор

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

Re: NewObject CreateObject и Load формы
Igor Korolyov

Сообщений: 30362
Дата: 27.12.17 12:49:04ОтветитьЦитировать
формсеты не нужны (были нужны когда-то для конвертации 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
Автор

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



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

On-line: 29 and Guests: 29


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