Вниз
Скачать: CL | DM;

Помогите отсортировать ListView не по caption   Найти похожие ветки 

← →
hero   (2008-01-10 07:18) [0]

мне нужно отсортировать список скажем по 3-ей колоке!! КАК?
ни как не могу разобраться с TLVCompare.

Подскажите ,кто сталкивался с этой проблем.


← →
{RASkov} ©   (2008-01-10 07:26) [1]

> [0] hero   (10.01.08 07:18)

http://www.yandex.ru/yandsearch?clid=9582&text=%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0+TListView


← →
hero   (2008-01-10 10:28) [2]

дело в том что событе OnCompare сразу после item.add таким образом item.subitems = "" поэтому следующий код вызывает ошибку

procedure TForm1.ListView1Compare(Sender: TObject; Item1,
 Item2: TListItem; Data: Integer; var Compare: Integer);
var
 n1, n2: integer;
begin
 n1 := StrToInt(Item1.SubItems[2]);
 n2 := StrToInt(Item2.SubItems[2]);
 if n1 > n2 then
   Compare := -1
 else if n1 < n2 then
   Compare := 1
 else
   Compare := 0;
end;



есть ли другой выход?


← →
@!!ex ©   (2008-01-10 10:30) [3]

> [2] hero   (10.01.08 10:28)

А зачем в число переводить?
"98">"15"
98>15
так нафиг перевод?


← →
авыф   (2008-01-10 10:46) [4]

сортировать после заполнения всего списка


← →
morgoth   (2008-01-10 11:37) [5]

> [3]
ты не поверишь, но "98" будет больше "115" ))), вот затем и перевод


← →
@!!ex ©   (2008-01-10 11:55) [6]

> [5] morgoth   (10.01.08 11:37)

упс. действительно. тогда проверку на пустое поле надо вставить.


← →
Сергей М. ©   (2008-01-10 12:45) [7]


> hero   (10.01.08 10:28) [2]


Либо запускай сортировку после заполнения списка либо проверяй строку на непустое значение, прежде чем конвертить ее в число.

Да и нафих нужна эта конверсия, если соответствующее строке число можно хранить в TListItem.Data ?


← →
hero   (2008-01-10 13:30) [8]

дело не в переводе в числа .. там .. или обратно,
я проверяю фунцией lstrcmp(PChar(string1), PChar(string2));

Как запустить проверку после заполнения всех данных ???
после каждого добавления делать  :
 ListView1.CustomSort(nil, 0); ?!?!?!?!

при этом ListView1.SortType := stNone; ???


← →
Сергей М. ©   (2008-01-10 13:37) [9]


> hero   (10.01.08 13:30) [8]


> после каждого добавления делать  :
>  ListView1.CustomSort(nil, 0); ?!?!?!?!
>
> при этом ListView1.SortType := stNone; ???
> <Цитата>
>
>  


Угу. Если объем списка сравнительно невелик. Иначе тормоза при  таком подходе неизбежны.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.016 c
10-1142943441
tower
2006-03-21 15:17
2008.02.03
Подключение в ASP СОМ обьекта сделанного в Delphi


15-1198777130
Petr V. Abramov
2007-12-27 20:38
2008.02.03
про спам


6-1179291582
апвып
2007-05-16 08:59
2008.02.03
компонент NMHTTP1.


15-1198529781
Evanescence
2007-12-24 23:56
2008.02.03
Ищу название и исполнитель песни


15-1196539355
turbouser
2007-12-01 23:02
2008.02.03
Мастера




   Наверх