|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.01.2008, 13:41 | #1 |
Пользователь
Регистрация: 10.08.2007
Сообщений: 13
|
Использование потоков
Господа, имеется две формы одна основная, вторая второстепенная. Вторая форма выполняет роль предзагрузчика или заставки перед появлением первой. Проблема состоит в том что первая форма очень долго загружается,
и я хочу вынести процесс её создания в отдельный поток, который будет вызываться из предзгрузчика.В то же самое время на форме предзагрузчика будет отображатся (в виде прогресс бара, или текстовых сообщений) этапы создания основной формы. Вопоросы: 1) Вообще, возможно ли это? 2) Существуют ли способы получше? |
23.01.2008, 13:48 | #2 |
Форумчанин Подтвердите свой е-майл
Регистрация: 20.11.2007
Сообщений: 500
|
Сделать можно. И все наверное так и делают! Вот запусти фотошоп, там на заставке будут перечислятся загружаемые модули... про потоки написано в статье, которую я прикрепил!
Последний раз редактировалось Никки; 23.01.2008 в 13:51. |
23.01.2008, 14:24 | #3 |
Пользователь
Регистрация: 11.12.2007
Сообщений: 94
|
можно и без потока обойтись как я понял форма у тебя уже есть( назовем ее LoadingForm)
в файле проекта сразу после Application.initialize; нужно добавить: Код:
Код:
-Сколько будет 2х2=4?
-TRUE |
23.01.2008, 15:44 | #4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Ну, это вы один из вариантов простой заставки описали...
Тут, пожалуй, нужно создание полноценной формы, управляющей процессом загрузки основной формы. То Repz. Ваш подход совершенно верен - нужно создать формочку-заставку, которая будет поочередно вызывать и отображать на себе процесс создания главной формы. В принципе, вы в ней просто должны перечислить все то, что у вас должно идти в событии ONCREATE главной формы (оттуда, естественно, все убирается). Ну, примерно так ваша заставка должна работать: - делаем простой CREATE главной формы из заставки (т.е. CREATE и больше ничего у нее (у MAIN) в этом событии не должно быть); - производим все нужные для нее подготовительные операции, с отображением на прогресс-баре, лэйбле - это уж от вашей фантазии зависит... Но каждая операция инициируется из заставки и вы тут же отображаете инфу об этом (например, "Открываем таблицу покупателей, ждите..."). - в конце-концов убиваем форму-заставку и передаем управление главной форме. Ей к этому моменту осталось только отобразиться... Последний раз редактировалось mihali4; 23.01.2008 в 15:47. |
25.01.2008, 13:38 | #5 |
Пользователь
Регистрация: 10.08.2007
Сообщений: 13
|
Спасибо всем за ответы.
Ещё один под_вопрос, я хочу сделать так: в событии OnCreate формы предзагрузчика я создаю поток, а в самом потоке пишу что-то типа application.CreateForm(TFrm_Main, frm_Main). Причём в событии OnCreate формы frm_Main, после выполнения определённых этапов хочу посылать информацию о выполнение этих самых этапов на форму предзагрузчик (например frm_pre_load.label1.caption:='Идёт загрузка прайса...'). Реально ли это? |
25.01.2008, 13:55 | #6 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Непонимаю чем сложно присвоить Caption то что хотите, а потом вызвать Application.ProcessMessages; И будет Вам щастье.. зачем потоки еще
|
25.01.2008, 14:20 | #7 |
Пользователь
Регистрация: 10.08.2007
Сообщений: 13
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Глобальны переменные для потоков | PM85 | Общие вопросы C/C++ | 3 | 15.04.2008 18:12 |
Несколько потоков | Adm | Общие вопросы Delphi | 13 | 18.01.2008 20:04 |
Перенаправление потоков | Carbon | Win Api | 5 | 25.11.2007 14:46 |
Дескрипторы потоков - Для каждого элемента списка необходимо создать поток, выполняющий требуемые функции | kdv0403 | Общие вопросы Delphi | 2 | 09.06.2007 11:12 |