Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form6 am start vor Form1 bringen ?! (https://www.delphipraxis.net/7592-form6-am-start-vor-form1-bringen.html)

Smith 16. Aug 2003 14:29


Form6 am start vor Form1 bringen ?!
 
Hallo
ich hab ein kleines problem...
ich will eie art splashscreen für mein programm machen, aber das gestaltet sich als schwieriger als erwartet.
wenn Form1 in den vordergrund kommt, dann soll die form6 in den vordergrund kommen...ich hab auf form6 nen timer auf 3 sekunden gestellt...nach 3 sekunden soll die form6 wieder veschwinden und die form1 in den vordergrund kommen.
es funktioniert alles bis auf das das die form6 im vordergrund kommt, wenn das prog startet...

Form1:

Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin
 Form1.Visible:=false;
end;
Form6:

Delphi-Quellcode:
procedure TForm6.Timer1Timer(Sender: TObject);
begin
Form6.Close;
Form1.Visible:=true;
end;
Die Fewhlermeldung sieht so aus: Cannot change Visible in OnHide or OnShow.

flomei 16. Aug 2003 14:39

Re: Form6 am start vor Form1 bringen ?!
 
Was hälst du denn davon:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  begin
    if
      Form1.Active = true
    then
      Form2.Show
  end;
Könnte man ja auch mit nem Timer machen. Im OnCreate hab ich es nicht geschafft.

Und dann wäre da noch Teil 2:
Delphi-Quellcode:
procedure TForm2.Timer1Timer(Sender: TObject);
  begin
    Form1.SetFocus;
    Form2.Close;
  end;
So wird Form1 zwar wieder sichtbar während die andere Form noch offen ist aber ich denke wenn du es schließt und dann die andere sichtbar machen willst geht das schief weil es ja schon zu ist...
Hoffe ich konnte helfen.

MfG Florian :hi:

Stanlay Hanks 16. Aug 2003 14:40

Re: Form6 am start vor Form1 bringen ?!
 
Du könntest ins Form1.Paint schreiben:

Delphi-Quellcode:
IF Form1.Tag = 0 //Irgendwas, was dir sagt, dass das Programm zu ersten Mal gestartet wird
 THEN
  begin
   Form1.Hide; //1. Form verstecken
   Form2.Show; //StartFenster anzeigen
   Form2.Timer1.Enabled := true; //Timer an
   Form1.Tag := 1 //Variable ändern, damit der StartBildschirm nicht bei jedem Paint von Form1 angezeigt wird
  end;
Und in den Timer einfach:

Delphi-Quellcode:
 Form1.show;
 Form2.hide;
 Timer1.Enabled := false;
Man liests sich, Stanlay :hi:

Dagon 16. Aug 2003 15:08

Re: Form6 am start vor Form1 bringen ?!
 
ich mach's immer so:

in den Hauptteil schribst du:
Delphi-Quellcode:
begin
  SplashScreen1 := TSplashScreen1.Create(Application); //TSplashScreen1 ist das Splashscreen-Formular
  SplashScreen1.Show;
  SplashScreen1.Update;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TAboutBox, AboutBox);
  SplashScreen1.Free;
  Application.Run;
end.
und in oncreate von form1 schribst du:
Delphi-Quellcode:
sleep(3000);

Smith 16. Aug 2003 20:35

Re: Form6 am start vor Form1 bringen ?!
 
Danke Leute! ich habe mich für die letzte variante entschieden(zwar etwas abgeändert).
Jetzt ich mein programm fertig ;)

Thx nochma
Smith :hello: :coder: :party:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz