Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ShellListView


Автор: Monty 1.5.2003, 01:23
Вот я мучаюсь с упорядочиванием файлов в ShellListView при нажатии на Column (табулятор что ли :-)
Здешние факи я читал, ни чего не работает sad.gif , а больше я не нашел sad.gif .

Автор: &-ray 1.5.2003, 20:39
Я работаю с ListView, но надо полагать - это предок твоего ShellListView.
Если так, то у него есть свойство:
ListView.SortType:=stText (сортирует по caption)

Автор: Monty 1.5.2003, 21:06
Не , не работает sad.gif , а вот http://forum.vingrad.ru/index.php?act=ST&f=32&t=871 получается , но нет результата при нажатии...

Автор: Monty 2.5.2003, 18:40
и мне ни кто не поможет ? вотвы какие smile.gif

Автор: &-ray 3.5.2003, 17:40
а не пробовал обновить после всего этого дела:

lv1.updateitems(0,lv1.items.count-1)

Автор: &-ray 3.5.2003, 20:26
Тот пример у меня тоже не идет.
Предлагаю альтернативу, причем попроще (по моему мнению):
Код

//вводим переменную
ColumnToSort: integer;

//заполняем как в том примере
procedure TForm1.Button1Click(Sender: TObject);
var sr:tsearchrec;
Item: TListItem;
begin
if FindFirst('c:\*.*',faAnyFile, sr) = 0 then repeat
   if (sr.Attr and faDirectory) <> sr.Attr then
   begin
     item:=lv1.items.add;
     item.Caption:=sr.name;
     Item.SubItems.Add(datetimetostr(filedatetodatetime(sr.time)));
   end;
until FindNext(sr) <> 0;
FindClose(sr);
end;

procedure TForm1.lv1ColumnClick(Sender: TObject; Column: TListColumn);
begin
ColumnToSort := Column.Index; //фиксируем индекс колонки на которой был клик
(Sender as TCustomListView).AlphaSort; //сортируем список, чтобы вызвать метод OnCopare
end;

procedure TForm1.lv1Compare(Sender: TObject; Item1, Item2: TListItem;
 Data: Integer; var Compare: Integer);
begin
 case columntosort of
 0: Compare := CompareText(Item1.Caption,Item2.Caption); //сортируем по имени файла
 1: begin
    //сравниваем дату создания файлов и присваиваем соответствующее значение переменной compare
    if strtodatetime(Item1.SubItems[0])<strtodatetime(Item2.SubItems[0]) then Compare:= -1;
    if strtodatetime(Item1.SubItems[0])=strtodatetime(Item2.SubItems[0]) then Compare:= 0;
    if strtodatetime(Item1.SubItems[0])>strtodatetime(Item2.SubItems[0]) then Compare:= 1;
    end;
 end;
end;

Автор: Monty 6.5.2003, 00:07
спасибо, но неработает с ShellListView sad.gif
у тебя точно в ShellListView это работало?

Автор: i... 6.5.2003, 12:49
А как отсортировать в ListView по файлам и папкам так, чтобы сперва шли папки отсортированные по алфавиту, а потом файлы тоже по алфавиту. (короче также, как и у ShellListView)

Автор: Monty 6.5.2003, 19:01
вот http://forum.vingrad.ru/index.php?act=ST&f=32&t=871 глянь

Автор: &-ray 6.5.2003, 19:13
Цитата
спасибо, но неработает с ShellListView
у тебя точно в ShellListView это работало?


Я работаю только в ListView. А ShellListView в D5 нет, так что ничего подсказать не смогу.

Автор: Monty 7.5.2003, 01:39
Цитата
Я работаю только в ListView. А ShellListView в D5 нет, так что ничего подсказать не смогу
спасибо за помощь smile.gif

может я перейду на ListView, когда ShellListView окончательно достанет biggrin.gif

PS у тебя есть исходник чтоб ListView превратить в проводник ;)

Автор: i... 7.5.2003, 07:19
Цитата(Monty @ 7.5.2003, 01:39)
Цитата
может я перейду на ListView, когда ShellListView окончательно достанет biggrin.gif

PS у тебя есть исходник чтоб ListView превратить в проводник ;)

Лучше сейчас переходи, чем на готовом сидеть.

Точно такой же, как Проводник? Он же получается, если скрестить ShellTreeView, ShellComboBox и ShellListView

У меня есть самописный файловый менеджер с использованием ListView...

Автор: &-ray 7.5.2003, 19:31
Цитата
может я перейду на ListView, когда ShellListView окончательно достанет 

PS у тебя есть исходник чтоб ListView превратить в проводник ;)


Сейчас нету, но в принципе здесь ничего сложного нет:
я делал так:
в ListView делал список файлов, а структуру каталогов делал в TreeVeiw

Автор: smoogue 8.12.2022, 11:40
<a href=https://bestcialis20mg.com/>cheapest cialis</a> 6 days ago reddit

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)