Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Таймер.


Автор: Malish 13.3.2006, 18:28
привет!!! у меня такая проблема: Form1 выступает в моей программе как заставка, после которой через 3 секунды должна появиться Form2.

если я делаю так:

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Form1->Visible = false;
Form2->Visible = true;
Form1->Close();
}
у меня после заставки, программа выключается полностью, т.е. нет входа в Form2.
Как сделать вход во 2-ую форму, при этом полностью закрыть первую?

Автор: _hunter 13.3.2006, 19:02
Application->ShowMainForm в false поставь вместо Form1->Close();

Автор: Ctrl_Alt_Del 13.3.2006, 19:10
Form1->Hide();

Автор: Malish 13.3.2006, 19:11
_hunter, извини я немножечко не понял что куда ставить smile

так прога работает, но при нажатии на Form2 на крестик(Выход), прога через некоторое время опять заходит в Form2
Form1->Visible = false;
Form2->Visible = true;
Application->ShowMainForm = false;

Автор: Adil' 13.3.2006, 19:11
Malish, а лучше посмотри пример "$BCB5\Examples\DBTasks\MastApp\" как делать заставку.

Автор: Malish 13.3.2006, 19:17
Defucker, ты не повереш,

Form1->Visible = false;
Form2->Visible = true;
Form1->Hide();

аналогичная ситуация, прога заходит на 2-ю форму, но при нажатии на крестик(в правом верхнем углу формы) опять, спустя некоторое время перезаходит в Form2.

Автор: Stentor 13.3.2006, 19:21
На главной форме делаем так:

void __fastcall TMainForm::FormShow(TObject *Sender)
{

Splash->ShowModal();
}

// Splash (cплэш) – это заставка которая появляется перед запуском программы




На заставке (сплеше) делаем так:

//---------------------------------------------------------------------------

void __fastcall TSplash::FormCreate(TObject *Sender)
{
MainForm->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TSplash::Timer1Timer(TObject *Sender)
{
MainForm->Visible=true;
Close();
}
//---------------------------------------------------------------------------


Замени MainForm на Form2, а Splash на Form1 (или переименуй формы).

Вроде ничего не забыл...

Проверь в настройках проекта, какая форма является главной (т.е. main). В твоем случае должна это д.б. Form2.

Автор: Ctrl_Alt_Del 13.3.2006, 19:22
Malish, правильно ведь таймер срабатывает через определенный интервал циклически. Добавь еще Timer1->Enabled=false;

Автор: Malish 14.3.2006, 16:07
Stentor, прога заработала.
Спасибо огромное всем smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)