"Dark Mode" einstellen?

Rund um die LCL und andere Komponenten
Antworten
MmVisual
Beiträge: 1579
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

"Dark Mode" einstellen?

Beitrag von MmVisual »

Hallo,

Es gibt immer wieder Leute, die wollen gerne dass die Exe im "Dark Mode" Design gezeigt wird.
Ich habe die meisten Dinge in meiner EXE als clDefault belassen.

Gibt es eine einfache Möglichkeit dass in allen Formularen man die Farbe für clDefault einstellen kann, so dass die EXE als "Dark Mode" erscheint?
Also ohne dass ich sämtliche Steuerelemente durchlaufe und die Farbe einzeln anpasse?

Wenn man über irgend welche "Default" Farbeinstellungen machen kann, so dass es automatisch für alle Formulare gilt, dann wäre das super.

Vielen Dank für die Hilfe,
VG Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
jwdietrich
Beiträge: 173
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-14.1, Windows 2000-11, Raspbian (L 3.7.0, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: "Dark Mode" einstellen?

Beitrag von jwdietrich »

Am Mac ist es so, dass mit clDefault automatisch der Dark Mode verwendet wird. Ich weiß aber nicht genau, wie das unter Windows funktioniert.

Benutzeravatar
theo
Beiträge: 10856
Registriert: Mo 11. Sep 2006, 19:01

Re: "Dark Mode" einstellen?

Beitrag von theo »


MmVisual
Beiträge: 1579
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: "Dark Mode" einstellen?

Beitrag von MmVisual »

Danke für den Link auf den anderen Thread.

Dieser "Windows Dark Mode" habe ich auch gefunden, der wird in der Registry aktiviert:
Im Verzeichnis:
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize

Dort gibt es einen Eintrag "AppsUseLightTheme", der dann 'FALSE' also '0' ist wenn "Dark Mode" aktiv ist.

Mir ging es in erster Linie darum wie ich die verschiedene clDefault Farben von meinem Programm selbst festlegen kann, was clDefault bedeutet. Gibt es dazu eine Datenstruktur, wo man selbst die Farben setzen kann?

VG Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
theo
Beiträge: 10856
Registriert: Mo 11. Sep 2006, 19:01

Re: "Dark Mode" einstellen?

Beitrag von theo »


Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: "Dark Mode" einstellen?

Beitrag von Warf »

Schau dir mal das an: https://github.com/zamtmn/metadarkstyle/

Das kann man sogar für die Lazarus IDE einstellen, so sieht doe dann aus: https://github.com/Warfley/LazSetup/blo ... edDark.png

Um das in deiner Anwendung zu benutzen, hier beispiel aus dem Setup Projekt von oben: https://github.com/Warfley/LazSetup/blo ... izzard.lpr

Code: Alles auswählen

program SetupWizzard;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  {$IFDEF HASAMIGA}
  athreads,
  {$ENDIF}
  Interfaces, // this includes the LCL widgetset   
  uDarkStyleParams, uMetaDarkStyle, uDarkStyleSchemes, // Für Darktheme benötigt (muss unter interfaces sein) 
  Forms, SetupMainFrm,
  CompareSelectFrm, DetailedList, Progressfrm, AsyncProgress, GitlabFetch,
  LazarusPackageManager, UIFlows
  { you can add units after this };

{$R *.res}

begin
  RequireDerivedFormResource:=True;
  PreferredAppMode:=pamAllowDark; // AllowDark benutzt System Settings, gibt auch ForceDark um immer dark zu sein
  uMetaDarkStyle.ApplyMetaDarkStyle(DefaultDark); // Color scheme aktivieren
  Application.Scaled:=True;
  Application.Initialize;
  Application.CreateForm(TSetupMainForm, SetupMainForm);
  Application.Run;
end.

wp_xyz
Beiträge: 5129
Registriert: Fr 8. Apr 2011, 09:01

Re: "Dark Mode" einstellen?

Beitrag von wp_xyz »

Ich habe das mit zamtmn's DarkMode-Arbeiten nur am Rande verfolgt. Mein Eindruck war, dass das eine Lösung nur für Windows ist. Ist das so? Oder kann man damit auch eine eigene Anwendung auf einem light-mode Linux in den dark mode zwingen?

In meiner eigenen (spärlichen) Linux-Erfahrung funktioniert der Dark-Mode unter Linux in der Regel einwandfrei (sofern die Anwendung Systemfarben verwendet, also clWindow statt clWhite). Nur Windows muckt da immer noch herum.

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: "Dark Mode" einstellen?

Beitrag von Warf »

Wenn du QT5 verwendest, enforced MetaDarkTheme bei ForceDark den style "Fusion", was das standard Darktheme von QT5 ist.

Das gesagt, unter Linux am besten einfach nix enforcen, da kümmert sich das Widgetset drum das alles so aussieht wie der Nutzer es haben will.

MmVisual
Beiträge: 1579
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: "Dark Mode" einstellen?

Beitrag von MmVisual »

Das mit "uDarkStyle..." hat funktioniert, vielen Dank!
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten