从dxSkinController1中排除表单

时间:2015-07-02 16:56:21

标签: delphi devexpress

dxSkinController1将整个应用程序的表单更改为选定的外观。但是,我想要排除某些形式。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

在devexpress网站上找到:

https://www.devexpress.com/Support/Center/Question/Details/B136071

procedure SetControlSkinName(AControl: TWinControl; const ASkinName: string);
var
  AIntf: IcxLookAndFeelContainer;
  I: Integer;
begin
  if Supports(AControl, IcxLookAndFeelContainer, AIntf) then
  begin
    AIntf.GetLookAndFeel.NativeStyle := False;
    AIntf.GetLookAndFeel.SkinName := ASkinName;
  end;
  for I := 0 to AControl.ControlCount - 1 do
    if AControl.Controls[I] is TWinControl then
      SetControlSkinName(TWinControl(AControl.Controls[I]), ASkinName);
end;


procedure TForm1.dxSkinController1SkinForm(Sender: TObject; AForm: TCustomForm;
  var ASkinName: string; var UseSkin: Boolean);
begin
if AForm = Form1 then
  begin
    ASkinName := 'Metropolis';
    UseSkin := True;
    SetControlSkinName(AForm, ASkinName);
end;
end;

这实际上将所需的皮肤应用于所需的形状。要排除表单的其余部分,只需将dxSkinController1的NativeStyle设置为false。

相关问题