如何实现启动画面?(50分)

  • 主题发起人 主题发起人 chengchet
  • 开始时间 开始时间
C

chengchet

Unregistered / Unconfirmed
GUEST, unregistred user!
就是在程序启动前先显示一个画面,如何实现呢?谢谢!
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2043464
 
按Alt+P+V

SplashForm := TSplashForm.Create(nil);//创建窗口
SplashForm.Show;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
SplashForm.Free;//释放,如果消失得太快,你可以在Form1中加个计时器来执行这句
Application.Run;
 
在工程文件中加入类似于这样的代码(我的启动画面就这么作的):
begin
Application.Initialize;
flow:=tflow.Create(application);
flow.Show;
flow.Update;
Application.Title := '油库监测系统';
Application.CreateForm(TMainFrm, MainFrm);
Application.CreateForm(TEachTankFrm, EachTankFrm);
Application.CreateForm(TAboutFrm, AboutFrm);
Application.CreateForm(TOiltypesetFrm, OiltypesetFrm);
Application.CreateForm(TOilLibaryFrm, OilLibaryFrm);
Application.CreateForm(TselectworkOilTankFrm, selectworkOilTankFrm);
Application.CreateForm(TTankTableFrm, TankTableFrm);
Application.CreateForm(TTempDenLineForm, TempDenLineForm);
Application.CreateForm(TExportParaLogFrm, ExportParaLogFrm);
Application.CreateForm(TExportOTParaFrm, ExportOTParaFrm);
Application.CreateForm(TExportSensorFrm, ExportSensorFrm);
Application.CreateForm(TExportsensorLogForm, ExportsensorLogForm);
Application.CreateForm(TAllTankFrm, AllTankFrm);
Application.CreateForm(Tfixtimefrm, fixtimefrm);
Application.CreateForm(TMEASURE_Frm, MEASURE_Frm);
Application.CreateForm(TSensorFrm, SensorFrm);
Application.CreateForm(TOTParaFrm, OTParaFrm);
Application.CreateForm(Tf_clear_log, f_clear_log);
Application.CreateForm(Tblxs, blxs);
flow.Hide;
flow.Free;
Application.Run;
end.

flow是启动的窗体名称
 
木子的方法可行
 
改一下下
Application.Initialize;
flow:=tflow.Create(application);
flow.Show;
flow.Update;
Application.ProcessMessage;
Application.Title := '油库监测系统';
Application.CreateForm(TMainFrm, MainFrm);
Application.CreateForm(TEachTankFrm, EachTankFrm);
Application.CreateForm(TAboutFrm, AboutFrm);
Application.CreateForm(TOiltypesetFrm, OiltypesetFrm);
Application.CreateForm(TOilLibaryFrm, OilLibaryFrm);
Application.CreateForm(TselectworkOilTankFrm, selectworkOilTankFrm);
Application.CreateForm(TTankTableFrm, TankTableFrm);
Application.CreateForm(TTempDenLineForm, TempDenLineForm);
Application.CreateForm(TExportParaLogFrm, ExportParaLogFrm);
Application.CreateForm(TExportOTParaFrm, ExportOTParaFrm);
Application.CreateForm(TExportSensorFrm, ExportSensorFrm);
Application.CreateForm(TExportsensorLogForm, ExportsensorLogForm);
Application.CreateForm(TAllTankFrm, AllTankFrm);
Application.CreateForm(Tfixtimefrm, fixtimefrm);
Application.CreateForm(TMEASURE_Frm, MEASURE_Frm);
Application.CreateForm(TSensorFrm, SensorFrm);
Application.CreateForm(TOTParaFrm, OTParaFrm);
Application.CreateForm(Tf_clear_log, f_clear_log);
Application.CreateForm(Tblxs, blxs);
flow.Hide;
flow.Free;
Application.Run;
end.

有可能是速度快了,很快关闭了
 
program QuotedPrice;

uses
Forms,
Main in 'Main.pas' {FrmMain},
pwd in 'pwd.pas' {FrmPwd},
report in 'REPORT.PAS' {QuickReport1: TQuickRep},
Add in 'Add.pas' {FrmAdd},
Setup in 'Setup.pas' {FrmSetup},
about in 'about.pas' {FrmAbout},
Logo in 'Logo.pas' {FrmLogo};

{$R *.res}

begin
Application.Initialize; //程序初始化

FrmLogo:=TFrmLogo.Create(Application); //建立徽标Form
FrmLogo.show; //显示徽标Form}
FrmLogo.update; // 重画徽标Form,确保其中的图片被显示出来

Application.Title := 'QuotedPrice';
Application.CreateForm(TFrmMain, FrmMain); // 主窗体的建立

Application.CreateForm(TFrmPwd, FrmPwd);
Application.CreateForm(TQuickReport1, QuickReport1);
Application.CreateForm(TFrmAdd, FrmAdd);
Application.CreateForm(TFrmSetup, FrmSetup);
Application.CreateForm(TFrmAbout, FrmAbout);
// Application.CreateForm(TFrmLogo, FrmLogo);

FrmLogo.hide; //隐藏徽标FORM
FrmLogo.free; //释放 徽标 FORM 所占用的资源
Application.Run;
end.
 
Application.Initialize;
flogo:=tflogo.Create(application);
flogo.Show;
flogo.Update;
Application.Title := '管理系统';
Application.CreateForm(Tfmain, fmain);
Application.CreateForm(Tdata, data);
flogo.Hide;
flogo.Free;
Application.Run;


procedure Tfmain.FormCreate(Sender: TObject);
var
CurrTime: TSystemTime;
Sec: Word;
begin
GetSystemTime(CurrTime);
Sec := CurrTime.wSecond + 2;
while Sec>CurrTime.wSecond do
begin
GetSystemTime(CurrTime);
end;
end;
 
我是一个初学者,大家能不能介绍的尽量明白详细些!
 
多人接受答案了。
 
后退
顶部