Тема: DirectoryListBox1
Показать сообщение отдельно
  #8  
Старый 12.05.2011, 08:55
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну так это не 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. ну и пошире и повыше его, чтобы все могло переноситься автоматом. но может и не переноситься автоматически, тогда есть следующее лекарство: разбивать как-то и выводить такой путь "руками".
__________________
Пишу программы за еду.
__________________
Ответить с цитированием