当 window 调整到尽可能小的尺寸时(在 Inno Setup 上),TLabel 控件在自定义页面上被裁剪

TLabel control is cropped on custom page when window is resized to smallest possible (on Inno Setup)

我在我的自定义页面上定义了这个 TLabel

{ lblPromptMode (TLabel) }
lblPromptMode := TLabel.Create(pageAutoBackup);
lblPromptMode.Parent := pnlBackupMode;
lblPromptMode.Enabled := True;
lblPromptMode.Visible := True;
lblPromptMode.Top := radBackupModeManual.Top + radBackupModeManual.Height + ScaleY(10);
lblPromptMode.Width := pnlBackupMode.Width;
lblPromptMode.Font.Color := [=11=]0000;
lblPromptMode.Color := $F0F0F0;
lblPromptMode.Caption := ExpandConstant('{cm:lblPromptMode}');

我现在正在对页面进行本地化,并且在输入荷兰语翻译时发现了一个查询。

当显示 window 时,它实际上看起来不错(我在脚本中使用现代风格设置):

但是如果我将 window 调整到尽可能小的大小:

如您所见,此控件现已被裁剪。我们可以(并且应该)以任何方式解决这个问题吗?

没有简单的方法可以解决这个问题。虽然您可以将标签设置为换行,但如果它太长 (TLabel.WordWrap),您将不得不在对话框中为两行保留 space。较短的翻译看起来不太好,因为它断开了标签与控件的连接。

以一种仅在需要时自动将标签扩展为两行的方式实现页面是一项繁重的工作,在经典 Windows 应用程序中并不常见。

我建议您:

  • 缩短文本以适应最小值 window;
  • 或增加最小 windows 大小以适合文本 (WizardForm.Constraints.MinWidth);
  • 或将文本拆分为组合框上方的较短标签,并在组合框下方将其他详细信息添加到另一个标签 - 可能为两行保留 space 换行,如果您仍然需要它们– 未使用的免费 space 在控件下方是可以的,而在控件上方则不行。