4

Delphi XE3 及以下版本有适合我们应用程序的样式,这很酷。但是我注意到我们可以标记任意数量的样式,并且他们可以选择使用其中的哪个样式作为默认样式。

这意味着我们可以随意更改样式,但是如何在代码中进行呢?以及如何让用户选择在我们的软件中使用哪种风格?

4

1 回答 1

12

TStyleManager做你需要做的事情来完成这个任务。用于TStyleManager.StyleNames获取样式列表,并TStyleManager.TrySetStyle在运行时更改它们。

要了解它是如何工作的,请启动一个新的VCL Forms Application. 将您想要的所有 VCL 样式添加到项目中,然后将 a 拖放TComboBox到表单上。您需要implementation uses像下面这样添加子句:

uses
  Vcl.Themes;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  TStyleManager.TrySetStyle(ComboBox1.Items[ComboBox1.ItemIndex]);
end;

procedure TForm1.FormShow(Sender: TObject);
var
  s: String;
begin
  ComboBox1.Items.BeginUpdate;
  try
    ComboBox1.Items.Clear;
    for s in TStyleManager.StyleNames do
       ComboBox1.Items.Add(s);
    ComboBox1.Sorted := True;
    // Select the style that's currently in use in the combobox
    ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(TStyleManager.ActiveStyle.Name);
  finally
    ComboBox1.Items.EndUpdate;
  end;
end;
于 2013-04-11T01:35:00.457 回答