[gelöst] Ändern der Farbe einer GroupBox im TabSheet

Rund um die LCL und andere Komponenten
Antworten
Linkat
Lazarusforum e. V.
Beiträge: 561
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

[gelöst] Ändern der Farbe einer GroupBox im TabSheet

Beitrag von Linkat »

Hallo,
die Farbe einer in einem TabSheet eingebetteten GroupBox soll geändert werden.

In einem kleinen Beispielprogramm (s. Anhang) weise ich in einem FormCreate-Ereignis sowohl der GroupBox1, als auch der GroupBox2 die Farbe Rot zu.

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
begin
  GroupBox1.Color:=clRed;
  GroupBox2.Color:=clRed;
end;


Die Farbe der in dem TabSheet eingebetteten GroupBox1 ändert sich nicht. GroupBox2 wird wie erwartet rot (s. Anhang).
Das ganze muss wohl mit den Themes zusammenhängen. Ich habe aber keine Ahnung, wie ich meine GroupBox in den TabSheets ändere.

Die Panel-Komponente zeigt gleiches Verhalten.
Wer kann mir helfen?

Gruß, Linkat

Betriebssystem: WinXP
Dateianhänge
GroupBoxColor.bmp
GroupBoxColor.bmp (847.49 KiB) 1279 mal betrachtet
Zuletzt geändert von Linkat am Di 22. Nov 2011, 10:57, insgesamt 1-mal geändert.
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Ändern der Farbe einer GroupBox im TabSheet

Beitrag von Bauer321 »

Probier mal TabSheet1.GroupBox1.color := clred
Das sollte gehen.(kanns gerade nicht testen)

wenn ich mich jetzt nich irre hängt das ganz mit dem elternobjekt zusmmen
www.mcpatcher.net | www.hoeper.me

Linkat
Lazarusforum e. V.
Beiträge: 561
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Re: Ändern der Farbe einer GroupBox im TabSheet

Beitrag von Linkat »

Hallo Bauer321,
die GroupBox lässt sich nicht mit TabSheet1.GroupBox1 ansprechen.

Aber das Problem hängt mit den Themes zusammen. Stelle ich das Theme "Windows klassich" ein, so funktioniert die Farbeinstellung wie erwartet. Aber wer hat heute noch Windows klassich eingestellt?

Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: Ändern der Farbe einer GroupBox im TabSheet

Beitrag von theo »

Dieses Thema hatten wir schon mal.
Lösung: Einfach keinen Farbenkrieg veranstalten wollen und die Themes arbeiten lassen.
Das schont die Augen der User.
:wink:

P.S. Fast jedes andere Format für Bildattachments ausser BMP schont die Festplatte von Monta's Server. :wink:

Linkat
Lazarusforum e. V.
Beiträge: 561
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Re: Ändern der Farbe einer GroupBox im TabSheet

Beitrag von Linkat »

Hallo Theo,
ich möchte keinen Farbenkrieg veranstalten, sonder deutlich (sprich farblich) kennzeichnen, auf welchem TabSheet sich der User befindet. Da ich gerade ein "altes" Programm mit einigen Neuerungen von Delphi nach Lazarus portiere, würde ich gerne die alte farbliche Gestaltung beibehalten.
Es wäre also durch aus brauchbar, wenn man die TabSheets, GroupBoxen, Panels etc. farblich unterscheiden könnte.

Wer hat noch einen Tipp?

Mit der Filegröße hast du natürlich recht. Aber ich habe vorher versucht ein jpg-File anzuhängen, was gescheitert ist.

Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

Linkat
Lazarusforum e. V.
Beiträge: 561
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Re: Ändern der Farbe einer GroupBox im TabSheet

Beitrag von Linkat »

So nach einigen Diskussionen (auf dem Forums-Treffen in Berlin) und Probieren habe ich jetzt folgende Lösung für mich gefunden:

Die GroupBox-Komponente ist für mein Problem nicht geeignet, da sie sich, je nach Theme, anders verhält.
Als Ersatz nehme ich die Panel-Komponente, bette sie mit Align:=alClient in das TabSheet. Wichtig ist, den den Wert für ParentColor auf false zu setzen. ParentColor gibt es zwar auch für die GroupBox, zeigt aber keine Wirkung (Bug oder Absicht).

Code: Alles auswählen

Panel1.ParentColor:=false;
Panel1.Color:=clGreen;
Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

Antworten