Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вылет на попытке высветить форму-заставку [D6, Win95/98]


Страницы:   1 2

MsGuns ©   (2002-08-27 20:02:00) 

Ситуация банальная. Есть осн.форма (Например, MainForm), которая криэйтится довольно долго из-за большого кол-ва разных проверок (инициализация БД и прочее). Хотел для услады глаз юзера на время создания этой формы показать другую (Допустим, MiscForm), которая просто содержит красивый пикчер и запускает невидимый медиаплейер с неким звуковым файлом. Так вот, при попытке закриэйтить и запустить MiscForm из MainForm дает ексепшн.
В конце обработчика MainForm.OnCreate я останавливаю плейер и убиваю эту форму. Но до этого не доходит..
В чем я не прав ?


MsGuns   (2002-08-27 21:01:00) [21]

>DenKop
По Activate - это понятно, а как по OnCreate ?
Есть, конечно такой выход:
Создать Misc как основную форму, а из нее шарить Main, но как-то это костляво, что ли.. Неужели нет решения ?


wicked   (2002-08-27 20:53:00) [22]


> Так вот, при попытке закриэйтить и запустить MiscForm из
> MainFormдает ексепшн

скорей всего, ошибка здесь...


DenKop   (2002-08-27 20:52:00) [23]

Конкретного ответа на вопрос не знаю, так как не понял сути, но я делаю это так примерно так:

LogoForm.Tag в Design Time должно быть обнулено.

procedure TMainForm.FormActivate(Sender: TObject);
begin
if LogoForm.Tag=0 then {На случай если OnActivate возникнет ещё раз}
begin
MainForm.Enabled:=False;{Это чтобы зловещие ручки пользователя не наделали чего плохого во время инита}
LogoForm.Show;
LogoForm.Tag:=1;
Application.ProcessMessages;
.........
{Здесь выполняешь громоздкие во времени операции}
LogoForm.Close;
MainForm.Enabled:=True;{Восстанавливаем главную форму}
end;
end;


oomneeq   (2002-08-27 20:34:00) [24]

Пока не выполнен Аpplication.Run не запущен главный цикл обработки сообщений - основа всех гуевых вин-приложений.
А у тебя очевидно MiscForm пытается сделать то, для чего этот самый цикл необходим.
Проверить эту догадку можно убрав из МiscForm всю начинку
(MEdiaplayer)


Anatoly Podgoretsky   (2002-08-27 20:31:00) [25]

У тебя ошибка в 17 строке


MsGuns   (2002-08-27 20:16:00) [26]

>Mikhail

> Да в чем угодно

Вот это ответ !!! Я просто сражен ! Наповал !


Mikhail   (2002-08-27 20:09:00) [27]

Да в чем угодно


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо