Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Сидорович
125 / 27 / 2
Регистрация: 03.08.2010
Сообщений: 576
Завершенные тесты: 2
1

Оптимизация ListView

28.02.2011, 21:07. Просмотров 803. Ответов 3
Метки нет (Все метки)

Есть функция, на вход которой подаётся
Delphi
1
var sbItems: arTStrings; var cpItems: arString
Delphi
1
2
type arTStrings = array of TStrings;
type arString = array of string;
В sbItems содержатся SubItem'ы будущих Item'ов. В cpItems содержатся Caption'ы будущих Item'ов.

Вот сама функция:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  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 секунд на не самом медленном процессоре! Есть возможность оптимизировать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2011, 21:07
Ответы с готовыми решениями:

Оптимизация
Как оптимизировать большие тексты или RichEdit? Надо увеличить его возможность...

Оптимизация
Всем привет! Недавно написал функцию, всё пашет, но ооооочень долго (я так и не...

Оптимизация
Добрый вечер у меня 2 вопроса 1. На форме стоит 33 кнопки мне надо чтоб у них...

Оптимизация
Доброго времени суток! Чуть ли не первая попытка что-то написать (о работе с...

Оптимизация
Вот в делфи собрал програмку для выведения 4 случайных чисел в столлбик! Код...

3
mss
2634 / 2258 / 276
Регистрация: 24.12.2010
Сообщений: 13,725
01.03.2011, 11:00 2
Либо штудировать и задействовать методы TListItems.BeginUpdate/EndUpdate
либо задействовать виртуальный режим ListView, что более оправдано при таких объемах данных
0
Сидорович
125 / 27 / 2
Регистрация: 03.08.2010
Сообщений: 576
Завершенные тесты: 2
01.03.2011, 11:41  [ТС] 3
Пытался использовать методы BeginUpdate/EndUpdate, но не сильно помогло. А как использовать виртуальный режим?
0
mss
2634 / 2258 / 276
Регистрация: 24.12.2010
Сообщений: 13,725
01.03.2011, 11:53 4
в справке же пример есть ..
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2011, 11:53

Оптимизация
Вечер добрый. Столкнулся с проблемой, прошу помощи. Преподаватель сказал...

Оптимизация программы
2 проблемы.. 1) есть кнопки 5 кнопок ... и нужно чтобы делались активными по...

оптимизация кода
Помогите,пожалуйста,оптимизировать код на delphi. procedure variant5n; const...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru