Kann Form nicht schließen!
Servus allerseits! :) Ich habe mal versucht eine Art Splashscreen via zweiter Form anzuzeigen.
Die Form zeigt er auch an, alles bestens. Ich kann sie nur zum verrecken nicht schließen!! :wall: Code in Hauptprogramm:
Delphi-Quellcode:
Code in Splashscreen-Form (Unit):
procedure TForm1.FormCreate(Sender: TObject);
SplashScreen := TSplashScreen.Create(Form1); SplashScreen.Show;
Delphi-Quellcode:
Projekt-Code:
procedure TSplashScreen.Image1Click(Sender: TObject);
begin Close; end;
Delphi-Quellcode:
Ich kann machen was ich will, entweder ich bekomme Exceptions oder das verdammte Fenster schließt sich einfach nicht. Man sieht, das es "refreshed" wird, also geschlossen und sofort wieder geöffnet :(
begin
Application.Initialize; Application.Title := 'Samplematic'; Application.CreateForm(TForm1, Form1); Application.CreateForm(TSplashScreen, SplashScreen); Application.Run; end. Hat jemadn Rat? Danke schon mal! :) |
Re: Kann Form nicht schließen!
das ist klar. Im Create von TForm1 erzeugst du ein TSplashScreen weißt dieses auf die Variable Splashscreen zu, und lässt die Instanz auf welche Splashscreen zeigt mit ".Show" anzeigen. Nach dem dein TForm1 kreirt wurde wird in der Projektdatei eine neue Instanz von TSplashScreen erzeugt und auf die Instanz von SplashScreen zugewiesen.
Und in deinem Imageclick steht vermutlich dann nicht
Delphi-Quellcode:
sondern
Close();
Delphi-Quellcode:
womit du ein Close auf das zuletzter erzeugte TSplashScreen ausführst was gar nicht angzeigt wird. Anders kanns ich mir zumindest nicht erklären.
SplashScreen.Close();
|
Re: Kann Form nicht schließen!
Öhm, danke :) Und das heisst... jetzt... ? :stupid:
|
Re: Kann Form nicht schließen!
das heißt: du müsstest erstmal sagen ob ich recht habe (ob da wirklich splashscreen.close steht). Und wenn dem so ist solltest du aus der Projektdatei das
Delphi-Quellcode:
raus nehmen, und im Sinne der Objectorientierung aus:
Application.CreateForm(TSplashScreen, SplashScreen);
Delphi-Quellcode:
ein
Splashscreen.Close();
Delphi-Quellcode:
bzw.
Self.Close();
Delphi-Quellcode:
machen.
Close();
Außerdem solltest du verstehen warum du diese Änderungen machen solltest. Aber eben alles nur wenn ich recht hatte mit meiner Vermutung, ansonsten scheint der Fehler wo anders zu liegen. |
Re: Kann Form nicht schließen!
Es gibt 2 Instanzen der SplashForm. wenn du sie dynamisch erzeugst, solltest du die Erzeugung im Hauptprogramm abschalten.
|
Re: Kann Form nicht schließen!
*Hust* - ich versteh es immer noch nicht ganz ... vor allem: wenn ich das Splash-Fenster minimiere, erscheint sofort ein neues! :shock: :oops:
|
Re: Kann Form nicht schließen!
Hier erzeugst du Instanz nur 1:
Delphi-Quellcode:
Und hier die 2.:
Application.CreateForm(TSplashScreen, SplashScreen);
Delphi-Quellcode:
Einmal reicht!
SplashScreen := TSplashScreen.Create(Form1);
|
Re: Kann Form nicht schließen!
Achsoo okay, verstehe! Danke! :) Allerdings ändert das leider rein gar nichts. Nach wie vor dasselbe Ergebnis :?
|
Re: Kann Form nicht schließen!
Wie sieht der Code jetzt aus?
|
Re: Kann Form nicht schließen!
Naja, so wie im ersten Beispiel bis auf das mit dem Application.CreateForm SplashScreen usw!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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