|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Delphi 7.0 |
|
Delphi - Delphi 7.0
|
Engrossed by the Void Сообщения: 2229 |
Цель - создание окошка содержащее картинку и отображающее процесс запуска программы (как это делается при старте PhotoShop'а).
Имеем - форму frmSplashScreen (не автосоздаваемую) с размещенным на ней экземпляром TImage (imgSplash) и загруженной в него картинкой. На форме имеется также экземпляр TLable (lInfo) куда будем писать информацию о выполняемой работе на этапе загрузки программы (можно было бы выводить прямо на канву, но пусть так будет). Вся работа по инициализации выполняется в обработчике события OnCreate главной формы frmMain (которое до поры, до времени невидимо - Visible:=False), откуда на различных этапах по идее в frmSplashScreen.lInfo.Caption записываются различные строки отражающие идущую работу. Реализация - файл проекта Project.dpr: Begin Application.Initialize; With TfrmSplashScreen.Create(nil) do Try Application.Title := 'Title'; Show; Update; Application.CreateForm(TfrmMain, frmMain); Finally Free; End; frmMain.Visible:=True; Application.Run; End. frmSplashScreen.lInfo.Caption:='Инициализация регистров...'; frmSplashScreen.lInfo.Refresh; InitRegisters(Regs); frmSplashScreen.lInfo.Caption:='Инициализация файлов проекта...'; frmSplashScreen.lInfo.Refresh; InitFile; При проходе в режиме отладки в окне Watch переменная frmSplashScreen имеет значение nil. Это странно в то время как на этапе создания главной формы frmSplashScreen еще не уничтожена. Это следует из того, что frmSplashScreen видна все то время, пока в обработчике события OnCreate главной формы идет подготовительная работа. Итого - SplashScreen реализован, но не до конца - нельзя записывать в него уточняющую информацию об этапах инициализиции. Вопрос - что подскажите, господа? [s]Исправлено: Prisoner, 6:41 8-10-2003[/s] |
|
------- Отправлено: 05:38, 08-10-2003 |
Пользователь Сообщения: 61
|
Профиль | Отправить PM | Цитировать У меня есть альтернативный вариант показа сплэш скрина:
Делаешь новую форму, размещаешь на ней все, что угодно, и при запуске программы на событие главной формы OnShow делаешь вот так SplashScreen.ShowModal; У тебя показивается сплэш форма, а главная форма не показывается пока не закроется сплэш..... А дальше делаешь все как ты делал. Изюминка этого метода - простота!!!! Не надо лазить по Project.dpr и нет никакого гемороя!!!! Сам так всегда делаю..... Если будут проблемы пиши.... |
Отправлено: 11:13, 08-10-2003 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Spiderman
Хм... а порядок создания форм какой в таком случае? Или форма Splash создается там же в OnShow? Оки попробую, в самом деле просто... |
------- Отправлено: 13:35, 08-10-2003 | #3 |
Пользователь Сообщения: 61
|
Профиль | Отправить PM | Цитировать Порядок создания форм не имеет значения!!!!
Дело вот в чем, сначала ведь все формы создаются, а потом показиваються, так ведь? Вот, у тебя формы создадуться, а потом наступит евент OnShow, вот он и покажет твой сплеш! ![]() |
Отправлено: 13:35, 09-10-2003 | #4 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Естественно у тебя буде вылетать Access vialation, сам подумай, ведь ты свой splash создаешь локально и естественно твоя frmMain о нем ничего не знает, поэтому нужно этот splash перевести в зону видимости frmMain, например введи "переменную" типа TForm в frmMain, далее после создания splasha присвой его этой переменной и далее работай в frmMain с этим объектом как со splash.
|
|
Отправлено: 05:32, 10-10-2003 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Delphi - Delphi | UpperCase на Delphi 7 | Cognolio | Программирование и базы данных | 3 | 26-01-2006 15:42 | |
Delphi - Delphi | Surround | Программирование и базы данных | 11 | 10-01-2004 22:13 | |
Delphi - Delphi | Zx | Программирование и базы данных | 3 | 27-08-2003 10:19 | |
Delphi - Delphi | Roman Go | Программирование и базы данных | 9 | 25-12-2002 15:48 | |
Delphi - Delphi | Roman Go | Программирование и базы данных | 11 | 11-12-2002 14:43 |
|