Конференция "KOL" » SortData + Tlist [Delphi, Windows]
 
  • QAZ (26.02.10 11:40) [0]
    как отсортить нужный диапазон, например с 20 по 40 элемент из 100?
    по идее через DataMemory указатель нужно передать на 20 элемент и длину 20,но чет не срост
    или SortData в принципе с первого элемента сортит?
  • mdw (26.02.10 11:56) [1]
    SortData об элементах ничего не знает.
    Передаете нужное кол-во сортируемых элементов в uNElem (40-20).
    В CompareEvent и SwapEvent обращаетесь к элементам с соответствующим сдвигом: PList(Data).Item[20+e1] и PList(Data).Item[20+e2]. Примерно так...
  • QAZ (26.02.10 12:48) [2]

    > Примерно так...

    хм,извращенски(нужно хренову кучу процедур переделать) но работает

    я делал так,вроде логично но ошибки доступа к памяти

    var p:Pcardinal;
    begin
     p:=Pointer(list.DataMemory);//ссылка на массив указателей
     inc(p,20);//сдвиг сылки на 20 элементов масива ибо pointer=cardinal
     SortData(p, 20, @Sort, @SwapListItems );// тут вылет
    end;

 
Конференция "KOL" » SortData + Tlist [Delphi, Windows]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]