Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Listview eto problema delphi ili windows? [D5, Win95/98, WinXP]


lensky ©   (2002-11-08 07:26:00) 

to chto on tak medlianno rabotet, eto izza delphi ili windowsa?
medlianno rabotaet eto dobavliaet 50 tisiach zapisei bol"she 3 minut na 2Ghz proche...
voobshem esli eto problema delphi moshno li cherez winapi kaknit" uskorit" rabotu?


lensky   (2002-11-14 01:30:00) [1]

hmm na ownerdraw i ondata posmotru, virtual listview v demke rabotal kakto sovsem medlianno tak shto ia na nego ne obratil vnimania...
50k zapisei eto situachia konechno ekstremal"naai no ne osobo, a nashet pol"zovatel"skovo interfaca to vse ok, i situachii kak u murzikN vozn"iknut"


TTCustomDelphiMaster   (2002-11-13 18:14:00) [2]

murzikN (13.11.02 17:38)
Я как пользователь работал со списком в 672 записи. Никому не пожалаю такого. Представте нужно заполнить 80 - 90 полей. Для каждого в модальном окне открыть этот список, пролистать до нужного элемента (они отсортированы по номерам, но нужно искать текст, который я помню приблизительно) и нажать кнопку Ok. И таким образом нужно заполнить около 30 конфигураций. Так вот к вечеру после такой работы голова вообще не соображает. Это при создании конфигураций для 4 устройств. А максимальное количество записей в этом списке может быть 73728 для 256-ти устройств :-)


Кот Бегемот   (2002-11-13 18:05:00) [3]

Блинн боюсь я повторяюсь - но вы господин Ленский > извращенец :(

Работа с ListView прекрасно описана в демках Virtual Listview
Особенно много внимания оказывалось работе с большими обемами данных. 50К записей и добавлять то не нужно на самом деле :)

Для этого есть ListView.OnData()


murzikN   (2002-11-13 17:38:00) [4]

> TTCustomDelphiMaster © (13.11.02 17:17)
Выбирать будет, например, по алфавиту из отсортированного списка.
Почему никто не может представить список из нескольких десятков тысяч записей? Воображения не хватает?


TTCustomDelphiMaster   (2002-11-13 17:17:00) [5]

Дак вы поставте OwnerDraw в True и присваивайте название элемента перед его прорисовкой. Правда он все равно будет тормозить при быстром прокручивании и освобождении элементов.

PS: Интересно а как ползователь сможет выбрать нужный элемент из 50000? Или вы проверяете работу приложения в экстремальных условиях?


lensky   (2002-11-13 00:45:00) [6]

prichem skorost" padaet, postoianno naprimer 50k za 1:45 eto 1k za 2.1 secundy, a 100k ushe poluchaetsia za 7:09 eto ushe 1k za 4.29 sec
voobshem ochen" hotelos" by uvidet" kakoenit" reshenie...


lensky   (2002-11-13 00:07:00) [7]

da pravda no problema v tom shto esli my budem izmeniat" ih captiony to vipolniasia on budet gorazdo dol"she
u menia etot kod rabotaet 1:45 shto opiat"she bezumno dolgo

var
i: integer;
stime: tdatetime;
begin
stime:=now;
ListView1.Items.BeginUpdate;
for i := 0 to 50000 do
begin
(ListView1.Items.Add as tlistitem).caption:="a";
end;
ListView1.Items.EndUpdate;
showmessage(timetostr(now-stime));
end;


TTCustomDelphiMaster   (2002-11-08 10:58:00) [8]

А у меня такой код выполняется 3 сек.
var
i: integer;
begin
ListView1.Items.BeginUpdate;
for i := 1 to 50000 do
ListView1.Items.Add;
ListView1.Items.EndUpdate;
end;


VaS   (2002-11-08 08:44:00) [9]

ListView1.Items.BeginUpdate;
try
//добавляем, удаляем
finally
ListView1.Items.EndUpdate;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо