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.