VCL スタイルを試しています。これはばかげた質問かもしれませんが、スタイルを使用するときに異なる背景を持つフォームを持つことは可能ですか? フォームの背景 (クライアント領域) が VCL スタイル デザイナで指定され、フォームのColorプロパティをオーバーライドしているようです。
背景色が異なるフォームを作成するにはどうすればよいですか? たとえば、モーダル ダイアログの背景色をメイン フォームとは異なるものにしたいとします。
VCL スタイルを試しています。これはばかげた質問かもしれませんが、スタイルを使用するときに異なる背景を持つフォームを持つことは可能ですか? フォームの背景 (クライアント領域) が VCL スタイル デザイナで指定され、フォームのColorプロパティをオーバーライドしているようです。
背景色が異なるフォームを作成するにはどうすればよいですか? たとえば、モーダル ダイアログの背景色をメイン フォームとは異なるものにしたいとします。
はい、可能です: Delphi XE3、XE4、XE5 を使用している場合:フォームseClientのStyleElementsプロパティから削除するだけです:
 Form3.StyleElements := [seFont, seBorder];
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);
