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
4dk2

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

[XE4] Themes, Splashscreen

  Alt 27. Nov 2015, 08: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, 08: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, 11: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, 11: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, 06: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, 07: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
Antwort Antwort


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 14:26 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