![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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));
:)