Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.23;
Скачать: CL | DM;

Вниз

Фильтрация списка строк. Как сделать ?   Найти похожие ветки 

 
Альф   (2005-09-29 14:15) [0]

Имеется список строк в TStringList (порядка несколько тысяч) c присоединенными классами в Objects. Этот класс такого вида:

TStringRecord = class(TObject)
 FDateTime: TDateTime;
// ... далее другие нужные для нас параметры
end;

Отображается этот TStringList в ListBox со стилем lbVirtual через TListBox.OnData(...).
Как лучше сделать фильтрацию записей в листбоксе, чтобы отображались только те - которые соответствуют определенным критериям в TStringRecord. Например по диапазону дат.

Первое что пришло в голову - это использовать промежуточный список типа индекса, который перестраивать по критерию.
Но посредсвом чего лучше реализовать пока не знаю.


 
umbra ©   (2005-09-29 14:31) [1]

я бы в таком случае сначала создал класс-контейнер таких объектов (на основе TList), добавил бы в него еще один TList для хранения указателей на объекты, удовлетворяющие условию фильтрации и написал бы для этого класса процедуру фильтрации. Затем, после фильтрации выдавал бы информацию из списка прошедших фильтр в ListBox.


 
Digitman ©   (2005-09-29 14:33) [2]


> Первое что пришло в голову - это использовать промежуточный
> список типа индекса, который перестраивать по критерию


и правильно пришло !

создаешь "промежуточный" Tlist, в цикле бежишь по фильтруемому TStringList, если элемент удовлетворяет критерию - добавляешь его индекс как элемент TList

после фильтрации учтанавливаешь размер виртуального лист-бокса равным размеру полученного таким образом TList, в событии OnData выбираешь из TList соотв.элемент и по его содержимому (индексу) выходишь на соотв.элемент TStringList, откуда и берешь подпись и сам объект
в OnData


 
Альф   (2005-09-29 14:45) [3]

Большое спасибо. Сейчас попробую реализовать.



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

Текущий архив: 2005.10.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.037 c
14-1128373582
Chuvak
2005-10-04 01:06
2005.10.23
Программы для сжатия трафика


3-1126086628
DelphiN!
2005-09-07 13:50
2005.10.23
Загрузка процессора на 100% после select запроса


14-1127992446
igor666
2005-09-29 15:14
2005.10.23
Подскажите плз. есть ли какой-нибудь компонент...


8-1117483278
Nicolaev Oleg
2005-05-31 00:01
2005.10.23
Работа с видео


3-1126016397
Drakosha
2005-09-06 18:19
2005.10.23
Найти дырки в таблице