Einzelnen Beitrag anzeigen

Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#3

Re: Speicherstelle und StringGrid

  Alt 30. Jul 2006, 17:54
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
Jens
  Mit Zitat antworten Zitat