Всем привет!
Уважаемые коллеги, помогите пожалуйста. Получаю список контактов с помощью TAddressBook, но скорость оставляет желать лучшего.
Даже загоняя в массив, а не в Listbox данные таким образом, только добавление номеров занимает около 30 секунд для 500 контактов.
Каждое дополнительное обращение например к Contacts.Items.FirstName или другим полям добавляет соразмерно времени на обработку.
Может быть есть возможность выгрузить всю коллекцию в массив и обрабатывать более быстро? То, что получается сейчас, просто непозволительно долго для внимания пользователя.
Contacts := TAddressBookContacts.Create;
form1.AddressBook1.AllContacts(form1.AddressBook1.DefaultSource, Contacts);
SetLength(ImpContList,Contacts.Count,8);
for I := 0 to Contacts.Count - 1 do
begin
if Contacts.Items[I].Phones.Count > 0 then
ImpContList[i][0]:=Contacts.Items[I].Phones.Items[0].Number;
end;