обращаюсь за помощью ускорить мой алгоритм копирования Item из ShellListView в простую ListView. Работает у меня все отлично, только вот медленно как то. Не подскажите как это ускорить?
Вот код:
- Код: Выделить всё
// Копировать Items из ShellListView в ListView
procedure TMainForm.MoveAllToListViewBitBtnClick(Sender: TObject);
var
MyItem: TListItem;
i, j, c: Word;
available: Boolean = False;
begin
if ShellListView1.Items.Count > 0 then
begin
c := ListView1.Items.Count;
for i := 0 to ShellListView1.Items.Count - 1 do
begin
// Тут я проверяю нет ли Itema уже в ListView
if c > 0 then
begin
available := False;
for j := 0 to c - 1 do
begin
if (ShellListView1.Items.Item[i].Caption = ListView1.Items.Item[j].SubItems.Strings[0]) then
available := True;
end;
end;
// Конец проверки
// Если в ListView Itema еще нет, тогда добавляем
if not available then
begin
MyItem := ListView1.Items.Add;
//MyItem.Data := 'Data';
MyItem.SubItems.Add(ShellListView1.Items.Item[i].Caption);
MyItem.SubItems.Add(ShellListView1.Items.Item[i].SubItems.Strings[0]);
MyItem.SubItems.Add(ShellListView1.GetPathFromItem(ShellListView1.Items.Item[i]));
ListView1.Items[ListView1.Items.Count - 1].Checked := True; // CheckBox setzen
// И привязываем соответственно иконки
ListViewTypIcons(ShellListView1.Items.Item[i].SubItems.Strings[1]);
end;
end;
end;
end;
Большое спасибо за помощь!