首页 > 解决方案 > Inno Setup TCheckBox 增加 Caption 长度(15 个字符限制)

问题描述

在自定义表单上创建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 个字符似乎是一个非常重要的限制。

标签: inno-setuppascalscript

解决方案


组合框不会随其标题自动调整大小(与 相反TLabel)。

只需使组合框尽可能宽。

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

推荐阅读