Farbe von Button ändern

Rund um die LCL und andere Komponenten
MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Farbe von Button ändern

Beitrag von MAC »

Siehe: http://wiki.freepascal.org/Lazarus_know ... be_changed

der Titel sagt das dies niemals gefixt wird, deswegen schätze ich mal das man hier nicht daran vorbeikommt sich seine Buttons selber zu zeichnen, wenn es denn so wichtig ist :)

Code: Alles auswählen

Signatur := nil;

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Farbe von Button ändern

Beitrag von Michl »

Es gibt auch verschiedene Controls - Packages, die farbige Buttons beinhalten. Du könntest das mit Lazarus ausgelieferte Package "Customdrawn" installieren und dort den "TCDButton" nutzen (Der Button funktioniert, jedoch nicht alle dort verfügbaren Controls sind fertig entwickelt).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Mathias
Beiträge: 6196
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Farbe von Button ändern

Beitrag von Mathias »

Ich habe es gerade probiert einen CDButton zu setzen, es kommt nur dieser Fehler, beim starten des Programmes. :(
Dateianhänge
Zwischenablage-1.png
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Bitschubser
Beiträge: 61
Registriert: Mo 27. Aug 2012, 15:43

Re: Farbe von Button ändern

Beitrag von Bitschubser »

theo hat geschrieben:Sicher könnte man darüber reden, dass Lazarus das im Objektinpektor je nach Plattform ausblendet.
Das dürfte aber doch recht aufwändig sein.


Und vielleicht, wenn man das ganze mal auf andere Elemente erweitert nicht unbedingt zielführend:
Ich mußte letztens feststellen, dass TStringGrids unter neumodischen Windows-Versionen abhängig von der Kombination von

Code: Alles auswählen

TStringGrid.DrawingStyle
und dem Desktop-Theme des jeweiligen Windows

Code: Alles auswählen

 TStringGrid.FixedColor
ignorieren...
Wen oder was sollte man da ausblenden und wann?

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Farbe von Button ändern

Beitrag von Michl »

Mathias hat geschrieben:Ich habe es gerade probiert einen CDButton zu setzen, es kommt nur dieser Fehler, beim starten des Programmes.
Der Hinweis kommt bei mir bei einem neuem Projekt auch. Hast Du mal probiert, diesen umzusetzen?!

Code: Alles auswählen

uses ..., customdrawncontrols, customdrawn_common;  


Du kannst auch andere Themen, z.B. "customdrawn_android", nutzen. Wie gesagt, entwickelt sind noch nicht viele (und werden, soweit mir bekannt, auch nicht besonders eifrig weiterentickelt).

PS: Wer selbst gezeichnete Controls nutzen will kann auch das Frontend fpGui nutzen, da haben einige diverse Styles/Themen für entwickelt (habe ich selber aber auch schon lange nicht mehr ausprobiert): http://wiki.freepascal.org/fpGUI_Interface/de

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Mathias
Beiträge: 6196
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Farbe von Button ändern

Beitrag von Mathias »

Unter Linux wird die Button-Eigenschaft "color" problemlos akzeptiert.

Ich habe es gerade mit Linux Mint probiert, die Schalter bleiben auch grau.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: Farbe von Button ändern

Beitrag von Aliobaba »

Hallo,

unter Kubuntu sehen die Buttons so aus:
Schalter.png
Schalter.png (4.75 KiB) 1435 mal betrachtet

unter Wine (Kubuntu) so:
Schalter1.png
Schalter1.png (1.36 KiB) 1435 mal betrachtet

unter Windows7 so:
Schalter2.png
Schalter2.png (4.29 KiB) 1435 mal betrachtet

Die kleinen Flächen um die Kreuzchen sind die sehr kleinen Buttons. Und diese sind unter Linux farbig und unter Windows grau.
Der Quellcode ist identisch, lediglich einmal in einer Windows-Umgebung und einmal in einer Linux-Umgebung kompiliert.
Um die Farbe auch unter Windows zu erhalten, habe ich (in meiner Not) ein kleines farbiges Feld "herumgezeichnet", da mir die Farbe wichtig war.
Sowohl die Linux- als auch die Windows-Version ist da zu finden:
http://www.heise.de/download/mymemorydb-1189626.html

Gruß
Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Antworten