私は、ウィンドウのシャドーエフェクトを有効/無効にするために以下のテクニックを使用しようとしています:CreateParamsは当然オーバーライドされています.TToolWindowはTFormに由来します。同じフォームクラスの異なるインスタンスは、どのように異なるウィンドウクラススタイルを使用できますか?
procedure TToolWindow.CreateParams(var Params: TCreateParams);
var
LShadow: boolean;
begin
inherited;
if (Win32Platform = VER_PLATFORM_WIN32_NT)
and ((Win32MajorVersion > 5)
or ((Win32MajorVersion = 5) and (Win32MinorVersion >= 1))) then //Win XP or higher
if SystemParametersInfo(SPI_GETDROPSHADOW, 0, @LShadow, 0) then
begin
if LShadow and HasShadow then
Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;
end;
これはTToolWindowクラスの最初のインスタンスのために[OK]を動作しますが、次の場合は関係なく、(TToolWindowクラスの公開されたプロパティです)HasShadowの値の、最初のインスタンスから設定を保持します。
TToolWindowの異なるインスタンスで異なるシャドウ設定を使用するにはどうすればよいですか?
TIA