![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка в TListView [D5, WinXP]
harismatik © (2002-12-16 11:49:00)Господа! Я использую компонент TListView для отображения дерева какой-то папки на диске (чтобы была возможность выбрать некоторые ветки при помощи чекбокса). Как правило, в этой папке могут быть и другие папки. Как сделать сортировку по алфавиту, чтоб сверху списка были сначала все папки, а потом все остальные файлы по алфавиту (как в проводнике винды)? Использование метода AlphaSort - не подходит. :-(
Digitman (2002-12-16 14:21:00) [1]шаблонный псевдокод алгоритма в теле CustomSort()
If ((Item1.Type = Dir) and (Item2.Type = Dir))
or ((Item1.Type = File) and (Item2.Type = File)) then
begin
If Item1.Name > Item2.Name then
Result := 1
else If Item1.Name < Item2.Name then
Result := -1
else
Result := 0;
end
else if (Item1.Type = Dir) and (Item2.Type = File) then
Result := 1
else
Result := -1
harismatik (2002-12-16 14:08:00) [2]Ну и что дальше? Ну поставил я такой признак. А как посортировать сначала директории, а потом остальные файлы?
В CustomSort вызывается указатель на процедуру сортировки, но как ее организовать, эту самую процедуру? Тот пример, что дан в хнелпе не подходит :( ПОМОГИТЕ!!!
MBo (2002-12-16 13:36:00) [3]нужно иметь признак - директория это или нет, например, в data каждого item писать pointer(1) для папок при заполнении. Может, и другой способ в твоих конкретных обстоятельствах подойдет
harismatik (2002-12-16 13:26:00) [4]2 MBo- Я знаю про этот метод, но КАК его использовать в моей ситуации? Не подскажешь?
MBo (2002-12-16 13:00:00) [5]используй CustomSort