Hi,
Ich habe folgendes Problem:
In einer Funktion will ich etwas in eine Zeile eines Stringgrids schreiben. Diese Funktion rufe ich mehrmals hintereinander in einer for-Schleife auf. Um mir zu merken, in welche Zeile die Funktion schreiben soll, erhöhe ich nach dem die Funktion in eine Zeile geschrieben hat, den Tag des Grids.
Der Code sieht etwa so aus:
Delphi-Quellcode:
Procedure schreiben(var sg: tStringgrid);
var
tag: byte;
i: byte;
begin
i:= random(5);
tag:= sg.tag;
with sg do
begin
foo;
cells[0,tag]:= inttostr(i);
end;
sg.tag := sg.tag+1;
{sleep(50});
end;
// Der Aufruf:
for i:=0 to 5 do
begin
schreiben(sg1);
{showmessage(inttostr(i))};
end;
Wenn ich diesen Code ausführe, stehen immer die gleichen Zahlen in den verschiedenen Zellen (kein Zufall). Führe ich das showmessage aus, sind es unterschiedliche Zahlen.
Lasse ich nur das sleep ausführen, steht von sleep(0) bis sleep(20) die gleiche Zahl in den Zellen, ab sleep(50) wieder unterschiedliche.
Kann mir da jemand helfen? Irgendwie sieht es so aus, als ob das Erhöhen des Tags nur verzögert oder gar nicht wirkt...
Erwarte das Beste und bereite dich auf das Schlimmste vor.