This site is temporarily down. Please come back. ListBox.Items.Add is slow and flickers
DelphiFAQ Home Search:

ListBox.Items.Add is slow and flickers

 

commentsThis article has not been rated yet. After reading, feel free to leave comments and rate it.

Adding a (larger) group of entries to a ListBox is very slow,
because after every "items.add" call the ListBox is repainted.

There are two ways to overcome this:

  • use the Windows message WM_SETREDRAW (see Win32.hlp for details).
    The VCL provides two methods for this: BeginUpdate and EndUpdate.
    I would assume that this is faster than method #2.
  • read the strings in a temporary TStringList object.
    Maybe you already have such a list - in this case you should use your existing list.
    Then use the Assign method to transfer the whole list.
Some sample code after a contribution from Bjrn:

// method #1
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
begin
  ListBox1.Items.BeginUpdate;
  for i:=1 to maxitems do
    ListBox1.Items.add(IntToStr(i));
  ListBox1.Items.EndUpate;
end;

// method #2
procedure TForm1.Button2Click(Sender: TObject);
var
  i  : integer;
  tmp: tstringlist;
begin
  tmp:=TStringList.Create;
  for i:=1 to maxitems do
    tmp.add(inttostr(i));
  ListBox1.Items.Assign(tmp);
  tmp.Free;
end;

Content-type: text/html

Comments:

2012-06-18, 21:39:41
anonymous from Colombia  
One alleged victim would routinely throw away his underwear to hide [url= http://www.louisvui..net/]Louis Vuitton Bags[/url] the supposed abuse. Week two of the trial began with a final prosecution witness. The mother of Victim No. 9 took the [url= http://www.chanelou..et/]Chanel Purses[/url] stand Monday to detail her son’s cover-up of the alleged sordid acts he suffered at Sandusky’s hands. “I [url= http://www.guccibel..rg/]Hermes Belts[/url] always wondered why he never had any underwear in the laundry,” she testified. “He just told me he had an [url= http://www.beltsout...org/]Mens Belts[/url] accident and he threw them out.” Indeed, she testified that he started becoming “sick” more often after [url= http://www.topbelts..org/]Gucci Belts[/url] spending time with the ex-Penn State coach. Victim No. 9 supposedly slept over at the Sandusky residence more than 100 times.Victim No. 9 testified [url= http://www.louisvui..net/]Louis Vuitton Handbags[/url] last Thursday that he screamed during one episode of alleged abuse, hoping that [url= http://www.beltsonl..com/]Louis Vuitton Belts[/url] Sandusky’s wife, who he said was always upstairs, would hear. “I think the basement is soundproof,” he said [url= http://www.chanels-..om/]Chanel Handbags[/url] tearfully, noting that Sandusky’s wife Dottie never did come down.Lead defense attorney Joe Amendola has also [url= http://www.chanelba..om/]Chanel Handbag[/url] suggested previously that the accusers and the Attorney General’s office might be colluding. Lead prosecutor Joe [url= http://www.lvshopos..net/]Louis Vuitton Purses[/url] McGettigan has often queried the alleged victims while on the stand: “Have I ever, ever, ever told you what to say?” which they’ve answered with resounding denials. But it could be a larger issue for Kline and the other subpoenaed attorneys to defend themselves against a [url= http://www.louisvui..com/]Louis Vuitton Purse[/url]
charge of violating the gag order issued by Judge Cleland, which bars any representative from either side from discussing the case with the media.


 

 

NEW: Optional: Register   Login
Email address (not necessary):

Rate as
Hide my email when showing my comment.
Please notify me once a day about new comments on this topic.
Please provide a valid email address if you select this option, or post under a registered account.
 

Show city and country
Show country only
Hide my location
You can mark text as 'quoted' by putting [quote] .. [/quote] around it.
Please type in the code:

Please do not post inappropriate pictures. Inappropriate pictures include pictures of minors and nudity.
The owner of this web site reserves the right to delete such material.

photo Add a picture: