ну так это не DirectoryListBox1 сокращеный путь возвращает, а в Label1.Caption (о котором в 1 посте небыло ни слова, а тут вдруг появился) его так пишет. на самом деле получать путь нужно как я уже писал выше: DirectoryListBox1.Directory.
а в Label1 он так пишется потому, что:
Код:
procedure TDirectoryListBox.SetDirLabelCaption;
var
DirWidth: Integer;
begin
if FDirLabel <> nil then
begin
DirWidth := Width;
if not FDirLabel.AutoSize then DirWidth := FDirLabel.Width;
FDirLabel.Caption := MinimizeName(Directory, FDirLabel.Canvas, DirWidth);
end;
end;
т.е. лекарство напрашивается само собой:
-установить у Label1 AutoSize в False
-задать Width у Label1 достаточной, чтобы влезло самое длинной название пути
-смириться с этим, если ширины экрана не хватит
-если не хочется мириться, то есть еще одно лекарство:
--в обработчике OnChange у DirectoryListBox1 пишем:
Код:
Label3.Caption:=DirectoryListBox1.Directory;
у Label3 AutoSize = False, а WordWrap = True. ну и пошире и повыше его, чтобы все могло переноситься автоматом. но может и не переноситься автоматически, тогда есть следующее лекарство: разбивать как-то и выводить такой путь "руками".