C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
splash, help
calloc
  Отправлено: 22.10.2005, 12:02


Ученик-кочегар

Группа: Участник
Сообщений: 5



Привет народ. Усть такой пример:


Как сделать заставку(SplashScreen) для своей программы ?

Для начала, создадим новое окно, которое у нас и будет SplashScreen.

File->New->Form.

Новую форму перенесем в Aviable forms, для этого идем в Project->Options.

Дальше подключаем к Unit1 новую форму:
#include "Unit2.h"

После этого, на новую форму, помещаем компонент TTimer.

Для него пишем такой обработчик
void __fastcall TForm2::Timer1Timer(TObject *Sender)
{
Close();
}

Дальше, пишем обработчик события для главной формы OnCreate:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Form2= new TForm2(this);
Form2->ShowModal();
Form2->Free();
}


Как сделать чтобы после закрытия Формы2 сразу появлялась Форма1??? sad.gif
vitavita
Отправлено: 22.10.2005, 21:08


Дежурный стрелочник

Группа: Участник
Сообщений: 59



А свойство Visible Вам не поможет?
BreakPointMAN
Отправлено: 22.10.2005, 22:14


Станционный диспетчер

Группа: Участник
Сообщений: 86



calloc, что именно у тебя не получается?
у меня этот пример работает...
Rius
Отправлено: 24.10.2005, 06:06


Мастер участка

Группа: Участник
Сообщений: 321



CODE
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("UnitMain.cpp", FormMain);
USEFORM("UnitDataModule.cpp", DMMain); /* TDataModule: File Type */
USEFORM("UnitModuleEdit.cpp", FModuleEdit);
USEFORM("UnitSensorLoads.cpp", FSensorLoads);
USEFORM("UnitPartyEdit.cpp", FPartyEdit);
USEFORM("UnitOptions.cpp", FormOptions);
USEFORM("RThreadPanelFlowDisplay.cpp", FFlowDisplayForm);
USEFORM("UnitSplash.cpp", FormSplash);
//---------------------------------------------------------------------------
#include "UnitSplash.h"
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
   HANDLE mHandle=0;

   mHandle = CreateEvent(NULL, FALSE, FALSE, "{0FA93D16-2656-4f2d-BC60-85C5F1F2CCDB}");
   if(GetLastError() == ERROR_ALREADY_EXISTS)
   {
       MessageBox(NULL,"Программа уже запущена!","Сообщение",MB_OK | MB_ICONINFORMATION);
       return 0;
   }

   try
   {
        FormSplash = new TFormSplash(Application);
        FormSplash->Show();
        FormSplash->Update();

        Application->Initialize();
        Application->CreateForm(__classid(TFormMain), &FormMain);
        Application->CreateForm(__classid(TDMMain), &DMMain);
        Application->CreateForm(__classid(TFormOptions), &FormOptions);
        Sleep(1000);
        FormSplash->Close();
        Application->Run();

   }
   catch (Exception &exception)
   {
        Application->ShowException(&exception);
   }
   catch (...)
   {
        try
        {
            throw Exception("");
        }
        catch (Exception &exception)
        {
            Application->ShowException(&exception);
        }
   }
   if(mHandle!=0)
       CloseHandle(mHandle); // закрываем хэндл
   return 0;
}
//---------------------------------------------------------------------------

Вернуться в Вопросы программирования в C++Builder