PDA

Показать полную графическую версию : Инофо о программе при запуске


Galosh
25-05-2003, 12:25
Короче нужно сделать, что при запуске программы выводилось окошечко(как допустим при запуске Ворда) в котором была информация о программе( тоесть что это и зачем) Чтоб заставка посветила секунды 2 и исчезла, после этого запускалась сама программа. Не знаю как это сделать. Пытался делать чтоб заставка была как бы главной формой и через переод времени Form1->visible=false; а потом вызывалсь доп. форма. Но это не то, нужно чтоб она закрывалась, а не скрывалась из виду. Помогите люди добрые хоть какимито намеками(можна с кусочками кода :) ). Заранее благодарен.

DimSher
26-05-2003, 05:29
Galosh
Я бы делал так:
при запуске главная форма делается скрытой (Visible:=false) и  на событие Form.Сreate пишешь процедуру.
В ней конструируешь форму с необход. информацией и таймером. Выставляешь свойство Interval (для обьекта Timer) в миллисекундах (по вкусу :biggrin: ) и закрываешь форму. Всё.

Megabizon
26-05-2003, 08:23
Если пишешь на Билдере, смотри пример в ...\Examples\DB Tasks\MastApp. Такое окно называется SplashScreen. :biggrin:

Boss Linuxoid
26-05-2003, 19:24
Galosh


Не забудь присвоить етому окошку borderstyle:=bsnone;

Galosh
27-05-2003, 00:26
Dmitry Sher Так и сделал, пасибо.
Megabizon Не нашел... :(

Megabizon
27-05-2003, 09:32
Megabizon Не нашел...
Не нашел что? Пример или форму в примере?
Кратенько это выглядит так:
Создаешь форму, устанавливашь стиль, например, как сказал XXBossXX. Делаешь эту форму Available forms в Project->Options, в срр проекта добавляешь код (там где функция Winmain)

#include "splash.h"// прописываешь сам

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
* * try
* * {
* * * SplashForm = new TSplashForm(Application);//Создаешь рекламное окно
* * * SplashForm->Show();//Показываешь
* * * SplashForm->Update();//Обновляешь
* * * Application->Initialize();
* * * Application->CreateForm(__classid(TMainForm), &MainForm);
* * * .......... // тут создаются другие формы (если есть таковые)
* * * SplashForm->Hide();//Прячешь
* * * SplashForm->Close();//Прибиваешь
* * * Application->Run();
* }
* catch (Exception &exception)
* {
* * * Application->ShowException(&exception);
* }
* * * return 0;
}

PS. Чем мне нравиться этот метод, что при таком создании окна оно закроется перед показом главного. Можно делать и по таймеру, но здесь есть маленькое но... На слишком "шустрых" машинах может получиться так, что главная форма у же отобразилась, а Сплэш-окно еще висит, а на медленных наоборот окно может закрыться а главное появиться только через пару секунд. Хотя это дело вкуса какой ты способ выберешь. И тот и другой способ вполне нормальные, дело за тобой.




© OSzone.net 2001-2012