![]() |
Aufbau von Forms verstecken
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 |
AW: Aufbau von Forms verstecken
Statt die Wirkung zu bekämpfen könnte man auch an die Ursache gehen. Warum sollte es mehrere Sekunden dauern? Nimm einen Profiler, beim RAD Studio ist ja eine abgespeckte Version von AqTime schon dabei. Da kann er dir anzeigen welche Prozeduren die Zeit fressen.
|
AW: Aufbau von Forms verstecken
Forms erst bauen und dann auf die Scrollbox setzen.
|
AW: Aufbau von Forms verstecken
Zitat:
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. |
AW: Aufbau von Forms verstecken
Zitat:
Folgender Code z. B. macht alle Forms sichtbar.
Delphi-Quellcode:
var
FormIndex: Integer; begin for FormIndex := 0 to Screen.FormCount - 1 do begin // Wenn nicht alle Forms der Anwendung sichtbar werden sollen, // kann man natürlich auch eine Abfrage einbauen: if Screen.Forms[FormIndex].Name = 'Form1' then Screen.Forms[FormIndex].Show; // In diesem Fall würde nur das Formular mit dem Namen // Form1 sichtbar werden. end; end; |
AW: Aufbau von Forms verstecken
Erstelle die Formulare doch erst bei bedarf.
Ansonsten bringt DoubleBuffer := True auch öfter mal sehr gute Verbesserungen. |
AW: Aufbau von Forms verstecken
Ich nehme an, dass Deine SQL-Abfragen noch im OnShow stehen? Wenn ja: Würde ich nicht machen, sondern die Abfragen in eine Public-Routine packen, die dann vor dem Form.Show ausgeführt wird.
Also: Create...DoSQL...Show. Du könntest natürlich auch erstmal auf Show verzichten, bis alle Forms der Scrollbox mit ihrem DoSQL fertig sind, und dann erst Show ausführen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz