Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Windows 11 Style Dark-Mode und Fensterschatten (https://www.delphipraxis.net/209104-windows-11-style-dark-mode-und-fensterschatten.html)

BigAl 26. Okt 2021 19:32

Windows 11 Style Dark-Mode und Fensterschatten
 
Hallo zusammen,

ist ja cool, dass es dir Styles für Windows 11 gibt. Interessant finde ich speziell das dunkle Thema. Allerdings wird die Applikation schnell sehr unübersichtlich, da den Fenstern die typischen Windows-Schatten fehlen. Ich arbeite unter Windows 11 und das helle Thema ist eigentlich unnötig, da dies eigentlich dem Standard-Thema (VCL ohne Style) entspricht.

Nun zwei Fragen:

1. Ist es möglich den VCL-Formularen einen Schatten zu entlocken?

2. Das wäre noch besser: Kann ein natives Windows 11 Dark-Fenster erzeugt werden? Der Standard-Windows Style schert sich ja nicht wirklich um den aktuell eingestellten Anzeigemodus. Der ist immer hell. Oder habe ich was verpasst?

Alex

WiPhi 27. Okt 2021 07:58

AW: Windows 11 Style Dark-Mode und Fensterschatten
 
Zitat:

Zitat von BigAl (Beitrag 1496649)

1. Ist es möglich den VCL-Formularen einen Schatten zu entlocken?

Vielleicht so?

Delphi-Quellcode:
type
  TMyForm = class(TForm)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

procedure TMyForm.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;

BigAl 27. Okt 2021 08:07

AW: Windows 11 Style Dark-Mode und Fensterschatten
 
Zitat:

Zitat von WiPhi (Beitrag 1496667)
Zitat:

Zitat von BigAl (Beitrag 1496649)

1. Ist es möglich den VCL-Formularen einen Schatten zu entlocken?

Vielleicht so?

Delphi-Quellcode:
type
  TMyForm = class(TForm)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

procedure TMyForm.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;

Leider wirft das nur einen Schatten außerhalb der Applikation. Das Problem ist, dass ein Dialog innerhalb der Applikation einfach nut flach über das Hauptfenster gezeichnet wird. Teilweise muss man echt suchen wo das Hauptfenster aufhört und der Dialog anfängt. Die Windows 11 Styles wurden aber aktualisiert (glaube gestern). Unter GetIt wurde ein Update dafür angezeigt. Nun wird wenigstens ein dünner Rahmen um das Fenster gezeichnet...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz