Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Checkbox und Speedbutton reagieren nicht auf Farbeinstellung
LonghornUser - Mi 25.03.09 17:32
Titel: Checkbox und Speedbutton reagieren nicht auf Farbeinstellung
Hallo,
ich bin seit kurzem auf Delphi 2009 umgestiegen und habe seitdem Probleme damit, die Schriftfarbe einiger Komponenten korrekt zu setzen.
Ich habe vorhin bei einer Checkbox auf einem schwarzen Panel versucht, die Schriftfarbe auf clwhite zu setzen, aber Delphi ignoriert das völlig. Als Font.Color steht zwar clWhite drin, aber die Schriftfarbe ist weiterhin Schwarz.
Warum ?
Ciao LHUser
Marc. - Mi 25.03.09 17:49
Hey!
Deaktiviere unter Projekt -> Optionen -> Anwendung die Laufzeit-Themes. Ansonsten hält sich dein Programm nämlich an die Windows-Einstellungen. :zwinker:
Grüße,
Marc
LonghornUser - Mi 25.03.09 19:45
hö ? Das wäre ja was ganz neues ? Eigentlich wird die Farbe des OS doch nur gesetzt, wenn die Farbe auf Standard (Automatisch) steht. Meine Labels sind weiterhin weiß. Nur bei den Speedbuttons und Checkboxen geht es nicht :(
Und die Themes möchte ich schon aktiviert lassen.
Marc. - Mi 25.03.09 20:37
LonghornUser hat folgendes geschrieben : |
hö ? Das wäre ja was ganz neues ? |
jaenicke hat folgendes geschrieben: |
Mit Themes werden die neueren Common Controls verwendet, die das nicht erlauben. Schließlich sagst du damit, dass die Systemeinstellungen für die Darstellung verwendet werden sollen. Dazu gehören dann sowohl die allgemeinen Veränderungen wie leicht abgerundete Ecken, aber auch solche.
Ich persönlich finde das auch ganz gut so, wenn Anwendungen nicht plötzlich vollkommen anders aussehen als ich es eingestellt habe. |
Mehr kann ich dir leider auch nicht sagen. :nixweiss:
LonghornUser - Mi 25.03.09 21:58
Mhm, nur wieso funktioniert es dann bei den Labels ? Sehr komisch.
Dann werde ich es eben durch ein Label an einer Checkbox ohne Caption lösen, aber ist natürlich nicht sehr elegant. :(
Yogu - Mi 25.03.09 22:01
LonghornUser hat folgendes geschrieben : |
Mhm, nur wieso funktioniert es dann bei den Labels ? Sehr komisch. |
Labels haben ja auch kein Theme - das sind wahrscheinlich noch die alten.
LonghornUser hat folgendes geschrieben : |
Dann werde ich es eben durch ein Label an einer Checkbox ohne Caption lösen, aber ist natürlich nicht sehr elegant. :( |
Wozu willst du eigentlich den Hintergrund von irgendwelchen Komponenten verändern? Mich würde das sehr nerven, wenn die Checkbox irgendwie zusammengebastelt wäre. Das ist einfach nicht mehr richtig zu bedienen.
jaenicke - Mi 25.03.09 23:15
Yogu hat folgendes geschrieben : |
Wozu willst du eigentlich den Hintergrund von irgendwelchen Komponenten verändern? Mich würde das sehr nerven, wenn die Checkbox irgendwie zusammengebastelt wäre. Das ist einfach nicht mehr richtig zu bedienen. |
Solange es einstellbar ist, geht es ja. Nur wenn es nicht einstellbar wäre, wäre das für mich persönlich inakzeptabel (insbesondere bei einer Farbe wie schwarz als Hintergrund :shock:).
LonghornUser hat folgendes geschrieben : |
Und die Themes möchte ich schon aktiviert lassen. |
Wofür denn, wenn du die Oberfläche eh verschandeln willst? :P
Jedenfalls könntest du nur die Themes für einzelne Komponenten deaktivieren um das anders zu lösen.
LonghornUser - Do 26.03.09 00:20
Jetzt mal ganz ruhig bleiben :)
Eines vorweg: Falls es falsch rüberkam: Ich will nicht den Hintergrund der Checkbox ändern, sondern die
Schriftfarbe. Das ist doch schon ein gehöriger Unterschied. Und eine schwarze Schrift auf einem schwarzen Panel sieht nunmal nicht gut aus ;)
Ich will keinesfalls die Oberfläche verschandeln. Viele Anwendungen (speziell Internetseiten) haben heutzutage schwarze Bedienoberflächen und sehen superedel aus. Auch sind ca. 95 % der Unterhaltungselektronik-Bedienoberflächen (also DVD Rekorder, ...) schwarz. Es kommt immer darauf an, was man daraus macht.
Aber unter Informatikern gibt es, wie ich an der Uni immer wieder feststellen muss, noch heute eine scheinbar grenzenlose Zuneigung zum Windows 95 grau.
Und was genau hat der Hintergrund sagen wir eines Panels mit Themes zu tun ? Die Themes betreffen ja nur Standardbedienelemente wie Buttons, Checkboxen, ...
Ich fragte mich halt einfach nur, warum ich meiner Checkbox nicht die Farbe geben kann, die ich gerne in meiner Anwendung hätte.
P.S.:
Hier ein Beispiel für
Bedienoberflächen:
Die Internetseite der Cairo-Shell [
http://www.cairoshell.com/]
Und
hier [
http://cairoshell.com/downloadsmain/files/CairoConceptExplorer.jpg]ein Screenshot der Oberfläche selber. (hier ist übrigens auch die Schrift Weiß ...)
Yogu hat folgendes geschrieben : |
Wozu willst du eigentlich den Hintergrund von irgendwelchen Komponenten verändern? Mich würde das sehr nerven, wenn die Checkbox irgendwie zusammengebastelt wäre. Das ist einfach nicht mehr richtig zu bedienen. |
Da gebe ich dir absolut recht. Ich mag solche gebastelten Sachen auch nicht, weswegen ich auch in meiner Software möglichst wenige Fremdkomponenten drinhaben möchte, um die Kontrolle über solcherlei Dinge zu behalten. Und die Lösung mit dem Label würde bedeuten, dass man, wenn man die Anwendung mit der Tastatur bedienen will, halt nur den Fokus um die Checkbox und nicht um das Label sieht. Mehr wäre es allerdings dann auch nicht, wenn man per OnClick-Event des Labels den Checked-Zustand der Checkbox manipuliert :P
Zugegeben, das ist eine mehr als miserable Lösung, aber leider bleibt anscheinend keine andere übrig, da das Abstellen der Themes der Checkbox bedeuten würde, dass das "Ankreuzkästchen" sich nicht dem OS-Stil anpassen würde, was auch sehr unschön wäre.
jaenicke - Do 26.03.09 00:47
LonghornUser hat folgendes geschrieben : |
Aber unter Informatikern gibt es, wie ich an der Uni immer wieder feststellen muss, noch heute eine scheinbar grenzenlose Zuneigung zum Windows 95 grau. |
Nicht bei mir, ich hasse das alte Aussehen.
Aber ich mag es bei normalen Programmen genausowenig, wenn ich das Aussehen von Windows anpasse und die Programme sich gar nicht dran halten. Deshalb mache ich es einfach einstellbar, auch XStyleForm für das Skinning von Rahmen und Titelleiste habe ich ja genau aus dem Grund zur Laufzeit aktivierbar und deaktivierbar gemacht.
Natürlich ist es jedem selbst überlassen, aber weiße Schrift auf schwarzem Grund ist meistens eben nicht besonders gut lesbar, insbesondere auf alten Röhrenmonitoren. Das musst du aber ja selbst wissen.
Zum Thema:
Es muss wohl eine Lösung geben, denn ich habe es gerade mit Visual Studio ausprobiert. Und damit kann ich ein Programm mit Theme und weißer Schrift einer CheckBox auf schwarzem Panel erstellen.
Ich muss einmal in die Dokumentation der Common Controls schauen.
LonghornUser - Do 26.03.09 01:13
Ich habe es jetzt nochmal auf einer cleanen Form probiert. Geht net :( (siehe Anhang)
jaenicke - Do 26.03.09 01:17
Ich weiß, ich sagte ja auch nur, bei Visual Studio geht es. Wie und warum das dort geht, kann ich noch nicht sagen.
Eine Möglichkeit wäre vielleicht bei Mono zu schauen wie dort die CheckBox implemementiert ist, ich vermute einmal, dass die CheckBox dort das selbe Verhalten wie in Visual Studio zeigt.
LonghornUser - Do 26.03.09 01:22
Danke für deine Mühe :wink2: Ist schon ein etwas seltsames Ding.
LonghornUser - Do 26.03.09 20:27
Und, hat sich schon was ergeben ?
jaenicke - Do 26.03.09 20:52
Nein, es funktioniert nicht, und um mir das in Mono anzuschauen hatte ich heute nicht genug Zeit. :(
LonghornUser - Do 26.03.09 21:16
Macht ja nix. Gibt es eine sinnvolle Möglichkeit, solche Sachen bei CodeGear (oder wer programmiert Delphi mittlerweile ? :) ) zu melden ?
Ansonsten wäre es super, wenn du dir das in Mono mal anschauen könntest. Danke dafür !
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!