Aptem |
Отправлено: 10.08.2003, 06:44 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
Привет, ВСЕМ !!!
У меня такая проблема:
Мое приложение выполняет какую-то задачу, я бы хотел, чтобы пользователь в это время увидел небольшое окно, на котором, например, был бы виден ход операции и надпись типа: "Происходит загрузка данных, это займет несколько минут..."
Я знаю, что это делается с помощью потоков, не мог бы кто-нибудь подробно описать как это сделать !!!
Спасибо за внимание !!!
|
|
Георгий |
Отправлено: 10.08.2003, 12:28 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
Надо код, который "выполняет какую-то задачу" перенести в поток (см. уроки), придумать как организовать уведомление основного потока о достигнутом прогрессе, который и будет выведен пользователю. После того, как пройдёшся по граблям, ждём тебя опять... |
|
qwer115 |
Отправлено: 10.08.2003, 14:29 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 11
|
а самый простой вариант это перед началом больших вычислений, загрузки показать форму с сообщением, можно протеканием хода процесса там типа со всякими progressbar' ами и из циклов, вычислений вызывать Application->ProcessMessages() для реагирования на события полученные за время вычислений
например:
InfoForm->Show();
for(int i = 0; i < 100000; i++)
{
/* там всякие дела */
InfoForm->ProgressBar1->Progress++;
Application->ProcessMessages();
}
Отредактировано qwer115 — 10/08/2003, 15:32
|
|
SEDEGOFF |
Отправлено: 11.08.2003, 09:41 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 19
|
[CODE]
InfoForm->Show();
for(int i = 0; i < 100000; i++)
{
/* там всякие дела */
InfoForm->ProgressBar1->Progress++;
Application->ProcessMessages();
} [CODE]
Но тормозить эту будет здраво |
|