Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2016, 13:01   #1
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию Сортировать TList.

В Delphi 7 сортировало по возрастанию. А в Lazarus:
"Error: Wrong number of parameters specified for call to "Comp".
Код:
{ TForm1 }
type
   pInteger=^Integer; //Тип "указатель на Integer число".
 function TForm1.Comp(Item1, Item2: Pointer): Integer;
begin
  if pInteger(Item1)^ < pInteger(Item2)^ then Result:=-1
    else
       if pInteger(Item1)^ = pInteger(Item2)^ then Result:=0
       else
         if pInteger(Item1)^ > pInteger(Item2)^ then Result:=1;
end;
procedure TForm1.Sort_Work_on_the_points_WhereFurther;
var
  k:Integer;
  List: TList;
  pD:pInteger;
begin
 List:=TList.Create; //Создание списка.
  try
  for k:=0 to Work_on_the_points_WhereFurther_size-1 do   //Наполнение списка. (максимум 16380)
      //k - это var_integer[C_the_queue_in_the_array_of_action]   // очередь- последовательность номеров массива выбора сцен
      //Work_on_the_points_WhereFurther[var_integer[C_the_queue_in_the_array_of_action]] 'условный номер сабытия'
  begin
        New(pD);      //Резервируем память.
        pD^:=Work_on_the_points_WhereFurther[k];  //Помещаем "нужное мне" число.
        List.Add(pD); //Добавляем к списку.
  end;
  List.Sort(Comp);    //Сортируем список.
  for k:=0 to Work_on_the_points_WhereFurther_size-1 do    // Огласите весь список, пожалуйста... for k:=0 to List.Count-1 do
  begin
        pD:=List[k]; //Берем очередное число.
        Work_on_the_points_WhereFurther[k]:=trunc(pD^);// отсекает полностью дробную часть и заполняем массив заново
        Dispose(pD); //Уничтожаем число.
  end;
  finally
  List.Free; //Уничтожаем список.
  end;
Чего нужно сделать ?
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 04.07.2016, 13:13   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Код:
List.Sort(@Comp);
А так? Точно не уверен, но вроде зависит от директив компилятора...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 04.07.2016, 13:22   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

И Comp не помешает убрать из методов формы:
Код:
function Comp(Item1, Item2: Pointer): Integer;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.07.2016, 13:24   #4
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Код:
List.Sort(@Comp);
Не помогло.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 04.07.2016, 13:25   #5
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
И Comp не помешает убрать из методов формы:
Код:
function Comp(Item1, Item2: Pointer): Integer;
Куда ? Вопрос точнее: "В какое место убрать эту функцию ?".
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 04.07.2016, 13:31   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Выбросить из описания класса формы декларацию: function Comp...
А в секции выполнения убрать TForm1. в function TForm1.Comp...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.07.2016, 13:34   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от zvygin1964 Посмотреть сообщение
Куда ? Вопрос точнее: "В какое место убрать эту функцию ?".
посмотрите пример тут

и @ оставьте
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.07.2016, 13:50   #8
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

"Проект "project1" успешно собран"
Спасибо.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировать от А до Я Rockot БД в Delphi 13 11.12.2013 14:39
Сортировать список СИ++ Человек Панда Помощь студентам 2 10.05.2011 21:45
сортировать файл ostapchyk bod9 Паскаль, Turbo Pascal, PascalABC.NET 0 03.04.2011 17:43
сортировать в массиве Ronaldo_7 Помощь студентам 4 06.12.2010 14:38
Сортировать по имени Манжосов Денис :) Помощь студентам 2 25.04.2008 10:12