Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Sleep bei Form.Create (https://www.delphipraxis.net/157338-sleep-bei-form-create.html)

speedy 8. Jan 2011 14:16

Delphi-Version: 2009

Sleep bei Form.Create
 
Wollte mal eben mit ner Progressbar spielen und hab mal bei Form.Create folgendes rein:

Code:
  repeat
    sleep(200);
    progressbar1.Position := progressbar1.Position + 2;
    progressbar1.Refresh;
  until progressbar1.Position = 100;
Komischerweise erscheint das komplette Fenster jetzt erst, wenn die Progressbar kurz vor dem Ende ist.
Wenn ich die Schleife allerdings über einen Timer mit 1 ms aufrufe (wird vor der Schleife natürlich deaktiviert) funktioniert alles wie es sollte. Auch die Benutzung von Application.ProcessMessages bringt nichts.

Weiß jemand woran das liegen könnte und ich ohne den Timer auskomme?


Gruß
Roland

haentschman 8. Jan 2011 14:27

AW: Sleep bei Form.Create
 
Hallo...
Zitat:

Weiß jemand woran das liegen könnte
Ja... du hast noch nicht verstanden, wann welche Ereignisse ausgeführt werden.

OnCreate...wenn das Formular erzeugt wird. (da ist es noch nichts sichtbar)
OnShow...wenn das Formular angezeigt wird. (da sind noch keine visuellen Komponenten sichtbar)
OnActivate... wenn das Formular den Focus bekommt
...usw.

Vorschlag:
- mach einen "Start" Button
- im OnClick schreibst du deinen Code

Uwe Raabe 8. Jan 2011 14:27

AW: Sleep bei Form.Create
 
Die Schleife im FormCreate verhindert, daß das Form im nachfolgenden Application.Run überhaupt angezeigt wird. Erst im Application.Run wird das MainForm angezeigt und die Schleife zur Verarbeitung der Message-Queue gestartet.

speedy 8. Jan 2011 14:30

AW: Sleep bei Form.Create
 
Ah jetzt isses mir auch aufgefallen :)

Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 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