AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte KodeZwerg's Real Theme Beispiel
Thema durchsuchen
Ansicht
Themen-Optionen

KodeZwerg's Real Theme Beispiel

Ein Thema von KodeZwerg · begonnen am 10. Mai 2021 · letzter Beitrag vom 13. Mai 2021
Antwort Antwort
Seite 1 von 2  1 2      
venice2
(Gast)

n/a Beiträge
 
#1

AW: KodeZwerg's Real Theme Beispiel

  Alt 10. Mai 2021, 16:54
Zitat:
Ich frage mich, was einem diese Immersive Colors bringen.
Fast nichts!

Weil diverse Controls von Windows behandelt werden sobald die Themes eingeschaltet sind.
Siehe Radio Buttons, Tooltips und Diverser anderer Kram.

Man muß also wieder OwnerDrawn damit die Farbe dem Dark Mode oder was auch immer angepaßt werden kann.
Zitat:
Das ist bereits enthalten (Desktop-Themed). Oder ich verstehe dich gerade fasch?
Du prüfst auf GetWallpaperFilename (Wallpaper ist eigentlich immer da) aber man kann den Hintergrund auch einfarbig schalten.
Wenn dieser einfarbig ist benötigst du die Prüfung auf GetAverageColor nicht mehr.

Geändert von venice2 (10. Mai 2021 um 17:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: KodeZwerg's Real Theme Beispiel

  Alt 10. Mai 2021, 17:22
Zitat:
Das ist bereits enthalten (Desktop-Themed). Oder ich verstehe dich gerade fasch?
Du prüfst auf GetWallpaperFilename (Wallpaper ist eigentlich immer da) aber man kann den Hintergrund auch einfarbig schalten.
Wenn dieser einfarbig ist benötigst du die Prüfung auf GetAverageColor nicht mehr.
Schau mal bitte das Bild im Anhang an, vielleicht reden wir ja auch an einander vorbei, wenn man bei diesem Setting von Bild -> Volltonfarbe geht, da passiert etwas in meinem Programm.
Der RadioButton ist deaktiviert weil ab diesem moment "GetWallpaperFilename" leer ist, muss noch mehr geprüft werden?
Ich habe vielleicht echt gerade Tomaten auf den Augen und finde besagte Zeile nicht die da noch aktiv sein soll.

Ps: Da mir das spielen mit Delphi und Windows Theme so viel Spass bereitet, arbeite ich an einer "Glas-Methode"
Miniaturansicht angehängter Grafiken
screenshot-windows-setting.png  
Gruß vom KodeZwerg

Geändert von KodeZwerg (10. Mai 2021 um 17:26 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#3

AW: KodeZwerg's Real Theme Beispiel

  Alt 10. Mai 2021, 17:31
Zitat:
Der RadioButton ist deaktiviert weil ab diesem moment "GetWallpaperFilename" leer ist, muss noch mehr geprüft werden?
Habe dein Prog nicht geladen oder getestet und bin davon ausgegangen das immer ein Wallpaper (Pfad dazu) existiert egal ob du diesen ausgewählt hast oder nicht.
Wenn es so ist wie du sagst erübrigt sich die zusätzliche Abfrage aus der Registry natürlich. (Vorausgesetzt du benötigst die Farbe für die VollTonFarbe nicht)

Zitat:
Du musst noch den Fall abfangen, das jemand einfarbige Hintergründe gesetzt hat.
Ist dann nicht nötig.

EDIT:
Habe es so verstanden wenn Wallpaper verwendet wird setzt du den Mittelwert der Farbe davon.
Welchen wert setzt du nun bei der Volltonfarbe? (Denke das ist was @Tigü meint). Den Bekommst du nur aus der registry
Der Pfad fehlt definitiv in deinem Code (HKEY_CURRENT_USER\Control Panel\Colors\Background)

Geändert von venice2 (10. Mai 2021 um 17:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: KodeZwerg's Real Theme Beispiel

  Alt 10. Mai 2021, 17:42
Zitat:
Der RadioButton ist deaktiviert weil ab diesem moment "GetWallpaperFilename" leer ist, muss noch mehr geprüft werden?
Habe dein Prog nicht geladen oder getestet und bin davon ausgegangen das immer ein Wallpaper (Pfad dazu) existiert egal ob du diesen ausgewählt hast oder nicht.
Wenn es so ist wie du sagst erübrigt sich die zusätzliche Abfrage aus der Registry natürlich. (Vorausgesetzt du benötigst die Farbe für die VollTonFarbe nicht)

Zitat:
Du musst noch den Fall abfangen, das jemand einfarbige Hintergründe gesetzt hat.
Ist dann nicht nötig.
Die Volltonfarbe wird für "Desktop-Theme" verwendet
Aber gut das das geklärt ist. Definitiv Danke das Du es angesprochen hast!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#5

AW: KodeZwerg's Real Theme Beispiel

  Alt 10. Mai 2021, 17:44
Siehe Edit!
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: KodeZwerg's Real Theme Beispiel

  Alt 11. Mai 2021, 10:44
Post #1 geupdaten, nun mit optionalem Windows 10+ DWM Transparent und Blur effekt.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: KodeZwerg's Real Theme Beispiel

  Alt 13. Mai 2021, 11:50
Update in Post #1, nun ist es eine simpel anzuwendende Klasse (so empfinde ich es jedenfalls)

LG
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: KodeZwerg's Real Theme Beispiel

  Alt 10. Mai 2021, 17:47
EDIT:
Habe es so verstanden wenn Wallpaper verwendet wird setzt du den Mittelwert der Farbe davon.
Korrekt!

Welchen wert setzt du nun bei der Volltonfarbe? (Denke das ist was @Tigü meint). Den Bekommst du nur aus der registry
Der Pfad fehlt definitiv in deinem Code (HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper)
Delphi-Quellcode:
procedure TfrmMain.ApplyDesktopColors;
begin
  FBackgroundColor := GetSysColor(COLOR_DESKTOP); <<<--- diesen hier = Volltonfarbe
  case cbSimpleFont.Checked of
    True:
      FTextColor := SimpleInvertColor(FBackgroundColor);
    false:
      FTextColor := InvertColor(GetSysColor(COLOR_DESKTOP));
  end;
  UpdateColors;
end;
//edit
und kaum poste ich es, fällt mir ein fehler auf, danke fürs fragen!
Gruß vom KodeZwerg

Geändert von KodeZwerg (10. Mai 2021 um 17:50 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#9

AW: KodeZwerg's Real Theme Beispiel

  Alt 10. Mai 2021, 17:49
FBackgroundColor := GetSysColor(COLOR_DESKTOP); <<<--- diesen hier = Volltonfarbe
Ok erklärt alles. Sollte das gleiche wie der Wert aus der Registry sein (hoffe ich mal)

Zitat:
Der Pfad fehlt definitiv in deinem Code (HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper)
Den Pfad hatte ich nochmals korrigiert. Sorry (HKEY_CURRENT_USER\Control Panel\Colors\Background)

Zitat:
und kaum poste ich es, fällt mir ein fehler auf, danke fürs fragen!
Ich sehe nur eins.
FTextColor := InvertColor(GetSysColor(COLOR_DESKTOP)); // FTextColor := InvertColor(FBackgroundColor);

Na dann weiter viel Spaß.

Geändert von venice2 (10. Mai 2021 um 18:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: KodeZwerg's Real Theme Beispiel

  Alt 10. Mai 2021, 18:06
Was mir echt weiterhelfen würde, vielleicht kennst Du ja was, Farbwert für Fonts.... siehst ja mein kläglichen Versuch was brauchbares rauszuholen.
Windows muss doch dafür auch irgendwo was haben, ich fand bis jetzt nichts brauchbares.
GetSysColor() wäre mir da am liebsten, bei Mircosoft gabs auch keine Treffer auf meine Anfragen.

//edit
"FTextColor" ist die Font-Farbe bei mir, falls das noch unklar sein sollte.

Zitat:
Na dann weiter viel Spaß.
Danke, den habe ich, dir auch alles Gute!
Gruß vom KodeZwerg

Geändert von KodeZwerg (10. Mai 2021 um 18:08 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz