Thema: Delphi Pause in einer Schleife

Einzelnen Beitrag anzeigen

blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#7

AW: Pause in einer Schleife

  Alt 25. Nov 2010, 10:59
Einer von uns beiden hat die Anforderung falsch verstanden, kann gut sein daß ich das bin.
so ähnlich hatte ich das verstanden
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i:INteger;
begin
  for I := 20 downto 0 do
      begin
      Stringgrid1.Cells[1,i] := 'AAAA' ;
      Sleep(500);
      Application.ProcessMessages;
      end;
end;
und da wird es ohne Application.ProcessMessages duster...

Hallo Bummi,

Du hast offensichtlich nicht nur die Anforderung falsch verstanden, sondern auch meine Antwort.

Pausiert werden kann mit z.B. Sleep(500).
Neugezeichnet werden kann mit z.B. a) Repaint, b) Update oder c) Application.ProcessMessages. Die Variante c) hat Nebeneffekte, auf die der Programmierer vorbereitet sein muß, sonst kann es ganz gewaltig knatschen. Ich kann Dir gerne Beispiele geben.

Application.ProcessMessages wird leider hier gerne Foristen empfohlen, die offensichtlich unerfahren sind. Das halte ich für fahrlässig, wenn man selber mehr darüber weiß.

Zurück zur Anforderung.
Z.B. hiermit wird das geänderte StringGrid neugezeichnet:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i:INteger;
begin
  for I := 20 downto 0 do
      begin
      Stringgrid1.Cells[1,i] := 'AAAA' ;
      Sleep(500);
      Stringgrid1.Repaint; // oder Stringgrid1.Update
      end;
end;
Gruß
blauweiss
  Mit Zitat antworten Zitat