Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];
ВнизTlist.Sort Найти похожие ветки
← →
McSimm2 (2003-05-28 10:36) [0]Народ, торможу: объясните что передавать в сабж нужно ???
type TListSortCompare = function (Item1, Item2: Pointer): Integer;
procedure Sort(Compare: TListSortCompare);
^^^ Это как ???
← →
MBo (2003-05-28 10:38) [1]пишешь функцию с такими параметрами (не метод класса!), результат которой зависит от сравнения элементов, и указываешь ее при вызове Sort
← →
Palladin (2003-05-28 10:41) [2]примерно так
function Absurd(p1,p2:pointer):integer;
begin
result:=integer(p1)-integer(p2);
end;
...
TList.Sort(Absurd);
← →
McSimm2 (2003-05-28 10:45) [3]А В качестве Item1, Item2 я что передаю? У меня смысл такой, что мой TList содержит указатели на рекорд, поле в котором символьное. Вот по нему мне и нужно сортировку провести.
← →
Palladin (2003-05-28 10:50) [4]ты?
ты ничего не передаешь, эту функцию можно определить как callback,
тоесть ее вызывает TList при сортировке элементов, Item1 и Item2 это и есть твои record, сравнивай...
← →
gek (2003-05-28 10:53) [5]Ну тогда примерно так
type
pRecAb = ^ TRecAb;
TRecAb = record
NAb:string;
................
................
................
end;
function CompareListItems(Item1,Item2:pointer):integer;
var
RecA : pRecAb absolute Item1;
RecB : pRecAb absolute Item2;
begin
if RecA^.NAb < RecB^.NAb then result:= -1
else if RecA^.NAb = RecB^.NAb then result:= 0
else result:= 1
end;
ListAb.Sort(CompareListItems); //сортировка
Поверь у меня сортирует
← →
McSimm2 (2003-05-28 10:56) [6]To Palladin
Я имею ввиду функцию Absurd(p1,p2:pointer):integer;
Мне сравнить нужно не integer,а string ....
Мне p1 и p2 нужно по всему алфавиту гонять что выяснилось что раньше идёт ???
← →
McSimm2 (2003-05-28 10:57) [7]To gek
огромное спасибо ....
← →
McSimm2 (2003-05-28 11:04) [8]To gek
IMHO вот так нужно
ListAb.Sort(@CompareListItems);
← →
pasha_golub (2003-05-28 11:50) [9]2McSimm2
Совершенно без разницы. Компиллер одинаковый код генерит!
← →
McSimm2 (2003-05-28 11:55) [10]в Help`е передаётся адрес..
← →
gek (2003-05-28 12:03) [11]
> McSimm2 (28.05.03 11:55)
Ну а что же ты сначала в help не полез?
← →
McSimm2 (2003-05-28 12:08) [12]В help залез - не совсем понял что в функции описывать :(
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c