Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Labels bei for-Schleifen einbinden (https://www.delphipraxis.net/60321-labels-bei-schleifen-einbinden.html)

robinWie 5. Jan 2006 11:18


Labels bei for-Schleifen einbinden
 
Hallo,

ich habe eine for-Schleife und will das ein Status von einem Label angezeigt wird. Bei TProgressBar und TGauge funktioniert das, aber das Label zeigt gar nicht's an :gruebel: .
Ein Beispiel:
Delphi-Quellcode:
 for i:=0 to FileListBox1.Items.Count-1 do begin
FileListBox1.ItemIndex:=i;
Label1.Caption:=FileListBox1.Items[FileListBox1.ItemIndex]; //<- So zeigt das Label gar nichts an
DeleteFile(FileListBox1.FileName);
end;
Weiss jemand rat?
Danke im voraus

[edit] Fehler entfernt [/edit]

leddl 5. Jan 2006 11:25

Re: Labels bei for-Schleifen einbinden
 
Überleg mal, wie schnell da nacheinander die Caption verändert wird, da kommt das Label einfach nicht mit. Versuch mal, ein Application.ProcessMessage in die Schleife einzubauen. Am besten aber nicht bei jedem Schleifendurchlauf, sondern nur alle x Mal.

robinWie 5. Jan 2006 11:35

Re: Labels bei for-Schleifen einbinden
 
Danke für den Tipp aber von den Application.ProcessMessages habe ich noch nicht wirklich viel anhnung. Momentan brauche ich das für das Senden von Pings, das angezeigt werden soll bei welchen ping das Programm gerade ist.

Zitat:

da kommt das Label einfach nicht mit
Komisch Form1.Caption kommt da mit :gruebel:

Aenogym 5. Jan 2006 11:38

Re: Labels bei for-Schleifen einbinden
 
Zitat:

Zitat von robinWie
Danke für den Tipp aber von den Application.ProcessMessages habe ich noch nicht wirklich viel anhnung. Momentan brauche ich das für das Senden von Pings, das angezeigt werden soll bei welchen ping das Programm gerade ist.

Zitat:

da kommt das Label einfach nicht mit
Komisch Form1.Caption kommt da mit :gruebel:

einfach direkt nach dem zuweisen des strings ans label folgende zeile einfügen:
Delphi-Quellcode:
Application.ProcessMessages();
dadurch werden u.a. alle komponenten verannlasst, sich neu zu zeichnen. und erst danach läuft die schleife weiter.
daraus resutiert, dass dein label den text wie gewünscht anzeigt, die schleife aber etwas länger dauert.

aeno

Sharky 5. Jan 2006 11:41

Re: Labels bei for-Schleifen einbinden
 
Zitat:

Zitat von Aenogym
... dadurch werden u.a. alle komponenten verannlasst, sich neu zu zeichnen...

:gruebel:
Bist Du dir mit dieser Aussage sicher?
Eigentlich wird dem Programm "nur" gesagt das es bitte schön die anstehenden Windowsbotschaften abarbeiten soll dachte ich immer ;-)

Aenogym 5. Jan 2006 11:42

Re: Labels bei for-Schleifen einbinden
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von Aenogym
... dadurch werden u.a. alle komponenten verannlasst, sich neu zu zeichnen...

:gruebel:
Bist Du dir mit dieser Aussage sicher?
Eigentlich wird dem Programm "nur" gesagt das es bitte schön die anstehenden Windowsbotschaften abarbeiten soll dachte ich immer ;-)

naja und dazu gehört doch WM_PAINT, oder irre ich mich da? :)

Sharky 5. Jan 2006 11:43

Re: Labels bei for-Schleifen einbinden
 
Ich meinte auch mehr das "alle Komponenten".

Aenogym 5. Jan 2006 11:45

Re: Labels bei for-Schleifen einbinden
 
okay, ist vielleicht etwas blöd ausgedrückt. :)
aber im endeffekt werden ja alle komponenten neu gezeichnet, die neu gezeichnet werden müssen (zB. das label bei caption-änderung)

robinWie 5. Jan 2006 11:52

Re: Labels bei for-Schleifen einbinden
 
Zitat:

dadurch werden u.a. alle komponenten verannlasst, sich neu zu zeichnen. und erst danach läuft die schleife weiter.
daraus resutiert, dass dein label den text wie gewünscht anzeigt, die schleife aber etwas länger dauert.
Aber viel merkt man davon nicht

Win32.API 5. Jan 2006 12:01

Re: Labels bei for-Schleifen einbinden
 
Kannst ja mal zu Testzwecken ein Sleep einbauen und gucken ob es dann geht.

greetz


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 Uhr.
Seite 1 von 2  1 2      

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