Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ShellTreeView, ShellListView, имя директории и оптимизация кода [D7, D2005, XP]


User ©   (2008-07-14 10:34:00) 

Для того чтобы узнать текущее имя папки, выделенное в ShellTreeView (без начала = короткое) и использую такое безобразие:

var
 p, l: word;
 s: string;
begin
 l:= Length(ShellTreeView1.Path);  // в принципе не обязательно ...
 p:= Length(ExtractFileDir(ShellTreeView1.Path))+2;
 s:= Copy(ShellTreeView1.Path, p, l); // требуемое имя ...

при этом мне все равно, что находится в ShellListView.

Есть ли более разумное решение этой задачи? Благодарю ...


User   (2008-07-14 11:29:00) [1]

Да, LastDelimiter() заменяет Length(ExtractFileDir(ShellTreeView1.Path)) ...


clickmaker   (2008-07-14 11:16:00) [2]

LastDelimiter()


User   (2008-07-14 11:10:00) [3]


> s:= Copy(ShellTreeView1.Path, Length(ExtractFileDir(ShellTreeView1.
> Path))+2, Length(ShellTreeView1.Path));

примерно так и получается, развернутое "представление" - для наглядности ...

> на самом деле,ShellTreeView1.Path и взять только то, что
> до крайнего правого "\"

... была вообще "гениальная" идея - развернуть строку, при помощи Pos найти первый '\', отрезать до нее и обратно развернуть ... :-)


KilkennyCat   (2008-07-14 10:59:00) [4]

на самом деле,ShellTreeView1.Path и взять только то, что до крайнего правого "\"


KilkennyCat   (2008-07-14 10:58:00) [5]

s:= Copy(ShellTreeView1.Path, Length(ExtractFileDir(ShellTreeView1.Path))+2, Length(ShellTreeView1.Path));
:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо