Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Как узнать окончание загрузки формы и всех элементов на ней?  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
Доброго времени!
Собственно есть достаточно много элементов на форме которые берут данные из таблиц (например сложный грид, тривью и еще порядочек курсоров), и эта форма загружается главной.
Хочу сделать так чтоб в начале запуска этой формы появлялось "load-окно", а после полной загрузки формы и контролов чтоб оно исчезало.
26 янв 09, 12:26    [6735535]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать окончание загрузки формы и всех элементов на ней?  [new]
XAndy
Member

Откуда: Киев
Сообщений: 326
Ну так высветить вспомогательное окно где-то в начале Load(), а убрать в Activate()
26 янв 09, 14:49    [6736807]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать окончание загрузки формы и всех элементов на ней?  [new]
Владимир СА
Member

Откуда:
Сообщений: 7882
А лучше в событии INIT формы.
26 янв 09, 14:56    [6736866]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать окончание загрузки формы и всех элементов на ней?  [new]
Dima T
Member

Откуда:
Сообщений: 15297
Тормоз скорее всего из-за наполнения тривью. Если данных для него много и его сразу наполнять целиком, то это долго.
Как вариант - сделать наполнение только видимых узлов, а остальное донаполнять по мере открытия узлов. Тогда тормозов будет гораздо меньше и "load-окно" может вообще не понадобится.
26 янв 09, 16:01    [6737400]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать окончание загрузки формы и всех элементов на ней?  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
Dima T
Тормоз скорее всего из-за наполнения тривью. Если данных для него много и его сразу наполнять целиком, то это долго.
Как вариант - сделать наполнение только видимых узлов, а остальное донаполнять по мере открытия узлов. Тогда тормозов будет гораздо меньше и "load-окно" может вообще не понадобится.

нее, тривью как раз наполняется оч быстро, я и сделал только видимы и второй уровень, но он маленький
а вот грид да, там целая куча комбиков
26 янв 09, 18:47    [6738779]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать окончание загрузки формы и всех элементов на ней?  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
еще делал вызов лоад-окна в load формы и закрытие в конце init формы, все равно фигня получается..
26 янв 09, 18:50    [6738789]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать окончание загрузки формы и всех элементов на ней?  [new]
Dima T
Member

Откуда:
Сообщений: 15297
Imperous
еще делал вызов лоад-окна в load формы и закрытие в конце init формы, все равно фигня получается..

DOEVENTS FORCE добавь после вызова лоад-окна - иначе оно не отрисуется или с задержкой покажется.
27 янв 09, 07:39    [6739847]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать окончание загрузки формы и всех элементов на ней?  [new]
Dima T
Member

Откуда:
Сообщений: 15297
Как вариант, чтобы DOEVENTS не использовать (могут быть побочные эффекты) - вызываешь изначально лоад-форму, а она после появления на экране тормозформу:
лоадформа.Activate()
do form tormoz
thisform.Release()

Или чуть посложнее: Лоад форма в Activate() только вызывает твою тормозформу. (только проверку на запрет повторного запуска сделай), Тормозформа по окончании загрузки закрывает лоадформу. В Init() или Activate()
27 янв 09, 07:49    [6739853]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать окончание загрузки формы и всех элементов на ней?  [new]
прошелмимо
Member [заблокирован]

Откуда: Из Курска понаехал
Сообщений: 10363
а так-ли нужна монстр-форма?
в статусбар не достаточно вывести сообщение
"Ждите ... Идет загрузка формы ...", а последней командой в инит формы поставить
_vfp.Statusbar=""

или боитесь, что пользователь не увидит сообщение?
зачем формами мелькать перед глазами?
27 янв 09, 09:12    [6740007]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать окончание загрузки формы и всех элементов на ней?  [new]
Dima T
Member

Откуда:
Сообщений: 15297
прошелмимо
в статусбар достаточно вывести сообщение ...

Кстати, еще есть WAIT "Подождите, идет загрузка ..." WINDOW NOWAIT
а в конце WAIT CLEAR
27 янв 09, 09:24    [6740045]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать окончание загрузки формы и всех элементов на ней?  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
у меня одна форма (главная) и я не использую screen, вот поэтому я и хочу при загрузке показывать load-форму...
т.е.
1. главную форму ставлю в визибл = ф
2. показываю load-форму
3. когда главная загрузилась, выставляю главной визибл = т и прячу load-форму
28 янв 09, 14:48    [6748414]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить