![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка ListView [D7, WinXP]
.ruslan © (2006-04-20 13:45:00)Как отсортировать по второй колонне (в которой дата) список в TListView
.ruslan (2006-04-20 15:51:00) [1]Какое действие происходит при смене Cheked ?
.ruslan (2006-04-20 15:21:00) [2]И ещё такой вопрос: у меня декствие стоит на ListView1Change но как сделать чтобы действие выполнялось только при смене Checked?
.ruslan (2006-04-20 15:12:00) [3]
> На всякий случай - item1.SubItems[2] - это четвертая колонка.
> Она у тебя есть?
нужно сортировать по 3ей
.ruslan (2006-04-20 15:12:00) [4]ВСЁ РАБОТЕТ, ВСЕМ СПАСИБО!
MBo (2006-04-20 15:04:00) [5]На всякий случай - item1.SubItems[2] - это четвертаяколонка. Она у тебя есть?
kilkennyCat (2006-04-20 15:03:00) [6]столбцы начинаются с нуля
.ruslan (2006-04-20 15:02:00) [7]
> Скорее EStringListError
Project ... exception class EStringListError with message 'List index out of bounds (2)'
Alarm (2006-04-20 14:55:00) [8]Где ты смог найти EStreengListError
Скорее EStringListError
Description.
EStringListError is raised when an application attempts to access a list box (for example, to add an item) using an invalid index
Хотя не очень понятно как ты туда попал?
.ruslan (2006-04-20 14:55:00) [9]мне не нужно нахимать на колону, а сделал действие на кнопку ListView1.CustomSort(@CustomDateSortProc, 0);
а в функции указал номер столбца:
function CustomDateSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin
result:=0;
if strtodatetime(item1.SubItems[2]){>}< strtodatetime(item2.SubItems[2]) then
Result :=1
else
if strtodatetime(item1.SubItems[2]){<}> strtodatetime(item2.SubItems[2]) then
Result :=-1;
end;
Alarm (2006-04-20 14:52:00) [10]В каком месте (уточни)?
У меня вроде и очень давно работает
.ruslan (2006-04-20 14:47:00) [11]
> Alarm
EStreengListError
Alarm (2006-04-20 14:29:00) [12]
function CustomDateSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin
result:=0;
if strtodatetime(item1.SubItems[colN]){>}< strtodatetime(item2.SubItems[colN]) then
Result :=1
else
if strtodatetime(item1.SubItems[colN]){<}> strtodatetime(item2.SubItems[colN]) then
Result :=-1;
end;
procedure TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
if column =ListView1.columns[3] then
ListView1.CustomSort(@CustomDateSortProc, 0);
.ruslan (2006-04-20 14:26:00) [13]Не получается, мне нужно по дате
MBo (2006-04-20 14:18:00) [14]Да, можно. В справке есть.
.ruslan (2006-04-20 14:11:00) [15]А можно пример кода?
MBo (2006-04-20 13:51:00) [16]CustomSort используй