Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2010, 17:20   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
Вопрос Сортировка в ShellListView

Дано: ComboBox, в котором хранится список всяких разных расширений (.ехе, .doc и т.д.) и есть ShellListView с разными файлами.
Вопрос: как сделать сортировку файлов по расширению в ShellListView с учетом выбранного расширения в ComboBox-e? Чтобы остались только те файлы, которые имеют выбранное расширение. Ведь там есть стандартная сортировка, а расширенной нету . И свойства Mask тоже нет. Как выкрутиться из этой ситуации?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 11.01.2010, 17:49   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можно обновить лист, и использовать событие OnAddIem(вроде так, короче оно одно из первых...и в нем определяется надо ли добавлять итем в список или нет)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2010, 17:52   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
можно обновить лист
Можно поподробнее об этом? Что значит "обновить"?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 11.01.2010, 17:56   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

заставить перечитать папки и файлы
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2010, 18:23   #5
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Может как то так:
Код:
uses Masks;

...

procedure TForm1.ShellListView1AddFolder(Sender: TObject;
  AFolder: TShellFolder; var CanAdd: Boolean);
begin
  CanAdd := MatchesMask(AFolder.PathName, '*.exe');
end;
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 11.01.2010, 19:12   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Сделал так:
Код:
procedure TForm1.ShellListView1DblClick(Sender: TObject);
var
 CanAdd: Boolean;
begin
 CanAdd:=MatchesMask(Form1.ShellListView1.Folders[Form1.ShellListView1.ItemIndex].PathName,'*.exe');
end;
Выдает ошибку: ListIndex out of bounds(-1)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 11.01.2010, 19:21   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

artemavd, вы на событие то посмотрите.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2010, 20:21   #8
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

А в какое событие надо поместить этот код?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 11.01.2010, 20:49   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
procedure TForm1.ShellListView1AddFolder(Sender: TObject;
  AFolder: TShellFolder; var CanAdd: Boolean);
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ShellListView SiAlex Компоненты Delphi 8 28.05.2014 21:42
Работа с ShellListView Fakov Общие вопросы Delphi 7 20.12.2009 15:24
ShellListView sezam Компоненты Delphi 0 27.06.2008 06:58
Маска в ShellListView SANTA_KLAUD Общие вопросы Delphi 4 30.05.2008 12:29
ShellListView ant_f_moro Компоненты Delphi 0 06.01.2008 22:42