tListview.add->damn slow??

Hi there,
maybe i'm off-topic, in 'misc' but i cant access '..components' at
this time.
So what's my problem? I use a listview, wich has to be updated
very very often, with up to 1000 new entrys at a time. This is damn
slow. I have tried the usually tricks, like BeginUpdate..EndUpdate
and ensured that sortType is set to None. Nothing.
Then i found out that not the add function slows the application,
but the item.caption:='Bla'-call after the item is inserted. So i tried
a little hack:
Create the item myself assign the caption and insert it afterwards.
Unfortunately all the create-stuff is private, so i extracted them
from the source and put them as raw-code in my test-application.
Now the insertion is very fast, but i don't see any listItem. Sigh.
Here's the code, maybe you have an idea, whats wrong.
Sorry for the long posting, i just love to tell storys :)
And please if you should reply ensure to send a copy to me via
e-mail, since i don't come around here too often, and i don't
wan't to miss it...

achim.k...@ping.de

Here we go
-------------------
[..form with listview and button..]

function CreateItem(Index: Integer;ListItem: TListItem): TLVItem;

function CreateItem(Index: Integer;ListItem: TListItem): TLVItem;
begin
  with Result do
  begin
    mask := LVIF_PARAM or LVIF_IMAGE;
    iItem := Index;
    iSubItem := 0;
    iImage := I_IMAGECALLBACK;
    lParam := Longint(ListItem);
  end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var i:integer;
    item:tlistitem;
    iitem:tlvitem;
begin
  listView1.items.beginUpdate;
  listView1.allocby:=100;
  for i:=1 to 1000 do
  begin
    item:=tListItem.create(listView1.items);
    item.Caption:='item'+inttostr(i);
    iitem:=createItem(i,Item);      
    listView_InsertItem(ListView1.Items.handle,iitem);
    messagebeep(0);
  end;
 listView1.items.endUpdate;
end;