Einzelnen Beitrag anzeigen

Andreas L.
(Gast)

n/a Beiträge
 
#2

Re: SplashScreen - Bilder sichtbar machen

  Alt 28. Jun 2006, 20:50
Ich konnte es jetzt selbst lösen. Hab es so gemacht:

Projektdatei (*.dpr):
Delphi-Quellcode:
...
...
...
begin
  Application.Initialize;
  Application.CreateForm(TfrmManager, frmManager);
  Application.CreateForm(TfrmSplash, frmSplash);
   try
     frmSplash.show;
     frmSplash.Update;
     frmSplash.RunApp;
   finally
    frmSplash.free;
   end;
  Application.Run;
end.
Und meine Procedure in frmSplash:
Delphi-Quellcode:
procedure TfrmSplash.RunApp;
var
 config: Tinifile;
begin

 imgStartLoading.Visible:=true;
 Update;
 sleep(1000);

 //checks the config file
 if FileExists(GetShellFolder(CSIDL_APPDATA)+'\Web4Dev\config.ini')=false then
  //create config directory and copy default config file if it does not exist
  begin
   ForceDirectories(GetShellFolder(CSIDL_APPDATA)+'\Web4Dev\');
   CopyFile(pchar(extractfilepath(application.ExeName)+'config.bak'),pchar(GetShellFolder(CSIDL_APPDATA)+'\Web4Dev\config.ini'), true);
  end;

 pgbInitalize.Position:=pgbInitalize.Position+20;
 imgCheckConfig.Visible:=true;
 Update;
 sleep(1000);

 //load configuration
 config:=Tinifile.Create(GetShellFolder(CSIDL_APPDATA)+'\Web4Dev\config.ini');
 frmManager.language:=config.ReadString('Application','Language','English');

 pgbInitalize.Position:=pgbInitalize.Position+20;
 imgLoadConfig.Visible:=true;
 Update;
 sleep(1000);

 //load language
 if frmManager.LoadLanguage(frmManager.language)=false then
  begin
   if frmManager.language<>'Englishthen
    begin
     //if it does failure, load english language
     if frmManager.LoadLanguage('English')=false then
      begin
       //if english language cannot be loaded display a message and exit the program
       if MessageDLG('Die Sprachdatei konnte nicht geladen werden!'+#13#10+'Klicken Sie auf OK um die Anwendung zu beenden!',mtError, [mbOK],0)=mrOK then
        begin
         config.Free;
         Application.Terminate;
        end
      end
    end
   else
    begin
     //if english language cannot be loaded display a message and exit the program
     if MessageDLG('Die Sprachdatei konnte nicht geladen werden!'+#13#10+'Klicken Sie auf OK um die Anwendung zu beenden!',mtError, [mbOK],0)=mrOK then
      begin
       config.Free;
       Application.Terminate;
      end
    end
  end
 else
  begin
   pgbInitalize.Position:=pgbInitalize.Position+30;
   imgLoadLanguage.Visible:=true;
   Update;
   sleep(1000);
  end;

 //free memory
 config.Free;

 pgbInitalize.Position:=pgbInitalize.Position+10;
 imgRunApp.Visible:=true;
 Update;
 sleep(1000);

end;
Entscheidend ist das Update was ich bei jeden Bild aufrufe.
  Mit Zitat antworten Zitat