Главная страница
    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.008 c
1-26528
servs
2003-05-26 20:52
2003.06.09
OnDestroy для ActiveXForm


1-26532
Deus
2003-05-25 21:05
2003.06.09
Насчёт размера программ(в памяти)


14-26725
Tahion
2003-05-21 15:10
2003.06.09
корни кубические, чктвертой степени и т.д. до десятой


3-26370
Сергей Суровцев
2003-05-16 08:52
2003.06.09
Обработка локальной таблицы в ОЗУ


14-26754
Andrew
2003-05-22 22:10
2003.06.09
Панель инструментов подобная Ms Word





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский