【发布时间】:2016-06-27 20:26:36
【问题描述】:
在 Delphi 10.1 Berlin VCL 应用程序中,在 Appearance 页面上的 Project Options 中,我为默认 Windows 样式添加了两种样式:
在FormShow 事件处理程序中,我有以下代码:
procedure TForm1.FormShow(Sender: TObject);
var
s: string;
begin
// Show all available in application styles:
ComboBox1.Items.BeginUpdate;
try
ComboBox1.Items.Clear;
for s in TStyleManager.StyleNames do
ComboBox1.Items.Add(s);
ComboBox1.Sorted := True;
ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(TStyleManager.ActiveStyle.Name);
finally
ComboBox1.Items.EndUpdate;
end;
end;
但不幸的是,在运行时组合框仅包含 ONE 项:默认 Windows 样式:
那么如何在项目选项中检查所有样式?
【问题讨论】:
-
您的代码非常适合我。我在组合框中看到了所有三个样式名称。我看到的唯一区别是外观对话框的屏幕截图;在我的列表中,当我下拉列表时,它是按字母顺序排序的,而你的不是。 (实际上,这是不正确的;如果我退出对话框并返回,它们将再次未排序并与您的匹配。)
-
是否有额外的选项来激活/注册 VCL 样式?
-
没有。我正在设置一台新机器,所以我在柏林安装了一个漂亮、干净的设备。你绝对没有什么特别需要做的。 (实际上,我复制并粘贴了您的代码,除了将组合框放在表单上并将 Vcl.Themes 添加到 uses 子句之外,我什么也没做。)
-
你需要 Vcl.Themes 和 Vcl.Styles 在 dpr 使用部分。
-
好吧,至少当您选择非 Windows 主题时 IDE 包含了这些内容。
标签: delphi vcl-styles delphi-10.1-berlin