Здравствуйте, Аноним, Вы писали:
А>Задача: По нажатию Кнопки показать окно с надписью "Подождите, плиз" и выполнить каку-то функцию. По завершению функции окно спрятать.
А>Делаю так: А>MainForm::OnClick(...){ Wait->>Show(); А> SomeFunc(); Wait->>Hide(); А>}
{...}
Может, надо просто в твою процедуру вставить обработку сообщений приложения.
В дельфи — Application.processMessages.
Здравствуйте, Аноним, Вы писали:
А>Задача: По нажатию Кнопки показать окно с надписью "Подождите, плиз" и выполнить каку-то функцию. По завершению функции окно спрятать.
А>Делаю так: А>MainForm::OnClick(...){ Wait->>Show(); А> SomeFunc(); Wait->>Hide(); А>}
А>Форма Wait появляется но ее дети(даже обычная подпись) не отображается...
А>как правильно это реализовать??
А>MainForm::OnMouseDown(...){ Wait->>Show(); А>}
А>MainForm::OnMouseUp(...){ А> SomeFunc(); Wait->>Hide(); А>} А>Так работает — но это очень уж коряво...
В общем как делал я. (пишу по памяти)
примерно так:
MainForm::OnClick(...){
const auto_ptr<TFormMy*> Wait = new TFormMy(NULL);
Wait->Show();
Application->ProcessMessages();
LockWindow(Wait->Handle); // посмотри как точно называется эта API функция
SomeFunc();
LockWindow(NULL);
}
Фикус в том, что ты не даешь форме перерисовываться по время выполнения SomeFunc();
Re[2]: Проблема с дочерней формой...
От:
Аноним
Дата:
04.05.05 08:59
Оценка:
Здравствуйте, tinytjan, Вы писали:
T>Здравствуйте, Аноним, Вы писали:
А>>Задача: По нажатию Кнопки показать окно с надписью "Подождите, плиз" и выполнить каку-то функцию. По завершению функции окно спрятать.
А>>Делаю так: А>>MainForm::OnClick(...){ Wait->>>Show(); А>> SomeFunc(); Wait->>>Hide(); А>>}
T>{...}
T>Может, надо просто в твою процедуру вставить обработку сообщений приложения. T>В дельфи — Application.processMessages.
Здравствуйте, <Аноним>, Вы писали:
А>Задача: По нажатию Кнопки показать окно с надписью "Подождите, плиз" и выполнить каку-то функцию. По завершению функции окно спрятать.
А>Делаю так: А>MainForm::OnClick(...){ Wait->>Show(); А> SomeFunc(); Wait->>Hide(); А>}
А>Форма Wait появляется но ее дети(даже обычная подпись) не отображается...
А>как правильно это реализовать??
А>MainForm::OnMouseDown(...){ Wait->>Show(); А>}
А>MainForm::OnMouseUp(...){ А> SomeFunc(); Wait->>Hide(); А>} А>Так работает — но это очень уж коряво...