TListItem.Data: почему так медленно?
От: Firstborn Латвия  
Дата: 09.07.04 13:46
Оценка:
Ситуация такова: имеется некий ListView, который заполняется примерно 300 ListItems, которые тут же и создаются. Вобщем есть цикл, в котором мы создаём ListItem, выставляем ему определённые значения Caption и всё, собственно. Такой вариант отрабатывает в мгновение ока, т.е. никаких задержек не замечено. Затем я в этот цикл добавил одну строчку, смысл которй в сохранении некоторого указателя в свойстве Data каждого ListItem. Выглядит это так:

var LI: TListItem;
. . .
LI.Data := Pointer(p); 
. . .

И вот после добавления этой строки на той же системе процесс заполнения ListView заметно затормозился, то есть теперь он занимает где-то около секунды. Задержка эта визуальная, а оттого неприятная, тем более что заполняем только 300 item'ов, а что если 3000 понадобится? Хотелось бы понять, в чём тут дело...
Re: TListItem.Data: почему так медленно?
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 09.07.04 14:10
Оценка: 6 (1)
У тебя SortType у TListView случайно не ssBoth или ssData?
Если нет — приведи полностью код, заполняющий TListView.

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re: TListItem.Data: почему так медленно?
От: merlin.fs Украина  
Дата: 09.07.04 14:14
Оценка: 45 (1)
Ну первое, надеюсь .Items.BeginUpdate, .Items.EndUpdate, проставлены.
а второе если установлена сортировка SortType = stBoth или stData при изменении TListItem.Data
ListView пересортировывает весь список.
Re[2]: TListItem.Data: почему так медленно?
От: Firstborn Латвия  
Дата: 09.07.04 14:17
Оценка:
Здравствуйте, Slicer [Mirkwood], Вы писали:

SM>У тебя SortType у TListView случайно не ssBoth или ssData?

SM>Если нет — приведи полностью код, заполняющий TListView.

SM>Slicer

Чёрт подери, SortType действительно стоит в stBoth, мог бы и сам догадаться! Спасибо большое! Однако, что мне теперь делать? Мой SortType должен быть выставлен в stBoth или stData, просто для того, чтобы работал TListView.OnCompare, через который у меня реализована хитрая сортировка.
Re[3]: TListItem.Data: почему так медленно?
От: merlin.fs Украина  
Дата: 09.07.04 14:21
Оценка: 6 (1)
Здравствуйте, Firstborn, Вы писали:

F>Чёрт подери, SortType действительно стоит в stBoth, мог бы и сам догадаться! Спасибо большое! Однако, что мне теперь делать? Мой SortType должен быть выставлен в stBoth или stData, просто для того, чтобы работал TListView.OnCompare, через который у меня реализована хитрая сортировка.


установи ее после того как все добавишь
Re[4]: TListItem.Data: почему так медленно?
От: Firstborn Латвия  
Дата: 09.07.04 14:24
Оценка:
Здравствуйте, merlin.fs, Вы писали:

MF>Здравствуйте, Firstborn, Вы писали:


F>>Чёрт подери, SortType действительно стоит в stBoth, мог бы и сам догадаться! Спасибо большое! Однако, что мне теперь делать? Мой SortType должен быть выставлен в stBoth или stData, просто для того, чтобы работал TListView.OnCompare, через который у меня реализована хитрая сортировка.


MF>установи ее после того как все добавишь


Хм. Верно. Спасибо. Чувствую, пора заканчивать рабочую неделю, а то я ещё чего-нибудь в этом духе наспрашиваю
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.