Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Vorteil von .BeginUpdate & .EndUpdate (https://www.delphipraxis.net/74342-vorteil-von-beginupdate-endupdate.html)

xZise 1. Aug 2006 17:39


Vorteil von .BeginUpdate & .EndUpdate
 
Was haben diese beiden Funktionen für einen Vorteil in einer Prozedur?

arbu man 1. Aug 2006 17:41

Re: Vorteil von .BeginUpdate & .EndUpdate
 
Sie sorgen dafür das die änderungen erst dann wirksam werden wenn sie sollen da bring speed , da z.b. nicht immer neugezeichnet wird

xZise 1. Aug 2006 17:44

Re: Vorteil von .BeginUpdate & .EndUpdate
 
Bringt es was in diesem?
Delphi-Quellcode:
myListBox.beginUpdate
for i := 1 to 100 do begin
  myListBox.items.add(IntToStr(i) + ' Item');
end;
myListBoy.EndUpdate
und wenn nix gezeichnet wird?

arbu man 1. Aug 2006 17:50

Re: Vorteil von .BeginUpdate & .EndUpdate
 
imho ja

sonst teste es doch mal mit gettickcount

Flocke 1. Aug 2006 19:14

Re: Vorteil von .BeginUpdate & .EndUpdate
 
Zitat:

Zitat von xZise
Bringt es was in diesem?
Delphi-Quellcode:
myListBox.beginUpdate
for i := 1 to 100 do begin
  myListBox.items.add(IntToStr(i) + ' Item');
end;
myListBoy.EndUpdate
und wenn nix gezeichnet wird?

1. Packe es in try..finally. Wenn dir nach BeginUpdate eine Exception um die Ohren gehauen wird und du das entsprechende EndUpdate nicht aufrufst, dann wird die Komponente überhaupt nicht mehr aktualisiert. Also:
Delphi-Quellcode:
myListBox.BeginUpdate
try
  for i := 1 to 100 do
    myListBox.items.Add(IntToStr(i) + ' Item');
finally
  myListBox.EndUpdate;
end;
2. Es kann einen riesigen Unterschied in der Laufzeit ausmachen, also bei größeren Änderungen immer benutzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz