Форум: "Основная";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];
ВнизSorting TList Найти похожие ветки
← →
McSimm2 (2003-12-04 11:13) [0]Можно отсортировать данные в TListe по 2 полям ?
← →
Digitman (2003-12-04 11:20) [1]да хоть по 20-ти
← →
Anatoly Podgoretsky (2003-12-04 11:26) [2]Только в TList нет 2 полей, это всего список указателей.
← →
McSimm2 (2003-12-04 11:34) [3]Anatoly Podgoretsky © (04.12.03 11:26) [2]
Да, точно, конечно же...
Подскажите, плиз, как сделать сортировку по 2 полям.
PReportRecord = ^TReportRecord;
TReportRecord = record
Month, Year: String;
....
end;
procedure TFrm_main.SortList();
function CompareListItems(Item1, Item2: Pointer): Integer;
var
RecA: PReportRecord absolute Item1;
RecB: PReportRecord absolute Item2;
begin
if RecA^.Year < RecB^.Year then
Result := -1 else
if RecA^.Year = RecB^.Year then
Result := 0 else
Result := 1;
end;
begin
FReportList.Sort(@CompareListItems);
end;
Как сделать что бы отсортировалось по году(1) и по месяцу(2) ???
← →
Семен Сорокин (2003-12-04 11:38) [4]наверное так:
function CompareListItems(Item1, Item2: Pointer): Integer;
var
RecA: PReportRecord absolute Item1;
RecB: PReportRecord absolute Item2;
begin
if RecA^.Year < RecB^.Year then
Result := -1
else if RecA^.Year > RecB^.Year then
Result := 1
else if RecA^.Month < RecB^.Month then
Result := -1
else if RecA^.Month > RecB^.Month then
Result := 1
else
Result := 0
end;
← →
gek (2003-12-04 11:39) [5]Попробуй так
if RecA^.Year < RecB^.Year then
begin
if RecA^.Month < RecB^.Month then
....
end
← →
McSimm2 (2003-12-04 11:42) [6]Семен Сорокин © (04.12.03 11:38) [4]
Большое спасибо - всё OK
Всем спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c