AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

clBtnFace soll wieder clBtnFace sein

Ein Thema von taaktaak · begonnen am 14. Mär 2013 · letzter Beitrag vom 16. Mär 2013
Antwort Antwort
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#1

clBtnFace soll wieder clBtnFace sein

  Alt 14. Mär 2013, 19:05
Moin, Moin.

Also der Titel klingt seltsam, trifft aber mein Problem: Nachdem ich nun von XP auf Win7 umsteigen musste plagen mich diverse Veränderungen. Eine davon ist, dass clBtnFace in Win7 viel, viel heller als clBtnFace in XP ist. Das führt dazu, dass ich (schon etwas älter) viele Controls (PageControl, Statusbar etc.) kaum mehr verwenden kann, ohne angestrengt mit der Nase vor dem Bildschirm zu kleben. Über Sinn und Unsinn dieser kaum mehr erkennbaren Kontraste will ich hier nicht diskutieren - auch wenn ich das einfach nur zum kot.. finde.

Konkrete Frage ist folgende: Gibt es einen Weg (nur für die eigenen Delphi7-Programme) den Farbwert von clBtnFace auf einen dunkleren Farbwert zu ändern? In der Registry soll nix verändert werden. Alles soll nur für die Anwendung gelten. Außerdem will ich natürlich nicht an hunderten von Stellen den Programmcode ändern.

Hoffe ich habe mich verständlich audsgedrückt...
Ralph
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: clBtnFace soll wieder clBtnFace sein

  Alt 14. Mär 2013, 19:47
Du kannst die Farbwerte ja für dich selbst systemweit anders einstellen. Ansonsten halte dich doch bitte an den Systemstandard und lass dem Anwender die Wahl... ich kann das überhaupt nicht leiden, wenn Entwickler meinen, speziell für ihr Programm eine Ausnahme machen zu müssen. Farben sollte man sowieso nur in Ausnahmefällen hardcoden...
Miniaturansicht angehängter Grafiken
scr5959_20130314.png  
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: clBtnFace soll wieder clBtnFace sein

  Alt 14. Mär 2013, 19:48
Du könntest die API-Funktion GetSysColor() auf deine eigene Funktion umbiegen.

Um die API-Funktion umzuleiten müsste man einen Hook setzen.
Hier gibt es dazu ein Beispiel wie man eine API-Funktion umleiten kann.
http://www.ic0de.org/archive/index.php/t-10009.html
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

AW: clBtnFace soll wieder clBtnFace sein

  Alt 14. Mär 2013, 19:53
Du könntest die API-Funktion GetSysColor() auf deine eigene Funktion umbiegen.
Es ist fraglich, ob das funktionieren würde, da Windows selbst für das Zeichnen zuständig ist. Die VCL usw. konvertiert die System-Farbe niemals explizit, das wird einfach so durchgereicht...
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: clBtnFace soll wieder clBtnFace sein

  Alt 15. Mär 2013, 06:47
Du kannst die Farbwerte ja für dich selbst systemweit anders einstellen. Ansonsten halte dich doch bitte an den Systemstandard und lass dem Anwender die Wahl... ich kann das überhaupt nicht leiden, wenn Entwickler meinen, speziell für ihr Programm eine Ausnahme machen zu müssen. Farben sollte man sowieso nur in Ausnahmefällen hardcoden...
Kann mich dem nur anschließen.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#6

AW: clBtnFace soll wieder clBtnFace sein

  Alt 15. Mär 2013, 13:59
Ok, danke für die Antworten - dann wird das also in der Registry geändert!

Ich kann allerdings nicht erkennen, was "böses" an dem Gedanken sein soll, wenn in meinem Programm die Oberfläche, die Buttons etc. eine etwas dunklere Farbe haben sollen als Windows dies mit der Standardeinstellung vorschreibt! Und das mit dem Ziel, die Lesbarkeit wieder auf ein vernünftiges Maß zu bringen. ALLES ÜBRIGE kann ja gern in dem kontrastlosen "Windows-Farb-Matsch" bleiben...

ABER: Unberechtigt ist dieser Einwand nicht! Man kann es auch übertreiben. In meinem Videoschnitt-Programm eines nicht unbekannten Herstellers ist die Oberfläche SCHWARZ mit WEISSER Schrift - diesen Kontrast empfinde ich genau so wenig angenehm!

Zum Hinweis "hardcoden" - gerade DAS mache ich ja NICHT, sonst wären schnell per "Text ersetzen" alle Farben geändert gewesen.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: clBtnFace soll wieder clBtnFace sein

  Alt 15. Mär 2013, 14:44
Auch wenn ich Dein Anliegen verstehe,
wäre es nicht besser, ein eigenes Farbschema zu generieren?

Dann ist es auf Deinem Rechner so wie Du es brauchst, und andere leben mit dem was sie sowiso haben.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#8

AW: clBtnFace soll wieder clBtnFace sein

  Alt 15. Mär 2013, 22:16
Zitat:
wäre es nicht besser, ein eigenes Farbschema zu generieren?
Ja, das ist wohl die pragmatische Lösung!
Beenden wir das Thema damit
Ralph
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#9

AW: clBtnFace soll wieder clBtnFace sein

  Alt 16. Mär 2013, 11:49
Ich kann allerdings nicht erkennen, was "böses" an dem Gedanken sein soll, wenn in meinem Programm die Oberfläche, die Buttons etc. eine etwas dunklere Farbe haben sollen als Windows dies mit der Standardeinstellung vorschreibt! Und das mit dem Ziel, die Lesbarkeit wieder auf ein vernünftiges Maß zu bringen. ALLES ÜBRIGE kann ja gern in dem kontrastlosen "Windows-Farb-Matsch" bleiben...
Auch wenn das Thema geschlossen ist, eine Anmerkung:

Ich habe Ähnliches erlebt, speziell die Page Controls und die Buttons waren vom Kontrast her einfach Mümpitz. Und ich Trottel habe dann auch erst versucht, die Farbe zu ändern, bis... ja bis ich die Anwendung mal auf einem PC hab laufen lassen. Entwickelt wurde das auf meinem Laptop. Und siehe da: Alles in Butter.

Es lag an meinem Laptop/LCD, der einfach zu blöd ist die Grauwerte in *G*r*a*u* darzustellen. Das blöde Teil interpretiert 'grau' nämlich als 'weiß'.
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:39 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