如何制作启动封面?

adventurezl 2003-05-06 08:44:30
rt
...全文
38 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyy1020 2003-05-06
  • 打赏
  • 举报
回复
BCB数据库方面的例程中有,在mastapp子目录下。

http://www.csdn.net/cnshare/soft/11/11463.shtm
adventurezl 2003-05-06
  • 打赏
  • 举报
回复
to c12916(cyh) :
1。不论USEFORM();去掉还是保留,都必须手工添加头文件:#include "SplashForm.h".否则报错
2。一定不能用用FormLogo->ShowModal();代替FormLogo->Show();
否则FormLogo不手动关闭,则一直出现,其余的程序也不运行了
adventurezl 2003-05-06
  • 打赏
  • 举报
回复
各位老大说得都不错。我现在有一个LoginForm和主form,我希望在主form出现之前,先出现LoginForm,只有用户正确输入用户名和密码后,才出现主form。我是在主form的OnCreate事件中,动态创建LoginForm的,如下:
void __fastcall TfrmKMMain::FormCreate(TObject *Sender)
{
//先判断dmClient上的ADOConnection有没有连接,若没有 ,则不创建登录窗体
if (dmClient->ADOConnection1->Connected)
{
frmLogin=new TfrmLogin(Application);
frmLogin->ShowModal();
SnAdvancedPanel4->Height=285;
}
else
Application->Terminate();
}
然后在LoginForm中,判断用户的输入,正确后调用frmKMMain->ShowModal();

现在的问题是,如果我如下使用的话:当LoginForm出现的时候,封面窗体仍然存在。怎么解决?
如果我希望主窗体出现后,再出现LoginForm,怎么处理?(需要在什么事件里写?)
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
frmSplashForm =new TfrmSplashForm(Application);
frmSplashForm->Show();
frmSplashForm->Update();
Application->CreateForm(__classid(TdmBBS), &dmBBS);
Application->CreateForm(__classid(TdmClient), &dmClient);
Application->CreateForm(__classid(TfrmKMMain), &frmKMMain);
delete frmSplashForm;
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}

只要能解决,每个人都有份
c12916 2003-05-06
  • 打赏
  • 举报
回复
我认为上面的做法有三点注意的:
一、正如螃蟹说的设计好启动窗体,然后再工程选项中把它从自动创建窗体列表中去掉。
同时把USEFORM();也去掉
二、用FormLogo->ShowModal();代替FormLogo->Show();
三、在FormLogo->Update();可以用free,也可以在后面加上一条delete FormLogo;
作为一名程序员,new的东东一定要delete;
共同探讨,希望大家批评指正
Lewolf 2003-05-06
  • 打赏
  • 举报
回复
想蹭点分,来晚了
maxying 2003-05-06
  • 打赏
  • 举报
回复
首先设计好启动窗体,然后再工程选项中把它从自动创建窗体列表中去掉,再修改主程序:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
FormLogo = new TFormLogo(FormLogo);
FormLogo->Show();
FormLogo->Update();
Application->CreateForm(__classid(TPerAssMainForm), &PerAssMainForm);
Application->CreateForm(__classid(TMiniExplorer), &MiniExplorer);
Application->CreateForm(__classid(TMiniMailer), &MiniMailer);
FormLogo->FadeOut();
FormLogo->Free();
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
handongchen 2003-05-06
  • 打赏
  • 举报
回复
up上面的代码说的很清楚!
gfh_79_0 2003-05-06
  • 打赏
  • 举报
回复
#include "Splash.h"

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
TSplashFrom * Splash = new TSplashFrom(Application);
Splash->FormStyle=fsStayOnTop;
Splash->BorderStyle=bsNone;
Splash->Position=poScreenCenter;
Splash->Show();
Splash->Update();
Sleep(1500);

Application->CreateForm(__classid(TSystemManager), &SystemManager);
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->CreateForm(__classid(TDJ_Data), &DJ_Data);
Application->CreateForm(__classid(TSetForm1), &SetForm1);
Application->CreateForm(__classid(TInformationForm), &InformationForm);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
Splash中放一个Timer关闭Splash,另设置不自动创建。
DaMimit 2003-05-06
  • 打赏
  • 举报
回复
看看帮助。例程上有!

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