Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   FMX: TStringGrid OnDrawColumnBackground wird nicht aufgerufen (https://www.delphipraxis.net/207097-fmx-tstringgrid-ondrawcolumnbackground-wird-nicht-aufgerufen.html)

bcvs 24. Feb 2021 11:01


FMX: TStringGrid OnDrawColumnBackground wird nicht aufgerufen
 
Hallo,

ich habe ein TStringGrid in einer FMX-Anwendung. Da würde ich jetzt gerne ein paar Zellen einfärben. Eigentlich bietet sich doch dafür das Ereigniss OnDrawColumnBackground an

Das feuert aber nicht. OnDrawColumnsCell geht.
Muss ich da noch irgend etwas anderes einstellen?

D10.4

TiGü 24. Feb 2021 16:07

AW: FMX: TStringGrid OnDrawColumnBackground wird nicht aufgerufen
 
1. Hast du ein Model: TGridModel zugewiesen?
2. Wenn ja, was sagt der Break Point in FMX.Grid.TColumn.DrawBackground (mit Debug-DCU!)?
3, Wenn da der Debugger nicht anhält, wie ist es in TStyledGrid.InternalDrawCells.PartialDrawing?
4. Hast du TGridOption.AlternatingRowBackground deinen TGridModel.Options hinzugefügt?

bcvs 24. Feb 2021 17:26

AW: FMX: TStringGrid OnDrawColumnBackground wird nicht aufgerufen
 
Vielen Dank für die Tipps.

Das mit dem Model verstehe ich noch nicht so ganz.

Aber ich habe jetzt die Option AlternatingRowBackground von dem StringGrid eingeschaltet und dann geht er auch ins OnDrawColumnBackground rein.

Ist aber auch etwas verwirrend, deshalb bin ich nicht gleich draufgekommen. Ich will ja gar keinen AlternatingRowBackground, ich will nur ganz bestimmte Zellen einfärben. Aber anscheinend muss man das aktivieren, damit man ins OnDrawColumnBackground reinkommt, um dann da alles außer den gewünschten Zellen weiß zu malen.

Harry Stahl 24. Feb 2021 19:07

AW: FMX: TStringGrid OnDrawColumnBackground wird nicht aufgerufen
 
Ich würde hier "OnDrawColumnCell" verwenden (und für den Spaltenkopf, falls benötigt, "OnDrawColumnHeader")...

bcvs 25. Feb 2021 07:04

AW: FMX: TStringGrid OnDrawColumnBackground wird nicht aufgerufen
 
Ja, das hatte ich zwischenzeitlich auch verwendet, vor dem Tip von TiGü.

Das hat nur den Nachteil, das man den Zellinhalt nochmal selbst zeichnen muss. Und das übergebene Bounds : TRectF deckt nicht die komplette Zelle ab, sondern ist ringsherum ein paar Pixel kleiner. Das muss man dann auch wieder Inflaten, aber nur für den Hintergrund, nicht für den Text,

Im OnDrawColumnBackground passt das Bounds. Ist ja auch für den Hintergrund gedacht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz