Текущий архив: 2008.02.03;
Скачать: 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 вся ветка
Текущий архив: 2008.02.03;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.068 c