|  | 
|      | 
|   | 
| Получить путь к выделенному файлу в TShellListViewDelphi , Компоненты и Классы , TListViewПолучить путь к выделенному файлу в TShellListView
Оформил: DeeCo 
// These two solutions don't work: 
// Diese zwei Losungen funktionieren nicht wie erwartet: 
{ 1. }
 Label1.Caption := TShellFolder(ShellListView1.RootFolder).PathName;
 { 2. }
 var
   p: TPoint;
   item: TListItem;
 begin
   GetCursorPos(p);
   p := ShellListView1.ScreenToClient(p);
   item := ShellListView1.GetItemAt(p.X, p.Y);
   if item <> nil then
     Caption := item.Caption
 end;
 // But this works: 
// Aber so geht's: 
Label1.Caption := ShellListView1.Folders[ShellListView1.ItemIndex].PathName
 {**************************************************************}
 { 
  To retrieve full paths to each file selected files: 
}
 var
   path: string;
 begin
   for i:=0 to ShellListView1.SelCount-1 do
   begin
     path := ShellListView1.Folders[ShellListView1.GetNextItem(ShellListView1.Selected,
               sdAll,[isSelected]).Index+i-1].PathName;
     // ... 
  end;
 endПроблема в том, что TShellFolder и TShellListView не предназначены для совместной работы в этом виде. В Delphi, когда вы используете TShellListView, она предоставляет свой собственный представление иерархии папок. Вы не можете напрямую доступаться к underlying Windows shell namespace через контролл ListView. Однако есть некоторые способы получить путь выбранного элемента: 
 Это даст вам путь текущего выбранного элемента. 
 Это даст вам пути всех выбранных элементов. Метод  Обратите внимание: вам нужно обработать случай, когда не выбраны ни один элемент, проверив свойство  В статье описывается несколько способов получения пути к выделенному файлу в TShellListView, включая ошибочные подходы и корректный метод с использованием свойства ItemIndex. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш  
 | ||||
|  ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||