Hallo zusammen,
ich hab eine Basisklasse für verschiedene modale Dialoge erstellt und will für diese Dialoge haben, dass da immer ein Schatten angezeigt wird.
Die Basisklasse setzt BorderStyle auf bsNone.
Um den Schatten anzuzeigen verwende ich CS_DROPSHADOW in CreateParams:
Delphi-Quellcode:
procedure TBorderlessDialog.CreateParams(var Params: TCreateParams);
const
CS_DROPSHADOW = $00020000;
begin
inherited CreateParams(Params);
with Params do
begin
Style := WS_POPUP;
WindowClass.Style := WindowClass.Style or CS_DROPSHADOW;
end;
end;
Jetzt hab ich aber das Problem, dass der Schatten erst dann angezeigt wird, wenn ich mit Alt+TAB in ein anderes Programm wechsle, als ob die Form nicht komplett gezeichnet werden würde. Kann ich das irgendwie erzwingen, dass der Schatten gezeichnet wird.
Achja: Interessant könnte auch noch sein, dass es manchmal auch sofort funktioniert.
Ich weiß da echt nicht mehr weiter.
Optional freue ich mich auch über Tips, wie man anderweitig einen Schatten um ein rahmenloses Fenster zeichnen könnte. Oder im Idealfall gleich um eine Fertige Basisklasse, die das übernimmt