Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

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

Re: Stringgrid befüllen > massives Timingproblem

  Alt 12. Jul 2004, 14:56
Hai richard_boderich,

Zitat von richard_boderich:
...ich habe in der delphi hilfe gesucht, habe update aber nur im zusammenhang
mit kompletten grids gefunden,...
TStringGrid.Update verwende ich ja auch nicht Diese Methode zwingt das Grid sich neu zu zeichnen.

Normalerweise wird das TStringGrid jedesmal wenn Du den Inhalt einer Celle änderst komplett neu gezeichnet.
TStringGrid.Rows.BeginUpdate verhindert das neu Zeichnen des Grids solange bis TStringGrid.Rows.EndUpdate aufgerufen wird.

Du sagst quasi: "Hallo StringGrid, jetzt kommen Daten aber ich möchte nicht das du sie darstellst bis ich es dir sage"
Und da das Zeichen sehr viel Zeit braucht bist Du so einfach schneller. Und für jede Zeile des StringGrids .BeginUpDate aufrufen geht im vergleich dazu sehr sehr schnell.

BTW: Du kannst bei deinem Code meine Procedure auch noch aufrufen bevor Du deinen beiden anderen StringGrids (als Parameter immer der Name des entsprechenden SG) mit Daten füllst. Dann wird das ganze noch flüssiger.

Also ganz am Anfang deiner Routine:
Delphi-Quellcode:
begin
  SGBeginUpdate(Form1.StringGrid4);
  SGBeginUpdate(Form1.StringGrid5);
  SGBeginUpdate(Form1.StringGrid6);
  .
  // Jetzt das füllen der drei StringGrids
  .
  SGEndUpdate(Form1.StringGrid4);
  SGEndUpdate(Form1.StringGrid5);
  SGEndUpdate(Form1.StringGrid6);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat