Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Geschwindigkeit beim auslesen verbessern

  Alt 9. Feb 2005, 13:11
Eventuell würde es auch einiges bringen für jede Zeile und Spalte des SG vor dem füllen ein BeginUpDate zu machen und nach dem Füllen ein EndUpdate:

Delphi-Quellcode:
procedure SGBeginUpdate (sg : TStringGrid);
var
  ndx : Integer;
begin
  for ndx := 0 to sg.RowCount-1 do
  begin
    sg.Rows[ndx].BeginUpdate;
  end;
  for ndx := 0 to sg.ColCount -1 do
  begin
    sg.Cols[ndx].BeginUpdate;
  end;
end;

procedure SGEndUpdate (sg : TStringGrid);
var
  ndx : Integer;
begin
  for ndx := 0 to sg.RowCount-1 do
  begin
    sg.Rows[ndx].EndUpdate;
  end;
  for ndx := 0 to sg.ColCount -1 do
  begin
    sg.Cols[ndx].EndUpdate;
  end;
end;


.
.
    grd_asset.Rows:= DM.ZQ.RecordCounte + 1; // Zeilenanzahl
    while not DM.ZQ.Eof do
    begin
        c:=c+1;

        s:= DM.ZQ.Fieldbyname('DATA').asString;
        templist.DelimitedText:=s;
        if c = 1 then
        begin
          grd_asset.Cols:=templist.Count; // Spaltenanzahl
          SGBeginUpDate (grd_asset); // BeginUpdate für das SG
        end;
        for i:=1 to templist.Count do
          grd_asset.Cell[i,c]:=templist.Strings[i-1];
// end;
    DM.ZQ.Next;
    end;
    SGEndUpDate (grd_asset); // EndUpdate für das SG
.
.
Vorher müssen natürlich die Spalten und Zeilenanzahlen bekannt sein.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat