Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.012 c
1-26461
dsp
2003-05-29 13:04
2003.06.09
Как быстро разобраться в чужом большом проекте


1-26460
Yanis
2003-05-28 21:34
2003.06.09
Вопрос: Как убить процесс?


8-26621
Sergeys
2003-02-19 20:03
2003.06.09
сглаживание картинки


3-26330
Reals
2003-05-19 14:29
2003.06.09
Как узнать какое значение добавилось в поле AutoNumber базы...


8-26610
Сашок
2003-02-25 15:19
2003.06.09
Фон в TextOut




   Наверх