![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Получить путь к выделенному файлу в 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 |