VCL スタイルはすべての VCL アプリケーションにスキンを適用しますが、特定のコントロール クラスに対して VCL スタイルを無効にすることができます。したがって、特定のフォームの VCL スタイルを無効にする場合は、フォームのタイプと空のスタイル フック クラスであるクラスをRegisterStyleHook
渡す関数を使用できます。TStyleHook
このコード行は、TFormChild 型のすべてのフォームで VCL スタイルを無効にします。
TStyleManager.Engine.RegisterStyleHook(TFormChild, TStyleHook);
ここで、このコードを実行すると、フォームのすべてのコントロールがTFormChild
VCL スタイルで描画されるため、修正するには、このようなトリックを使用してフォームのすべてのコントロールのデフォルトのスタイル フックを無効にする必要があります。
unit uChild;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TButton = class(Vcl.StdCtrls.TButton); //This declaration is only for disabling the TButton of this form
TFormChild = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
そして、このフォームの TButton の VCL スタイルもこのコードで無効にできるようになりました
TStyleManager.Engine.RegisterStyleHook(uChild.TButton, TStyleHook);
TStyleHook クラスの使用に関する詳細情報が必要な場合は、Delphi XE2 の探索 – VCL スタイル パート IIの記事を参照してください。