Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

Визуализация длительной загрузки   Найти похожие ветки 

 
Ega23 ©   (2006-07-27 18:04) [0]

Программа достаточно долго (секунд 20-30) грузится. Из БД читается куча параметров, идёт инициализация и т.п.
Хочется сделать что-нибудь, типа сплэш-формы с отображением статуса загрузки (в текстовом виде):
- Загрузка модели из БД
- Инициализация графики
и т.п.

Вижу это так: есть поток, в котором, собственно, сплэш-форма; есть критическая секция, которую поток опрашивает. Если находит новый текст - кладёт на сплэш-форму.
Из основного потока, по мере инициализации данных, идёт отписка сообщений через ту же крит.секцию.

Правильной дорогой иду, или можно проще сделать?


 
Сергей М. ©   (2006-07-27 18:11) [1]

Если сплэш-форма - это VCL-форма, то доп.поток здесь теряет всяческий смысл.


 
Ega23 ©   (2006-07-27 18:14) [2]

А как лучше?


 
Desdechado ©   (2006-07-27 18:15) [3]

здесь тупо в лоб, но вроде должно дышать
 oMsgConnect:=MessageWait(rc_ConnectMsg);
 Application.CreateForm(TMyDataModule, MyDataModule);
 Application.ProcessMessages;
 if oMsgConnect<>nil then
   oMsgConnect.Release;
 if not Application.Terminated then
   Application.CreateForm(TfrmMain, frmMain);
 Application.ProcessMessages;
 if not Application.Terminated then
   Application.ShowMainForm:=True;
 Application.Run;


 
Юрий Зотов ©   (2006-07-27 23:09) [4]

> Ega23 ©   (27.07.06 18:04)  

1. Есть поток, в котором сплэш-окно (не форма VCL). Это обеспечит и нормальную работу окна, и его перерисовку "без задержек".

2. Основной поток по мере загрузки шлет сплэш-окну сообщение, передавая через него текст. Получив его, сплэш-окно отображает этот текст в какой-то своей области.

3. По окончании загрузки основной поток убивает сплэш-окно и его поток.


 
Юрий Зотов ©   (2006-07-27 23:25) [5]

> Ega23 ©   (27.07.06 18:04)  

Еще момент - есть смысл поместить-сплэш окно и его поток в DLL. Поскольку после запуска основного окна они уже не будут нужны.


 
Ega23 ©   (2006-07-28 09:04) [6]


> Есть поток, в котором сплэш-окно (не форма VCL).


Вот это хотелось бы по-подробнее. Конкретно - если "не форма VCL", то что?


 
Сергей М. ©   (2006-07-28 09:08) [7]


> если "не форма VCL", то что?


Окно, созданное, например, средствами "чистого WinAPI".


 
@!!ex ©   (2006-07-28 09:13) [8]

В таких случаях просто создавал окно. Средствами WinAPI.
И перерисовывал его в какие то ключевые участви загрузки с новым текстом.


 
Ega23 ©   (2006-07-28 09:15) [9]


> кно, созданное, например, средствами "чистого WinAPI".


Дайте ссылку какую-нить, где подробно почитать об этом можно. А то я с чистым API практически дел не имел никогда.
Или пример кода, я по нему сам разберусь.


 
Ega23 ©   (2006-07-28 09:16) [10]

Тьфу, ничего мне не надо. Это я туплю с утра "нипадецки".

Большое спасибо всем откликнувшимся.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.034 c
1-1152112966
oleggar
2006-07-05 19:22
2006.08.20
поисковик в Делфи


15-1153918841
Felian
2006-07-26 17:00
2006.08.20
Посоветуйте пожалуйста что-то для любителей криптографии


2-1154011575
Footballer
2006-07-27 18:46
2006.08.20
Как с помощью Delphi узнать номер процессора на компе?


2-1154336912
Der Nechk@ssoff
2006-07-31 13:08
2006.08.20
Random


2-1153999311
learner
2006-07-27 15:21
2006.08.20
Порядок объявления переменных.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский