Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
701 Beiträge
 
Delphi 12 Athens
 
#4

AW: Aufbau von Forms verstecken

  Alt 9. Mär 2019, 12:31
Guten Tag,

Wie ihr bereits sicher wisst, erstelle ich in einer Scrollbox mehrere Forms.
Dies dauert 2-5 Sekunden. Mein Ziel ist es nun den Aufbau der Forms zu verstecken.
Momentan sieht man wie die Forms aufgebaut werden und dies sieht nicht gerade schön aus.

Am besten wäre es wenn ich die Forms, die erstellt werden, unsichtbar erstellen(.create) könnte.
Ist dies möglich ? Wenn ja wie ?

Mein zweiter Ansatz wäre die Scrollbox auf .visible := false zu setzen.

Feundliche Grüsse
Int3g3r
Für ein Form ist die Visible-Property false by default, das Form wird erst angezeigt, wenn man Show oder showmodal aufruft, oder Visible auf true setzt (Ausnahme: MDI Childforms). Also erzeuge einfach erstmal alle Forms und speichere die Referenzen z. B. in einer TList (oder TList<TForm>). Erst wenn Du alle erzeugt hast gehst Du über die Liste und setzt für jedes Form den Parent auf die Scrollbox und Top und Left wie gewünscht. Wenn Du damit durch bist gehst Du nochmal über die Liste und setzt für die Forms Visible auf true.

Wenn das immer noch visuell unschön aussieht gibt es noch einen fiesen Trick:
Bevor Du die Parents der Forms auf die Scrollbox setzt erzeuge eine TPanel im Code, setze seine ParentBackground property auf false, BoundsRect auf die Boundsrect der Scrollbox, und, als letztes, den Parent auf den Parent der Scrollbox, gefolgt von panel.BringTofront (vermutlich nicht nötig). Dann komplettierst Du die Operationen mit den Forms und als letztes zerstörst Du das Panel. Da das Panel über der scrollbox liegt und sie abdeckt blockiert das alle sichtbaren Updates der scrollbox und deren Inhalt. Wenn aber alles quasi in einem Rutsch passiert (ohne die Möglichkeit, Paint-Messages zu verarbeiten) wird das Panel selbst auch nicht sichtbar gezeichnent.
Peter Below
  Mit Zitat antworten Zitat