[Gelöst] Splashscreenanzeige zu kurz
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: [Gelöst] Splashscreenanzeige zu kurz
...ups, habe grade festgestellt, dass man den SplashScreen doch nicht vor die MainForm setzen sollte, da sonst mit dem Schließen des SplasScreens sich auch die MainForm beendet, warum auch immer?!?
Und seltsamerweise wird das .png-Bild bei mir nicht transparent, sondern mit weißem Hintergrund dargestellt.
Und der Timer scheint keinen Effekt auf die Anzeigedauer zu haben.
Und seltsamerweise wird das .png-Bild bei mir nicht transparent, sondern mit weißem Hintergrund dargestellt.
Und der Timer scheint keinen Effekt auf die Anzeigedauer zu haben.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
-
- Beiträge: 179
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: [Gelöst] Splashscreenanzeige zu kurz
Dies hast Du bestimmt in den Projekt-Einstellungen gemacht. Die Apllication.MainForm ist dann nicht mehr Deine MainForm, sondern eben die Form, welche in den Projekt-Einstellungen ganz oben steht. Und daher wird die Anwendung beendet, wenn der SplashScreen freigegeben wird, weil dieser eben nun die MainForm ist.and4more hat geschrieben:...ups, habe grade festgestellt, dass man den SplashScreen doch nicht vor die MainForm setzen sollte, da sonst mit dem Schließen des SplasScreens sich auch die MainForm beendet, warum auch immer?!?
Umgehen kannst Du dies, wenn Du es so machst, wie ich es in meiner Lösung dargestellt habe und eben den SplashScreen in der lpr-Datei selbst erzeugst aber unter keinen Umständen mit Application.Create().
.
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: [Gelöst] Splashscreenanzeige zu kurz
@TBug
...danke hat gut geklappt. Mir ist allerdings komplett unklar warum das PNG-Bild von Michl transparent dargestellt wird und meins nicht. Am Bild kann's nicht liegen, denn wenn ich sein Bild in meine Applikation lade ist es auch nicht transparent. Und seltsamerweise wenn ich meine Bilder in sein TImage lade fehlt der später von mir hinzugefügte Text, aber das Originalbild wird transparent angezeigt, so dass es sich hier um eine Mischung zwischen Problemen mit dem Bildformat und Darstellung durch Lazarus handeln müsste. Die Einstellungen im Designer wurden von mir 1 zu 1 exakt übernommen.
...danke hat gut geklappt. Mir ist allerdings komplett unklar warum das PNG-Bild von Michl transparent dargestellt wird und meins nicht. Am Bild kann's nicht liegen, denn wenn ich sein Bild in meine Applikation lade ist es auch nicht transparent. Und seltsamerweise wenn ich meine Bilder in sein TImage lade fehlt der später von mir hinzugefügte Text, aber das Originalbild wird transparent angezeigt, so dass es sich hier um eine Mischung zwischen Problemen mit dem Bildformat und Darstellung durch Lazarus handeln müsste. Die Einstellungen im Designer wurden von mir 1 zu 1 exakt übernommen.
Zuletzt geändert von and4more am Sa 3. Okt 2015, 13:26, insgesamt 1-mal geändert.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: [Gelöst] Splashscreenanzeige zu kurz
...Timer-Problem konnte ich zwischenzeitlich lösen. Wenn man bei OnStartTimer: FormShow einträgt dann klappen auch die Zeitvorgaben.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
Re: [Gelöst] Splashscreenanzeige zu kurz
Warum? Das geht schon siehe Bsp. Einziger Nachteil wäre, dass das Formular erst wieder frei gegeben wird, wenn das Programm geschlossen wird.TBug hat geschrieben: aber unter keinen Umständen mit Application.Create()
K.A. Ich habe eben noch das Programm in Lazarus 1.4.0 gestartet - geht auch (das Test-PNG habe ich mit Gimp erstellt, einfach transparenten Hintergrund gewählt, etwas Schrift darauf, schön bunt gefärbtand4more hat geschrieben:Mir ist allerdings komplett unklar warum das PNG-Bild von Michl transparent dargestellt wird und meins nicht.

Das sieht dann bei mir so aus:

Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: [Gelöst] Splashscreenanzeige zu kurz
...verstehe ich nicht, habe mein Bild auch in GIMP erstellt mit transparentem Hintergrund und in Photoshop auch nochmal geprüft. Das Bild ist o.K. Es erklärt aber auch nicht das unterschiedliche Verhalten beim Laden in beiden Programmen (s. o.). Vielleicht kannst Du das Beispielprogramm anhängen, dann kann ich's bei mir mal testen.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
Re: [Gelöst] Splashscreenanzeige zu kurz
Jetzt hatte ich das PNG schon gelöscht
Habe ein neues erstellt, das Projekt ist das gleiche, wie das schon mal zuvor gepostete.
Was geht denn eigentlich mit dem Timer nicht? Bei mir funktioniert das problemlos.
Das Projekt (nun mit Laz. 1.4.0 erstellt) nochmals anbei.
Offtopic:
Gimp:
- Datei -> Neu -> "Ein neues Bild erstellen" wird geöffnet
- Größe definieren, unter Erweiterte Einstellungen -> Füllung -> Transparenz wählen und mit OK bestätigen
- etwas auf dem neu erstellten Bild zeichnen
- Datei -> Exportieren ... oder Exportieren nach wählen -> Zielnamen und als Endung ".png" wählen und auf "Exportieren" klicken
- im Formular "Bild exportieren als PNG" alle Einstellungen beibehalten und auf Exportieren klicken
und schon ist das PNG erstellt, was man in Lazarus -> FrmSplash -> Objektinspektor -> Image1 -> Eigenschaft Picture laden kann

Habe ein neues erstellt, das Projekt ist das gleiche, wie das schon mal zuvor gepostete.
Was geht denn eigentlich mit dem Timer nicht? Bei mir funktioniert das problemlos.
Das Projekt (nun mit Laz. 1.4.0 erstellt) nochmals anbei.
Offtopic:
Gimp:
- Datei -> Neu -> "Ein neues Bild erstellen" wird geöffnet
- Größe definieren, unter Erweiterte Einstellungen -> Füllung -> Transparenz wählen und mit OK bestätigen
- etwas auf dem neu erstellten Bild zeichnen
- Datei -> Exportieren ... oder Exportieren nach wählen -> Zielnamen und als Endung ".png" wählen und auf "Exportieren" klicken
- im Formular "Bild exportieren als PNG" alle Einstellungen beibehalten und auf Exportieren klicken
und schon ist das PNG erstellt, was man in Lazarus -> FrmSplash -> Objektinspektor -> Image1 -> Eigenschaft Picture laden kann
- Dateianhänge
-
SplashScreenNochmal.zip
- (54.59 KiB) 92-mal heruntergeladen
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: [Gelöst] Splashscreenanzeige zu kurz
...danke für den Anhang. Also das ist ganz seltsam, lade ich mein Bild in Dein Programm funktioniert's wie gewünscht perfekt, bei mir ist immer der Hintergrund weiß. Kann ich echt nicht verstehen. Hast Du irgendwelche Erweiterungen drin oder liegt's an Lazarus? Ich habe 1.4.2.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
Re: [Gelöst] Splashscreenanzeige zu kurz
Da ich noch nicht hellsehen kann, musst du wohl auf die Suche nach dem Unterschied gehen (du hast ja beide Projekte vorliegen). Ich würde einfach beide .lfm beider Formulare in jeweils separate Textbetrachter öffnen, die Fenster nebeneinander legen und vergleichen.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: [Gelöst] Splashscreenanzeige zu kurz
...habe ich schon gemacht und keinen Unterschied gesehen. Habe aber jetzt Dein SplashForm in mein Projekt geladen und es funktioniert, also muss es irgendwo daran liegen. Werde mal die diffs beider Dateien durchschauen.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: [Gelöst] Splashscreenanzeige zu kurz
...auch nach Durchsicht der Diff's sind keine nennenswerten Unterschiede feststellbar. Sehr seltsam, aber wenigstens klappt's jetzt.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
-
- Beiträge: 179
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: [Gelöst] Splashscreenanzeige zu kurz
Der Nachteil wäre genau der, den der TE ja vermeiden wollte.Michl hat geschrieben:Warum? Das geht schon siehe Bsp. Einziger Nachteil wäre, dass das Formular erst wieder frei gegeben wird, wenn das Programm geschlossen wird.TBug hat geschrieben: aber unter keinen Umständen mit Application.Create()
Nämlich:
Wenn Du den SplashScreen nun wieder mit Application.Create() erstellen würdest, dann wäre der SplashScreen wieder das Hauptformular da es zuerst erstellt wird und die Anwendung würde geschlossen werden, wenn der SplashScreen freigegeben wird.and4more hat geschrieben:...ups, habe grade festgestellt, dass man den SplashScreen doch nicht vor die MainForm setzen sollte, da sonst mit dem Schließen des SplasScreens sich auch die MainForm beendet, warum auch immer?!?
Und noch dazu, dass die Anwendung nicht beendet würde, wenn das vermeintliche Hauptfenster geschlossen wird, da es ja nicht das Hauptfenster wäre.
.
Re: [Gelöst] Splashscreenanzeige zu kurz
@TBug: Jetzt ist der Groschen gefallen. Der Vorteil ist, dass der Splashscreen sofort angezeigt wird, bevor irgend etwas anderes erstellt wird. Das ist tatsächlich von Vorteil. Danke!

Ich tippe mal auf ... Magieand4more hat geschrieben:auch nach Durchsicht der Diff's sind keine nennenswerten Unterschiede feststellbar.

Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 179
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: [Gelöst] Splashscreenanzeige zu kurz
Dadurch kannst Du auch eine Fortschrittsanzeige in den SplashScreen implementieren und zum Beispiel ein Memo, in welchem angezeigt wird, welches Element gerade erstellt wird, oder wenn eine Dantenbankverbindung erzeugt wird, damit der Benutzer wärend des Programmstarts auch sieht, dass etwas passiert.Michl hat geschrieben:Der Vorteil ist, dass der Splashscreen sofort angezeigt wird, bevor irgend etwas anderes erstellt wird. Das ist tatsächlich von Vorteil.
Schließen kann man dann den SplashScreen zum Beispiel im OnShow-Event der MainForm, wenn die MainForm zum Ersten mal angezeigt wird.
.