Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];

Вниз

TListView медленно выводит данные!!!   Найти похожие ветки 

 
Schummi   (2002-10-04 08:34) [0]

Например, для вывода 100 строк в таблицу, в которой 7 столбцов, требуется на моем компе ~1.5 сек. А на компе послабее - ещё больше времени. А TStringGird например 700 записей(тоже 7 столбцов) за ~1.5 сек. Сразу говорю, TStringGird использовать не хочу. Почему? - Не спрашивайте! Помогите лучше с TListView разобраться! Заранее всем ответившим спасибо!


 
СлБ   (2002-10-04 08:44) [1]

Используй Items.BeginUpdate, Items.EndUpdate


 
Schummi   (2002-10-06 08:55) [2]

Да это не то. Он просто "скрывает" обновление, т.с. замораживает ListView до тех пор, пока ты не сделаешь "Items.EndUpdate". Ты читал, что я в вопросе написал???
> Например, для вывода 100 строк в таблицу, в которой 7 столбцов,
> требуется на моем компе ~1.5 сек. А на компе послабее -
> ещё больше времени. А TStringGird например 700 записей(тоже
> 7 столбцов) за ~1.5 сек. Сразу говорю, TStringGird использовать
> не хочу. Почему? - Не спрашивайте! Помогите лучше с TListView
> разобраться! Заранее всем ответившим спасибо!



 
ximka   (2002-10-06 11:15) [3]

Попробуй на время зпволнения, сделать visible...


 
Эльф   (2002-10-06 11:38) [4]

Есть такое свойство DoubleBuffered;
Попробуй :=true;


 
Alex4444444444   (2002-10-06 13:20) [5]

Begin/EndUpdate SIL"NO uvelichivaet skorost", no TListView v principe medlennuy. Ya uzh ne znayu, kakoj on u M$, no v Delphi interface sdelan tochno per annus.


 
lammoth   (2002-10-06 14:03) [6]

Тебе поможет свойство TListView.OwnerData и обработка
TListView.OnData и вообще использование т.н. "виртуального list view"
Я таким макаром показывал списки в десятки тысяч элементов. Естественно одновременно на экране было около сотни.


 
Vladislav   (2002-10-07 11:02) [7]

Я для себя определил верный способ и с listview и с treeview. Во время изменения делаю Visible := False, а потом в True.


 
monstrische   (2002-10-07 15:12) [8]

Так задумано, ListView сам по себе довольно тормозной. Например, код, приведенный ниже, на Celeron 333 работает примерно 3с. Основной способ борьбы с тормознутостью - это отключение перерисовки на время изменения листа (BeginUpdate, EnadUpdate). Без этого - 3,8с. Можно еще раскомментарить строчки ListView1.AllocBy := 100; и Subitems.Capacity := 6;, но это, если и помогает, то незначительно. А вот сбрасывать на время изменений свойство Visible - это, извините, плохо пахнет. Тем более, ни грамма не помогает. Пардон, если кого обидел.

procedure TForm1.Button2Click(Sender: TObject);
var
i,j: integer;
T: Cardinal;
begin
T := GetTickCount;

ListView1.Items.BeginUpdate;
// ListView1.AllocBy := 1000;

for i := 1 to 100 do begin
with ListView1.Items.Add do begin
Caption := "Item caption";
// Subitems.Capacity := 10;
for j := 0 to 5 do
Subitems.Add("Subitem "+IntToStr(j));
end;
end;

ListView1.Items.EndUpdate;
Caption := IntToStr(GetTickCount - T);
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
1-56114
Nomad.kz
2002-10-09 09:33
2002.10.17
в двух соснах заблудился :-) - это про TIcon


1-56121
KPY
2002-10-07 07:46
2002.10.17
Народ подскажите почему код не работает. У меня нет вариантов :(


4-56422
Billy
2002-09-02 02:07
2002.10.17
DC для печати в файл


4-56405
МИФИст
2002-09-03 21:45
2002.10.17
Номер последней видмиой строки в RichEdit е...


1-56036
Zodik
2002-10-07 22:29
2002.10.17
Как пользовать компонент Chart





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский