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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 20:02   #1
WhitePoint
Пользователь
 
Регистрация: 31.03.2007
Сообщений: 25
По умолчанию Поиск файлов в TShellListView

Здравствуйте. уже обыскался, нигде ничего подобного найти не смог. Компонент TShellListView, в нем, допустим уже открыта папка с кучей файлов, названных по дате в формате "dd.mm.yyyy.xls". Есть так же MaskEdit, с маской такого же формата, нужно организовать поиск (лучше быстрый), который бы хотя бы выделял найденный файл в TShellListView.

Это диплом, мой препод по программированию, он же консультант по программной части, просто развел руками. Вся надежда на Ваш опыт.Буду очень благодарен.
WhitePoint вне форума Ответить с цитированием
Старый 27.05.2009, 23:37   #2
WhitePoint
Пользователь
 
Регистрация: 31.03.2007
Сообщений: 25
По умолчанию

видимо неохота возиться, или никто не знает. вот что я выяснил.
пробовал вытащить имя items.
Код:
shelllistview.items.item[1].Caption
возвращает ноль.
пробовал

Код:
ShowMessage(ShellListView1.items.item[1].GetNamePath);
возвращает "TListItem" ... что с этим делать - неясно.Судя по всему, разработчики не довели до конца эти компоненты в виду того, что tshelllistview можно изменить имя файла, к примеру. а если к примеру ввести " " в имя файла, то программа вылетает. это я понимаю. но логичным бы было оставить Caption хотя-бы для чтения?? =(

вобщем я раздосадован, но все еще надеюсь, что кто-то из вас с этим сталкивался и чем-то сможет помочь
WhitePoint вне форума Ответить с цитированием
Старый 27.05.2009, 23:58   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Почитайте, может, натолкнет на светлую мысль:
http://www.delphisources.ru/pages/fa...file_path.html

А вот кросспостингом заниматься не нужно.
Ставлю двойку.
mihali4 вне форума Ответить с цитированием
Старый 28.05.2009, 01:03   #4
WhitePoint
Пользователь
 
Регистрация: 31.03.2007
Сообщений: 25
По умолчанию

Спасибо, это я в отчаянии. к тому же здесь студенты так часто постят свои задачки, что моя тема ушла на вторую страницу в первые полчаса. Потому и создал вторую тему в компонентах. Виноват, согласен.
и за ссылку спасибо, примерно к такому же решению я пришел со своим однокурсником.

Код:
for i:=0 to sh.Items.Count-1 do
   begin
       sh.folders[i].pathname=edit.text then {действия.}
   end;
ну... вобщем...
WhitePoint вне форума Ответить с цитированием
Старый 28.05.2009, 09:21   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ужно организовать поиск (лучше быстрый), который бы хотя бы выделял найденный файл в TShellListView.
С этим компонентом быстрого поиска не получится, ибо каждое раскрытие папки приводит к автоматическому запуску поисковика в него встроенного.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2009, 10:40   #6
WhitePoint
Пользователь
 
Регистрация: 31.03.2007
Сообщений: 25
По умолчанию

Цитата:
С этим компонентом быстрого поиска не получится
Это я уже понял, рад хотя бы тому, что найдено решение по обычному поиску! но как же Выделить найденный объект? Нахожу вот как:
Код:
procedure TForm1.Button4Click(Sender: TObject);
var a:TListItem;
begin

for i:=0 to ShellListView1.Items.Count-1 do
   begin
       if ExtractFilename(ShellListView1.folders[i].PathName)=MaskEdit1.Text
            then
              {здесь бы найденный folder[i] выделить}
              showmessage('файл найден');
   end;

end;
больше с ним делать ничего не нужно. Не знаете как выделить?
WhitePoint вне форума Ответить с цитированием
Старый 28.05.2009, 10:44   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вы же индекс его находите. Поэтому просто:
Код:
ShellListView1.ItemIndex:=i;
mihali4 вне форума Ответить с цитированием
Старый 28.05.2009, 10:50   #8
WhitePoint
Пользователь
 
Регистрация: 31.03.2007
Сообщений: 25
По умолчанию

Большое спасибо!
WhitePoint вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файлов Ralf_ru Общие вопросы Delphi 1 30.03.2009 15:42
Поиск файлов student_63 Общие вопросы Delphi 6 07.03.2008 19:00
поиск файлов KORN Компоненты Delphi 3 12.10.2007 05:42
Поиск файлов necky Общие вопросы Delphi 10 31.08.2007 00:27