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