Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2009, 09:57   #1
Oleg Romanchuk
Ghost
Форумчанин
 
Аватар для Oleg Romanchuk
 
Регистрация: 16.08.2007
Сообщений: 143
Печаль Проблема при организации формы загрузки...

Всем добрый день, появилась такая проблемка...

Пишу в Project>View Source


Код:
begin
  SplashForm := TSplashForm.Create(nil);
  Application.Title:='Áàçà Äàííûõ';

  SplashForm.Show;
  SplashForm.Repaint;


  Application.Initialize;


  Application.CreateForm(TMainModule, MainModule);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TPassForm, PassForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TOptionForm, OptionForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TAddFIOForm, AddFIOForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TAddForm, AddForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TMyInfForm, MyInfForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TAddMoreInfForm, AddMoreInfForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TUserEditProgForm, UserEditProgForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;


  Application.CreateForm(TMyMainForm, MyMainForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  SplashForm.Free;
  SplashForm.Hide;
  Application.Run;
Application.CreateForm(TPassForm, PassForm);
Именно после этой строчки появляется форма PassForm, при этом SplashForm ещё видна на экране до того кода, пока форма не уничтожается и в прогресс баре идет загрузка. Почему так происходит? И как это исправить?
Oleg Romanchuk вне форума Ответить с цитированием
Старый 23.03.2009, 10:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Чет я не понял какую ты последовательность появления форм хочеш...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.03.2009, 10:23   #3
Oleg Romanchuk
Ghost
Форумчанин
 
Аватар для Oleg Romanchuk
 
Регистрация: 16.08.2007
Сообщений: 143
По умолчанию

последовательность такую, же... но надо что бы PassForm появлялась после того как Splash форма уничтожиться, раньше было вроде все нормально, теперь вот такая фигня...)

Вот измененный код, все работает правильно кроме того что вместе с пассформ появляется Application.CreateForm(TOptionForm, OptionForm); как это можно исправить...

Код:
  SplashForm := TSplashForm.Create(nil);
  Application.Title:='База Данных';

  SplashForm.Show;
  SplashForm.Repaint;


  Application.Initialize;

  Application.CreateForm(TMainModule, MainModule);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;



  Application.CreateForm(TOptionForm, OptionForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TAddFIOForm, AddFIOForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TAddForm, AddForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TMyInfForm, MyInfForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TAddMoreInfForm, AddMoreInfForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  Application.CreateForm(TUserEditProgForm, UserEditProgForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;


  Application.CreateForm(TMyMainForm, MyMainForm);
  SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
  Application.ProcessMessages;

  SplashForm.Free;
  SplashForm.Hide;

  Application.CreateForm(TPassForm, PassForm);
  //SplashForm.ProgressBar.Progress := SplashForm.ProgressBar.Progress + 1;
 // Application.ProcessMessages;

  Application.Run;

Последний раз редактировалось Stilet; 23.03.2009 в 10:45.
Oleg Romanchuk вне форума Ответить с цитированием
Старый 23.03.2009, 10:48   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Выставь в дизайнере для всех форм изначально Visible=False

Или перенеси создание остальных форм в обработчики формы PassForm. Пусть она будет главная, и пусть создает все остальные.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при загрузки изображения Volkogriz Общие вопросы Delphi 13 13.01.2009 01:51
Проблема при использовании модальной формы a1ias Помощь студентам 10 14.11.2008 17:29
Сбой загрузки компонет при старте Delphi 2007 dimfil Компоненты Delphi 2 22.11.2007 12:55
косяк при организации итерационных вычислений redfield Microsoft Office Excel 3 04.09.2007 21:35
При создании формы! Anton Помощь студентам 4 08.08.2007 08:20