jpf*_*ius 0 delphi delphi-xe2 vcl-styles
我正在尝试VCL样式.这可能是一个愚蠢的问题,但是在使用样式时是否可以使用不同背景的表单?似乎表单背景(客户区)在VCL样式设计器中指定,它覆盖了表单的Color
属性.
如何获得不同背景颜色的表格?例如,我希望我的模态对话框具有与主窗体不同的背景颜色.
是的,有可能:如果您使用的是Delphi XE3,XE4,XE5:您只需seClient
要从StyleElements
表单的属性中删除:
Form3.StyleElements := [seFont, seBorder];
Run Code Online (Sandbox Code Playgroud)
如果您使用的是delphi xe2:您应该覆盖TFormStyleHook
该类,并捕获该WM_ERASEBKGND
消息,并在不处理默认消息的情况下返回:
type
TFormStyleHookEx = class(TFormStyleHook)
procedure WMEraseBkgnd(var Message: TMessage); message WM_ERASEBKGND;
end;
{ TFormStyleHookEx }
procedure TFormStyleHookEx.WMEraseBkgnd(var Message: TMessage);
begin
Message.Result := 1;
end;
initialization
TStyleEngine.RegisterStyleHook(TForm3, TFormStyleHookEx);
Run Code Online (Sandbox Code Playgroud)