[gelöst] Textfeld in Schleife auffrischen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Theozh
Beiträge: 99
Registriert: So 1. Jul 2012, 10:56

[gelöst] Textfeld in Schleife auffrischen

Beitrag von Theozh »

Hallo zusammen,
ich stehe grad auf dem Schlauch...
In einer simplen Schleife möchte ich in einer Textzeile den Fortschritt anzeigen lassen.
Doch die Schleife läuft durch und nur der letzte Wert wird angezeigt.
FStatus ist ein Textfeldobjekt in TForm1

Code: Alles auswählen

 
procedure TForm1.Button1Click(Sender: TObject);
begin
  for x:= 0 to 13 do
  begin
    FStatus.Text:= IntToStr(x);
    sleep(1000);
  end;
end;    
 
Wenn ich statt der Zeile

Code: Alles auswählen

 
    FStatus.Text:= IntToStr(x);
 

Code: Alles auswählen

 
   ShowMessage(FStatus.Text);
 
einsetze bekomme ich nach jedem Schritt ein Fenster.
Wie mache ich das bei einem Textfeld?

Danke für Hinweise, Theo.
Zuletzt geändert von Theozh am Di 6. Aug 2013, 12:19, insgesamt 1-mal geändert.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2840
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Textfeld in Schleife auffrischen

Beitrag von m.fuchs »

Code: Alles auswählen

 
procedure TForm1.Button1Click(Sender: TObject);
begin
  for x:= 0 to 13 do begin
    FStatus.Text:= IntToStr(x);
    Application.ProcessMessages;
    sleep(1000);
  end;
end;
Hintergrund: Das Application.ProcessMessages; sorgt dafür dass dein Programm die angefallenen Windows-Botschaften abarbeitet. Solange es das nicht tut wird auch keine Wertänderung angezeigt.
Zuletzt geändert von m.fuchs am Di 6. Aug 2013, 12:21, insgesamt 1-mal geändert.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Theozh
Beiträge: 99
Registriert: So 1. Jul 2012, 10:56

Re: Textfeld in Schleife auffrischen

Beitrag von Theozh »

aha... Vielen Dank!
Da muss man erst draufkommen...

Antworten