![]() |
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:
Form6:
procedure TForm1.FormActivate(Sender: TObject);
begin Form1.Visible:=false; end;
Delphi-Quellcode:
Die Fewhlermeldung sieht so aus: Cannot change Visible in OnHide or OnShow.
procedure TForm6.Timer1Timer(Sender: TObject);
begin Form6.Close; Form1.Visible:=true; end; |
Re: Form6 am start vor Form1 bringen ?!
Was hälst du denn davon:
Delphi-Quellcode:
Könnte man ja auch mit nem Timer machen. Im OnCreate hab ich es nicht geschafft.
procedure TForm1.Button1Click(Sender: TObject);
begin if Form1.Active = true then Form2.Show end; Und dann wäre da noch Teil 2:
Delphi-Quellcode:
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...
procedure TForm2.Timer1Timer(Sender: TObject);
begin Form1.SetFocus; Form2.Close; end; Hoffe ich konnte helfen. MfG Florian :hi: |
Re: Form6 am start vor Form1 bringen ?!
Du könntest ins Form1.Paint schreiben:
Delphi-Quellcode:
Und in den Timer einfach:
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;
Delphi-Quellcode:
Man liests sich, Stanlay :hi:
Form1.show;
Form2.hide; Timer1.Enabled := false; |
Re: Form6 am start vor Form1 bringen ?!
ich mach's immer so:
in den Hauptteil schribst du:
Delphi-Quellcode:
und in oncreate von form1 schribst du:
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.
Delphi-Quellcode:
sleep(3000);
|
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 00:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz