Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: EndUpdate: Wo soll da neugezeichnet werden?

  Alt 22. Okt 2005, 18:51
wenn ein Element in eine Liste eingefügt wird dann wird überprüft ob updatecount gleich 0 ist. Wenn dem so ist wird die Liste neu gezeichnet. Wenn du jetzt 1000 Elemente einfügst ohne BeginUpdate/EndUpdate so wird die Liste 1000 mal neu gezeichnet, und das neu zeischnen verbraucht die performance.

Wenn du ein Item hinzufügst wird folgendes Funktion aufgerufen
Delphi-Quellcode:
procedure TStringList.Changed;
begin
  if (FUpdateCount = 0) and Assigned(FOnChange) then
    FOnChange(Self);
end;
Wenn also BeginUpdate aufgerufen wurde so wird das OnChange nicht ausgelöst und somit weiß das grafische Element auch nicht das es sich neu zeischnen muss und somit geht das ganze schneller.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat