AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[XE4] Themes, Splashscreen

Ein Thema von 4dk2 · begonnen am 27. Nov 2015 · letzter Beitrag vom 30. Nov 2015
Antwort Antwort
Seite 1 von 2  1 2      
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#1

[XE4] Themes, Splashscreen

  Alt 27. Nov 2015, 09:39
Hallo zusammen,
hab eine Anwendung von uns von D7 nach XE4 portiert (das ging unter einer Stunde),
Und wollte nun die VCL Styles nutzen, jedoch ist das erste laden der Oberfläche dann "sau" langsam, bei aktivierten Themes.
Das passiert nur einmal wäre auch nicht schlimm, jedoch kann man sehen wie er jedes einzelene Element zeichnet.

Da würde ich gerne nen splashscreen einblenden, und das Formular solange verstecken.
Schonmal jemand gemacht?
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: [XE4] Themes, Splashscreen

  Alt 27. Nov 2015, 09:44
Da würde ich gerne nen splashscreen einblenden, und das Formular solange verstecken. Schonmal jemand gemacht?
Ja, hier, ich, sogar schon öfters. Was ist dein Problem dabei?
  Mit Zitat antworten Zitat
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#3

AW: [XE4] Themes, Splashscreen

  Alt 27. Nov 2015, 12:23
Hey Perlsau,
ich hab noch nen bisl getestet, und da alle Komponenten auf einem Panel sind, bzw das als backgroundpanel dient, hab ich folgendes gemacht:

Delphi-Quellcode:
//im create
..
pbBack.visible := false;
..

//bei nem button dann:
pbBack.visible := true;
//und die zeit gemessen. 3,5 sekunden braucht des !
//beim nem erzwungen repaint danach, braucht er nur noch 600 ms
Kann ich irgendwie bei dem unsichtbaren panel/komponente einen repaint erzwingen, obwohl es nicht sichtbar ist? repaint update usw hab ich schon durch, das erste Visible= true dauert trotzdem so lange, und man sieht wie er die elemente zeichnet. (denke das repaint visible oder ähnliches abfragt)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: [XE4] Themes, Splashscreen

  Alt 27. Nov 2015, 12:40
Du fragtest doch nach einem Splash-Sreen, nicht wahr? Das, was du da machst, ist kein Splash-Screen. Ein Splash-Screen ist ein Formular mit einem ansprechenden Äußeren, auf dem z.B. zu lesen steht: "Bitte warten ... Ihre Anwendung wird initialisiert ..." oder irgendwas derartiges. Dieses Formular rufst du als erstes in der Projekt-Quelldatei auf. Ich verwende die Splash-Screens meist auch gleichzeitig als Info-Screen, deshalb gebe ich sie nicht frei, nachdem das Programm vollständig initialisiert wurde. Ansonsten kannst du dieses Splash-Formular auch gleich nach dem Durchlauf von OnShow deines Hauptformulars freigeben. Zudem findest du hier, wenn du mal die Forensuche bemühst, zahlreiche Diskussionen zum Thema.

Delphi-Quellcode:
program Project1;

uses
...
begin
  FormSplash := TFormSplash.Create(Application);
  FormSplash.Show;
  FormSplash.Update;
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.Title := 'Soundso-Anwendung vS.x by PC-Heil';
  Application.CreateForm(TFormMain, FormMain);
...
end.

UNIT UnitMain;
...
Procedure TFormMain.FormShow(Sender: TObject);
begin
  ...
  FormSplash.Hide; // wenn du's noch als Info-Screen benötigst oder:
  FormSplash.Free; // ganz rausschmeißen
end;
...
end.
  Mit Zitat antworten Zitat
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#5

AW: [XE4] Themes, Splashscreen

  Alt 28. Nov 2015, 07:09
Naja es hat aber ja mit splashscreen zu tun, weil solange er nicht fertig ist mit allem würd ichs anzeigen . wie ein splash form usw funktioniert weiss ich und ist nicht das problem.

Mein muss doch möglich sein das ding zeichnen zu lassen ohne das es sichtbar ist oder ? (Also das es denkt es wäre sichtbar)
ich glaub ich guck mal in die Winapi...
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#6

AW: [XE4] Themes, Splashscreen

  Alt 28. Nov 2015, 08:06
Guten Morgen

Naja es hat aber ja mit splashscreen zu tun, weil solange er nicht fertig ist mit allem würd ichs anzeigen . wie ein splash form usw funktioniert weiss ich und ist nicht das problem.
Nicht wirklich

