Вопрос Сокращение текста в DirEdit и GroupEdit...

EvilAlex

Старожил
Всем доброго времени суток! Подскажите пожалуйста!
Есть вопрос. а можно ли сделать в обычном WizardForm.DirEdit сокращение текста?

Было: C:\Program Files (x86)\Tom Clancy's Ghost Recon - Advanced Warfighter 2
Стало: C:\...\Tom Clancy's Ghost Recon - Advanced Warfighter 2

Код:
with WizardForm.DirEdit do
  begin
    Parent := Panel1;
    Top := ScaleY(40);
    Left := ScaleX(20);
    Width := ScaleX(360);
  end;
Знаю что есть. таким способом:
Код:
  DirEditLabel := TLabel.Create(WizardForm);
  with DirEditLabel do begin
    AutoSize:=False;
    SetBounds(ScaleX(50), ScaleY(160), ScaleX(446), ScaleY(15));
    WordWrap:= True;
    ShowAccelChar := False;
    Transparent:=True;  
    Caption := MinimizePathName(WizardForm.DirEdit.Text, DirEditLabel.Font, DirEditLabel.Width);
    Parent := WizardForm;
  end;
Но хотелось бы если есть возможность использовать первый вариант.
Заранее спасибо!
 

Вложения

sergey3695

Ветеран
Модератор
а можно ли сделать в обычном WizardForm.DirEdit сокращение текста?
Код:
  with WizardForm.DirEdit do
  begin
//...
    TempStr:= Text;
    WizardForm.DirEdit.Text := MinimizePathName(Text, Font, Width);
  end;
тогда при нажатии на кнопку "Обзор" придется возвращать полный путь (не сокращенный)
Код:
procedure DirBrowseButtonOnClick(Sender: TObject);
begin
  WizardForm.DirEdit.Text:= TempStr;
  OldEvent_DirBrowseButton(Sender);
  TempStr:= WizardForm.DirEdit.Text;
  WizardForm.DirEdit.Text := MinimizePathName(WizardForm.DirEdit.Text, WizardForm.DirEdit.Font, WizardForm.DirEdit.Width);
end;
ну и выглядит это не супер, прыгает путь. надо еще делать сравнение строк, чтобы выявить изменения для сокращенного пути и перенести это в полный (TempStr - переменная с полным путем).
Код:
 wpInstalling:
  begin
  WizardForm.DirEdit.Text:= TempStr;
как видно, геморно и нецелесообразно.
 
Последнее редактирование:
Сверху