J'essaie d'utiliser la technique suivante pour activer/désactiver l'effet d'ombre pour une fenêtre: (Le CreateParams est bien sûr surchargé, le TToolWindow descend de TForm).Comment différentes instances de la même classe de formulaire peuvent-elles utiliser différents styles de classes de fenêtres?
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;
Bien que cela fonctionne bien pour la première instance de la classe TToolWindow, les cas suivants gardent le réglage de la première instance, quelle que soit la valeur de HasShadow (qui est une propriété publiée de la classe TToolWindow).
Comment puis-je avoir différents paramètres d'ombre sur différentes instances de TToolWindow?
TIA