1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

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

Тема в разделе "Inno Setup", создана пользователем EvilAlex, 30 окт 2019.

  1. Пользователь

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

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

    Код (Text):

    with WizardForm.DirEdit do
      begin
        Parent := Panel1;
        Top := ScaleY(40);
        Left := ScaleX(20);
        Width := ScaleX(360);
      end;
     
    Знаю что есть. таким способом:
    Код (Text):

      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;
     
    Но хотелось бы если есть возможность использовать первый вариант.
    Заранее спасибо!
     

    Вложения:

    • Script.rar
      Размер файла:
      805,8 КБ
      Просмотров:
      2
  2. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.319
    Симпатии:
    856
    Код (Inno):
      with WizardForm.DirEdit do
      begin
    //...
        TempStr:= Text;
        WizardForm.DirEdit.Text := MinimizePathName(Text, Font, Width);
      end;
     
    тогда при нажатии на кнопку "Обзор" придется возвращать полный путь (не сокращенный)
    Код (Inno):
    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 - переменная с полным путем).
    Код (Inno):
     wpInstalling:
      begin
      WizardForm.DirEdit.Text:= TempStr;
     
    как видно, геморно и нецелесообразно.
     
    Последнее редактирование: 30 окт 2019
    EvilAlex нравится это.

Поделиться этой страницей