da ich deine routinen nicht kenne, kann ich dazu schlecht ein beispiel machen. außerdem wüsste ich nicht zu welcher methode?
theoretisch:
Delphi-Quellcode:
TDatenInfo = record
Data: String; // oder was auch immer
ID: Integer; // dein alter itemindex
end;
TDatenInfoArray = Array of TDatenInfo;
Sobald du nun ein Item in deine vorherige Liste geaddet hast, erhöhst du hier die Array Größe und übergibst die Infos an das Record.
Am besten wäre es du verwendest SetLength nur einmalig vor dem adden aller items (da es sonst recht lange dauern kann).