formularaufbau bei erstem start langsam

Rund um die LCL und andere Komponenten
Antworten
Leberecht
Beiträge: 73
Registriert: Fr 28. Mai 2010, 08:39
OS, Lazarus, FPC: Win7 64bit, Lazarus 1.6.0 32bit (FPC 3.0.0)
CPU-Target: 32Bit
Wohnort: Heidelberg

formularaufbau bei erstem start langsam

Beitrag von Leberecht »

hallo !

habe seit längerem ein problem mit einem meiner projekte. dort gibt es einige komplexere formulare mit mehreren reitern und vielen checkboxen, textboxen, comboboxen darin (mehrere hundert steuerelemente). das problem ist folgendes: beim ersten formularstart braucht er teilweise sekunden bis das formular vollständig gezeichnet/dargestellt ist.
nach dem schliessen des formulars und späterem erneuten aufruf geht alles in nullzeit (keine verzögerung erkennbar). gibt es da irgenteinen trick, wie ich ein formular vor aufruf im hintergrund unsichtbar manuell laden/aufbauen lassen kann, so das es sich beim ersten start so schnell öffnet, so als wäre es schonmal offen gewesen?

danke
„Viel zu lernen du noch hast.“
(Yoda zu Dooku)

RugiaArt
Beiträge: 41
Registriert: Do 11. Okt 2012, 18:50
OS, Lazarus, FPC: Win7 (L 1.0.0.2 FPC 2.6.0)
CPU-Target: 32Bit
Wohnort: Rügen
Kontaktdaten:

Re: formularaufbau bei erstem start langsam

Beitrag von RugiaArt »

hi!

vielleicht setzt du beim Form1.OnShow folgendes:


Form1.Top:=Screen.DesktopHeight;


und danach wieder deine Position zurück

Leberecht
Beiträge: 73
Registriert: Fr 28. Mai 2010, 08:39
OS, Lazarus, FPC: Win7 64bit, Lazarus 1.6.0 32bit (FPC 3.0.0)
CPU-Target: 32Bit
Wohnort: Heidelberg

Re: formularaufbau bei erstem start langsam

Beitrag von Leberecht »

verstehe, damit das formular beim aufbau ausserhalb des bildschirms ist. aber bei welchem event schalte ich das wieder zurück? onactivate z.b. triggert während des bildaufbaus, onshow davor... welcher event triggert denn, wenn der bildaufbau komplett beendet ist?
„Viel zu lernen du noch hast.“
(Yoda zu Dooku)

Benutzeravatar
theo
Beiträge: 10857
Registriert: Mo 11. Sep 2006, 19:01

Re: formularaufbau bei erstem start langsam

Beitrag von theo »

Hast du denn mal untersucht, warum es so langsam ist?
Die Lazarus IDE hat bei Werkzeuge -> Einstellungen auch ein gut bestücktes Formular. Dauert das bei dir auch so lang?

Leberecht
Beiträge: 73
Registriert: Fr 28. Mai 2010, 08:39
OS, Lazarus, FPC: Win7 64bit, Lazarus 1.6.0 32bit (FPC 3.0.0)
CPU-Target: 32Bit
Wohnort: Heidelberg

Re: formularaufbau bei erstem start langsam

Beitrag von Leberecht »

das formular öffnet sich ohne erkennbare verzögerung. muss dann wohl an meinen zusätzlichen routinen liegen...
aber, gibt es ein event das feuert wenn ein formular vollständig dargestellt/gezeichnet wurde? das wäre für mich trotzdem wichtig, denn dann könnte ich meine initialisierungen genau danach ausführen.
„Viel zu lernen du noch hast.“
(Yoda zu Dooku)

Benutzeravatar
theo
Beiträge: 10857
Registriert: Mo 11. Sep 2006, 19:01

Re: formularaufbau bei erstem start langsam

Beitrag von theo »

Geht OnShow nicht?
Ich weiss ja nicht, zu welchem Zeitpunkt du initialisierst.
Im Zweifel probier einen Timer oder QueueAsyncCall: http://wiki.freepascal.org/Asynchronous_Calls

Leberecht
Beiträge: 73
Registriert: Fr 28. Mai 2010, 08:39
OS, Lazarus, FPC: Win7 64bit, Lazarus 1.6.0 32bit (FPC 3.0.0)
CPU-Target: 32Bit
Wohnort: Heidelberg

Re: formularaufbau bei erstem start langsam

Beitrag von Leberecht »

der fehler lag bei mir. ich hatte im onpaint() des formulars auf geänderte look & feel einstellungen geprüft und im fall von geändert dann sofort form-backcolors, schriften usw. neu zugewiesen. das kostet dann halt zeit bis der den ganzen komponentenbaum angepasst hat. ich mach das jetzt woanders, dann gibts keine probleme mehr.
„Viel zu lernen du noch hast.“
(Yoda zu Dooku)

Benutzeravatar
theo
Beiträge: 10857
Registriert: Mo 11. Sep 2006, 19:01

Re: formularaufbau bei erstem start langsam

Beitrag von theo »

Siehste? :D

Antworten