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

 
Окно при загрузке программы, Как показать окно при загрузке программы
Anton.S
  Отправлено: 16.02.2004, 12:59


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

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



Всем, привет.

Пожалуста не ворчите на чайника. Типа "почему не поискал по форуму ? такое уже было ?" Уверен, что было и пытался искать. Только руки видать совсем кривые. sad.gif До меня так и не дошел синтаксис строки поиска. Если я хочу найти целиком фразу: "при запуске программы", то как её задавать ?
--
Теперь основной вопрос.

Написана программа. Она долго загружается. И вот теперь, задним числом, захотелось, на время её загрузки вывести какое-нибудь окошко пользователю, что б не дергался, а подождал. Предполагаю, что можно сделать новое окно с требуемым сообщением, а уже в нем прописать создание основных форм, которые до этого были Autocreate. Но может есть какое-то стандартное решение ?
Dima
Отправлено: 17.02.2004, 13:21


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

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



CODE

      Application->Initialize();
      TSplashForm *form = new TSplashForm(NULL);
      form->Show();
      form->Update();
        //здесь что-то очень долго делается
      Application->CreateForm(__classid(TMainForm), &MainForm);// или здесь
      delete form;
      Application->Run();
Guest
Отправлено: 17.02.2004, 14:18


Не зарегистрирован







Спасибо, уже работает.
trigger
Отправлено: 19.02.2004, 10:29


Не зарегистрирован







QUOTE (Dima @ 17/02/2004, 14:23)
CODE

Application->Initialize();
TSplashForm *form = new TSplashForm(NULL);
form->Show();
form->Update();
//здесь что-то очень долго делается
Application->CreateForm(__classid(TMainForm), &MainForm);// или здесь
delete form;
Application->Run();

а как отредактировать эту новую сплэш форму?
т.е. после
TSplashForm *form = new TSplashForm(NULL);
она будет пустая как я понял?
так же динамически на ней что-то рисовать, указывая вручную все свойства (размер, расположение, выравнивание...), да?
Roman
Отправлено: 19.02.2004, 14:27


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

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



Можно вывести уже созданную Вами форму. Для этого в файле проекта добавляем:

#include
#pragma hdrstop
//--------------------
USEFORM("UIndikProc.cpp", FIndikProc); //Ваша форма
//---------------------------------------------------------------------------
#include "UIndikProc.h" //заголовок Вашей формы
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR lpCmdLine, int)
{
try
{
Application->Initialize();
FIndikProc = new TFIndikProc(static_cast(NULL));
FIndikProc->Show();
FIndikProc->Label1->Caption = "Любые данные";
//можно послать сообщение окну (если это было предусмотрено)
SendMessage(FIndikProc->Handle, WM_INDIKPROC, 0, 0);
SendMessage(FIndikProc->Handle, WM_CLOSE, 0, 0);
delete FIndikProc;

Application->CreateForm(__classid(TFMaine), &FMaine);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
//------------------------------------------------------------------------------

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