Что я doign неправильно с помощью следующего кодаTStringList CustomSort в FreePascal
function CompareFloat(List: TStringList; Index1, Index2: Integer): Integer;
и я называю это так:
var
SL :TstringList;
SL.CustomSort(CompareFloat);
//SL.CustomSort(@CompareFloat); // Tried this one also
Первый вызов функции 'SL.CustomSort (CompareFloat)' подмоткой эта ошибка из компилятора «Ошибка: неправильное количество параметров, указанных для вызова« CompareFloat »
Второй вызов функции« SL.CustomSort (@CompareFloat) »извлекает эту ошибку из компилятора. Ошибка: Onl y класса можно ссылаться на ссылки на класс
ОК спасибо это работает для StringList, созданного с нуля в противном случае, как вы указали недостаток где-то еще в коде. Что именно означает с индексом1 и индексом2 в этой функции обратного вызова, index1 = текущее местоположение итератора и индекс2 после местоположения итератора ??? –
CustomSort использует алгоритм QuickSort. Поэтому каждый раз, когда сортировка должна сравнивать два элемента, она будет вызывать функцию CompareFloat, и она будет вызываться несколько раз в процессе сортировки. Index1 и Index2 - это просто индексы элементов, которые нужно сравнить. –