Mein muss doch möglich sein das ding zeichnen zu lassen ohne das es sichtbar ist oder ? (Also das es denkt es wäre sichtbar)
ich glaub ich guck mal in die Winapi...
Du möchtest also auf einem Panel, das auf deinem Haupt-Formular liegt, was zeichnen, um das verzögerte Zeichnen auf eben diesem Formular zu verbergen? Klingt irgendwie seltsam, findest du nicht? Jetzt stell es dir doch mal bildlich-chronologisch vor:

In deinem Mainformular hast du gewisse Aktionen beim OnCreate, OnActivate und/oder OnShow am Laufen. Diese Aktionen bewirken, daß das Formular nur sehr zögerlich gezeichnet wird. Das möchtest du nun gerne verbergen. Verständlich. Ergo erzeugst du vor dem Mainformular ein anderes, nämlich dein Splashformular, das diese Aktionen nicht beinhaltet und daher noch vor dem Mainformular flott gezeichnet wird. Erst danach erzeugst du dein Mainformular, und zwar verdeckt durch das Splashformular. Alles andere macht in meinen Augen absolut keinen Sinn. Und sinnvoll sollte das, was du programmierst, doch wohl sein, zumindest ein wenig, oder ...?

Soweit alles gut rübergekommen?
  Mit Zitat antworten Zitat
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#7

AW: [XE4] Themes, Splashscreen

  Alt 28. Nov 2015, 08:17
Ja so ungefähr XD



1. Splash Form Create/show
2. Normale Forms Create
3. Main Form Show
4. Panel visible = true
5. Main form erst jetzt sichtbar
6. Splashform hide.


Klar man kann einfach das Splashform drüber legen, aber das halte ich dann wiederum für nicht sinnvoll bzw. ne krücke.
Und da mein Mainform maximiert ist, wär das splashform dann auch auf dem ganzen screen XD.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: [XE4] Themes, Splashscreen

  Alt 28. Nov 2015, 08:26
Klar man kann einfach das Splashform drüber legen, aber das halte ich dann wiederum für nicht sinnvoll bzw. ne krücke.
Wieso Krücke? Das ist die Art & Weise, wie Splashscreens gewöhnlich realisiert werden.

Und da mein Mainform maximiert ist, wär das splashform dann auch auf dem ganzen screen XD.
Du hast es offenbar noch immer nicht verstanden: Wenn es möglich wäre, das Zeichnen der Mainform flott zu organisieren, so daß die Aktionen in den Startmethoden keine Verzögerungen bewirken, bräuchtest du doch gar keinen Splash-Screen, um dieses verzögerte Zeichnen zu verbergern. Kannst du mir soweit folgen? Und weil das eben nicht möglich ist, setzt man zu diesem Zweck ein extra Formular ein. Natürlich kannst du weiterhin versuchen, das Zeichnen der Mainform doch noch zu beschleunigen, ich wünsche dir viel Spaß dabei und klinke mich jetzt hier aus.
  Mit Zitat antworten Zitat
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#9

AW: [XE4] Themes, Splashscreen

  Alt 28. Nov 2015, 08:52
...um dieses verzögerte Zeichnen zu verbergern. Kannst du mir soweit folgen? Und weil das eben nicht möglich ist, setzt man zu diesem Zweck ein extra Formular ein. Natürlich kannst du weiterhin versuchen, das Zeichnen der Mainform doch noch zu beschleunigen, ich wünsche dir viel Spaß dabei und klinke mich jetzt hier aus.
"Und weil das eben nicht möglich ist.."???
Naja ich denke schon das es möglich ist. (guck dir z.b. mal MediaMonkey an, auch ne delphi Anwendnung die viel zu zeichnen ht, und ohne großartige analyse denk ich das dort kein form hinter dem splashscreen ist)

Falls doch gibt mir einen Beweis dafür, warum es unter windoof nicht möglich ist. Aber es einfach so zu behaupten ohne begründung...naja

Ich will es ja nicht beschleunigen, weils wahrscheinlich eh nicht geht, da es an den XE Themes liegt!
Und man wenn dort im code ansetzen müsste.


...ich wünsche dir viel Spaß dabei und klinke mich jetzt hier aus.
joar dann viel spass beim klinken
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: [XE4] Themes, Splashscreen

  Alt 28. Nov 2015, 09:12
Also meinen Tests mit (eingebauten) Themes haben keine größeren Probleme gezeigt. Bei den (noch verwendenten) Themes vom ElPack habe ich die Erfahrung das die aktivierung von Doublebuffer sich teilweise sehr positiv auf die Zeichengeschwindigkeit und das reduzieren von Flackern auswirkt.
Probier doch auch mal bei dir das Doublebuffer auf die Elemente deines Hauptformulares anzuwenden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 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