Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-26565
BJValentine
2003-05-26 15:45
2003.06.09
TStringGrid


6-26625
Arkara
2003-04-06 02:09
2003.06.09
Как вызвать стандартную звонилку Windows?


7-26807
ED
2003-04-03 23:08
2003.06.09
Описание пользователя в Win 2k


3-26367
Sunny
2003-05-21 08:01
2003.06.09
Отсутствует уникальный ключ


1-26542
Михайлов Антон
2003-05-25 14:37
2003.06.09
Сервис





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский