![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SortData + Tlist [Delphi, Windows]
QAZ © (2010-02-26 11:40:00)как отсортить нужный диапазон, например с 20 по 40 элемент из 100?
по идее через DataMemory указатель нужно передать на 20 элемент и длину 20,но чет не срост
или SortData в принципе с первого элемента сортит?
QAZ (2010-02-26 12:48:00) [1]
> Примерно так...
хм,извращенски(нужно хренову кучу процедур переделать) но работает
я делал так,вроде логично но ошибки доступа к памяти
var p:Pcardinal;
begin
p:=Pointer(list.DataMemory);//ссылка на массив указателей
inc(p,20);//сдвиг сылки на 20 элементов масива ибо pointer=cardinal
SortData(p, 20, @Sort, @SwapListItems );// тут вылет
end;
mdw (2010-02-26 11:56:00) [2]SortData об элементах ничего не знает.
Передаете нужное кол-во сортируемых элементов в uNElem (40-20).
В CompareEvent и SwapEvent обращаетесь к элементам с соответствующим сдвигом: PList(Data).Item[20+e1] и PList(Data).Item[20+e2]. Примерно так...