Есть функция, на вход которой подаётся
Код:
var sbItems: arTStrings; var cpItems: arString
Код:
type arTStrings = array of TStrings;
type arString = array of string;
В
sbItems содержатся SubItem'ы будущих Item'ов. В
cpItems содержатся Caption'ы будущих Item'ов.
Вот сама функция:
Код:
with FormMain.ListGame do
begin
Clear;
count := Length(gameList) - 1;
if count > FormMain.spnMaxCount.value then
count := FormMain.spnMaxCount.value;
if count > 0 then
FormLoadScreen.Showload;
{На вышеприведенные мусор не обращайте внимание. Это просто подсчёт
количества Item'ов и вычистку ListView'а}
for i := 0 to count do
begin
FormLoadScreen.SetCount(i, count); //Это чисто техническая. Не обращайте внимания
li := Items.Add; //Добавляем пустой Item
li.Data := gameList[i]; //Приписываем ему объект
li.Caption := cpItems[i]; //Приписываем ему Caption
li.ImageIndex := -1; //Приписываем пустой значок
li.SubItems := sbItems[i]; //Приписываем SubItem'ы
li.SubItemImages[9] := 2; //Одному из SubItem'ов приписываем значок
end;
end;
FormLoadScreen.HideLoad;
Данный метод работает очень медленно. Уже поздно, поэтому зависимость Time(count) пока проводить не буду. Но при count = 13500 заполняет 18 секунд на не самом медленном процессоре! Есть возможность оптимизировать?