Евгений |
Отправлено: 17.03.2005, 22:25 |
|
Не зарегистрирован
|
Подскажите, пожалуйста, как сделать так, чтобы сначала отображалась Splash Form а затем главное окно приложения.?
(у меня сейчас вместе с Splash Form на заднем фоне сразу отбражается главное окно приложения)
Как можно это решить?? |
|
Gedeon |
Отправлено: 18.03.2005, 08:58 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
1) Если главная форма создается быстро, то сплэш показывать модально и прятать через нужный интервал, как делать см. поиск;
2) Если сплэш показывается на то время пока создается главная форма, опять же см. поиск.
Короче ищите по форуму уже раз 5 обсуждали.
|
|
Valdemar |
Отправлено: 18.03.2005, 08:59 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
Посмотрите здесь
И пользуйтесь поиском. |
|
olegenty |
Отправлено: 18.03.2005, 10:47 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
2 Gedeon:
QUOTE |
1) Если главная форма создается быстро, то сплэш показывать модально ...
|
блин, ну рискни показать модально. результат тебя по недетски впечатлит.
|
|
olegenty |
Отправлено: 18.03.2005, 10:55 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
2 Gedeon — пардон, торможу...
просто я сам совмещаю два этих метода: сплэш всегда показывается во время создания форм и модулей, но НЕ МЕНЕЕ 3-х секунд. т.е. я перед показом время сохраняю, а после создания всех форм запускаю цикл:
CODE |
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
TfmSplash *f = new TfmSplash(NULL);
f->Show();
f->Update();
TDateTime dtStart = TDateTime::CurrentDateTime();
Application->Title = "Спецификация плановых изделий";
Application->CreateForm(__classid(Tfm), &fm);
TDateTime dtNow = TDateTime::CurrentDateTime();
while (MilliSecondsBetween(dtStart, dtNow) < 3000)
{
Application->ProcessMessages();
dtNow = TDateTime::CurrentDateTime();
}
f->Hide();
delete f;
SendMessage(fm->Handle, CM_INIT_COMPLETE, 0, 0); // на это не обращайте внимания
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
|
|
|
Gedeon |
Отправлено: 18.03.2005, 11:34 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Ну я, кстати, тоже, лучше не модальной, а все же поверх всех, ну и хрен с ним, что видно заднюю форму, зато пока сплеш показывается, все проинициализируется и создастся (так в фотошопе например). Можно еще главную форму запускать невидимой, а потом при уничтожении сплеша показывать.
|
|