Zitat von
Christian Seehase:
Statt des BeginUpdate/EndUpdate könntest Du auch den RowCount vor der Schleife auf 0, und nach der Schleife auf den gewünschten Wert setzen. Das könnte bei einem StringGrid den gleichen Effekt haben, da RowCount nur für die Anzeige der Zeilen interessant ist.
thx erstmal für den tipp, aber das hat es leider bnicht getan
bei
Delphi-Quellcode:
StringGrid2.Rows.BeginUpdate;
try
// hier die Schleife
finally
StringGrid2.Rows.EndUpdate;
end;
bekomme ich nur die Info das bei StringGrid2.Rows.BeginUpdate ein [ erwartet wird aber ein . (Punkt) gefunden wurde, das tut es also leider auch nicht, hatte es auch schon mal mit ner prozedur
ReadTabFile aus einem anderen board versucht (weiß nich tob ich hier den link dazu posten darf) die hat das StringGrid zwar schnell gefüllt aber dafür war alles nicht so geordnet und durcheinander
momentan schaut mein Code jetzt so aus:
Delphi-Quellcode:
if FileExists('
artikel_shop_' + StringGrid1.Cells[2,stringgrid1.row] + '
.txt')
then begin
Screen.Cursor := crHourGlass;
csv := TStringList.Create;
csv.LoadFromFile('
artikel_shop_' + StringGrid1.Cells[2,stringgrid1.row] + '
.txt');
StringGrid2.Rowcount := 0;
ProgressBar1.max :=
csv.Count;
for ccc2 :=
csv.Count - 1
downto 1
do begin
AnzTokens := Explode(A, '
;',
csv.Strings[ccc2]);
for i := 0
to AnzTokens -1
do begin
ccc := ccc + 1;
// Spalten-Position erhöhen
if ccc < 2
then begin StringGrid2.Cells[ccc, ccc2] := A[i];
end;
// testweise nur bei Titel und ID
if ccc = 21
then begin ccc := -1;
end;
// wenn max Spalten erreicht Zähler wieder auf Spalte 0 setzen
end;
ccc3 := ccc3 + 1;
ProgressBar1.Position := ccc3;
end;
StringGrid2.Rowcount :=
csv.Count;
Screen.Cursor := crDefault;
end;
habe da noch eine Progressbar eingebaut, da siehst man das das ganze dann zum anfang schnell geht und dann zu ende hin immer langsamer wird
hast du eventuell noch eine andere idee wie man das ganze lösen könnte ?
so wie es jetzt ist hat es nicht wirklich einen wert wenn schon ca 1800 Artikel das System für ca 1 Minute lahmlegen