-
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;