Inno Setup TCheckBox увеличить длину заголовка (не более 15 символов) - PullRequest
0 голосов
/ 16 ноября 2018

При создании TCheckBox в пользовательской форме появляется ограничение в 15 символов, которое может отображаться в свойстве Caption.

[Code]
var
  OptionsWindowForm: TForm;

{ Show the Options window }
procedure ShowOptionsWindow;
var
  SlowNetworkLabel: TNewStaticText;
  SlowNetworkCheckBox: TNewCheckBox;
begin
  OptionsWindowForm := TForm.Create(nil);
  with OptionsWindowForm do
    begin
      Parent := WizardForm;
      BorderStyle := bsDialog;
      Position := poScreenCenter;
      ClientWidth := ScaleX(400);
      ClientHeight := ScaleY(140);
      Caption := '{#AppName} Options';
    end;
  { Define the Slow Network checkbox }
  SlowNetworkCheckBox := TNewCheckBox.Create(WizardForm);
  with SlowNetworkCheckBox do
    begin
      Parent := OptionsWindowForm;
      Left := OptionsLabel.Left + ScaleX(4); 
      Top := OptionsLabel.Top + ScaleY(20);
      Caption := 'Slow Network Connection: Run Remotely';
      Checked := False;
      OnClick := @SlowNetworkCheckBoxClick;
    end;
  OptionsWindowForm.ShowModal;
end;

Итак, в этом примере всеотображается «Slow Network Co», после чего текст усекается.Существует очевидный обходной путь для создания метки и наложения ее рядом с флажком.

{ Define the Slow Network label }
  SlowNetworkLabel := TNewStaticText.Create(WizardForm);
  with SlowNetworkLabel do
    begin
      Parent := OptionsWindowForm;
      Left := SlowNetworkCheckBox.Left + ScaleX(16);
      Top := SlowNetworkCheckBox.Top + ScaleY(2);
      Caption := 'Slow Network Connection: Run Remotely';
    end;

Однако недостатком этого является то, что вы можете только щелкнуть флажок, чтобы выбрать или отменить выбор.Без наложенного ярлыка текст заголовка флажка также можно щелкнуть.Следовательно, это не идеальное решение, поскольку пользователь должен быть более точным, щелкнув мышью, чтобы установить флажок.Следовательно, есть ли способ увеличить длину заголовка?15 символов кажутся очень существенным ограничением.

1 Ответ

0 голосов
/ 16 ноября 2018

Поля со списком не имеют автоматического размера с заголовком (в отличие от TLabel).

Просто сделайте поле со списком как можно шире.

with SlowNetworkCheckBox do 
begin
  Parent := OptionsWindowForm;
  Width := Parent.ClientWidth - Left - ScaleX(8);
  { ... }
end;
...