Vielleicht solltest du noch jeweils den Status gdSelected (in Abhängigkeit, ob das Grid den Focus hat), bzw. dgAlwaysShowSelection prüfen und die Farben dann invertierten.
Das kann dann etwa so aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| if FGrid.Focused then begin if gdSelected in state then begin FGrid.Canvas.Font.Color := Element.Farbe; end else begin FGrid.Canvas.Brush.Color := Element.Farbe; end; end else begin if dgAlwaysShowSelection in FGrid.Options then begin if gdSelected in state then begin FGrid.Canvas.Font.Color := Element.Farbe; end else begin FGrid.Canvas.Brush.Color := Element.Farbe; end; end else begin FGrid.Canvas.Brush.Color := Element.Farbe; end; end; |
Ist ein Code-Fragment aus einer meiner eigenen Komponenten, aber da die Bezeichnungen sprechend sind, wird das wohl kein Porblem sein.