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


Автор: MOFA 5.2.2007, 21:19
Подскажите, как после запуска главной формы сразу запустить еще одну, ну например как это делается в программах, которые после запуска выводят окно с подсказками или советами.

Автор: FFFFFFF7 5.2.2007, 21:36
в OnCreate() пиши ShellExecute()...

Автор: MOFA 5.2.2007, 21:48
А можно подробнее, желательно с примером куска кода.

Автор: Anikmar 5.2.2007, 22:22
FFFFFFF7, я думаю тут речь не о запуске другого приложения, все гораздо проще.

Просто MyForm->Show() в событии OnShow - получатся сразу две формы на экране...

А если с подсказкой - то сразу можно открыть окно с помощью...

Автор: FFFFFFF7 5.2.2007, 23:22
ааа... Да, возможно, моя промахнулась =)
Цитата(MOFA @  5.2.2007,  21:19 Найти цитируемый пост)
 которые после запуска выводят окно с подсказками или советами.

Только они тогда ShowModal()

Автор: Anikmar 5.2.2007, 23:35
Цитата(FFFFFFF7 @  5.2.2007,  23:22 Найти цитируемый пост)
Только они тогда ShowModal() 

А вот это надо у автора вопроса уточнить. Как надо, модально или нет и вообще, конкретно, что нужно...

Автор: MOFA 6.2.2007, 00:02
Вы не поверете, но все выше сказанное я перепробовал до этого, ничего из этого не работает почемуто.

Автор: Anikmar 6.2.2007, 00:05
Цитата(MOFA @  6.2.2007,  00:02 Найти цитируемый пост)
Вы не поверете, но все выше сказанное я перепробовал до этого, ничего из этого не работает почемуто. 

Код в студию

Автор: MOFA 6.2.2007, 00:25
Код

#include <vcl.h>
#pragma hdrstop
#include "HelpUnit.h"
#include "MainUnit.h"
#include "SplashUnit.h"
#pragma package(smart_init)
#pragma resource "*.dfm"

TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::FormShow(TObject *Sender)
{
   //Splash->ShowModal();
   HelpForm->Show();
}
//---------------------------------------------------------------------------


void __fastcall TMainForm::FormCreate(TObject *Sender)
{
   //HelpForm->Show();
}
//---------------------------------------------------------------------------


Если ставить в Create, то при запуске возникает ошибка, если же в Show, то насколько я понял HelpForm перекрывается главным окном.
Если же юзать не просто Show(), а модальный, то окно HelpForm появляется, но главное окно только после его закрытия.

Автор: Anikmar 6.2.2007, 00:31
Цитата(MOFA @  6.2.2007,  00:25 Найти цитируемый пост)
то насколько я понял HelpForm перекрывается главным окном.

Если пользователь обязан увидеть окно помощи можно задать стиль StayOfTop - тогда оно будет поверх главной формы.

Второй способ - активировать окно помощи (сделать активным) в событии OnActivate главной формы.

Третий способ (на мой взгляд сложный, но я его на форуме видел) активировать окно помощи по таймеру.


Автор: MOFA 6.2.2007, 00:41
Спасибо, сделал первым способом, помоему он лучше всего подходит в данном случае.
А с таймером я тоже сделал но заставку перед запуском.

Автор: HappyLife 6.2.2007, 13:31
MOFA, 
По-моему для заставки перед запуском таймера быть не должно.
Чем меньше видна заставка тем лучше) В программах обычно вовремя этой заставки загружаются все необходимые модули.

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