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

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

Сортировка 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 используй


Наверх

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