Autor |
Beitrag |
LonghornUser
      
Beiträge: 796
|
Verfasst: Mi 25.03.09 17:32
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.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: 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.
Grüße,
Marc
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: 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.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Mi 25.03.09 20:37
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: 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
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mi 25.03.09 22:01
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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  ).
LonghornUser hat folgendes geschrieben : | Und die Themes möchte ich schon aktiviert lassen. |
Wofür denn, wenn du die Oberfläche eh verschandeln willst?
Jedenfalls könntest du nur die Themes für einzelne Komponenten deaktivieren um das anders zu lösen.
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: 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
Und hier 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
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
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 796
|
Verfasst: Do 26.03.09 01:13
Ich habe es jetzt nochmal auf einer cleanen Form probiert. Geht net  (siehe Anhang)
Einloggen, um Attachments anzusehen!
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 796
|
Verfasst: Do 26.03.09 01:22
Danke für deine Mühe  Ist schon ein etwas seltsames Ding.
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: Do 26.03.09 20:27
Und, hat sich schon was ergeben ?
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 26.03.09 20:52
Nein, es funktioniert nicht, und um mir das in Mono anzuschauen hatte ich heute nicht genug Zeit. 
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: 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 !
|
|