Hallo,
ich habe ein interessantes Problem mit dem cxGrid.
Folgende Konstellation:
-
Query + DataSource + GridDBTableView
Alle drei sind miteinander verdratet.
Nun wollte ich beim CustomDrawCell unter bestimmten Bedingungen (testweise) die Schriftfarbe für eine Zelle ändern.
Ursprünglich dachte ich, dass dies relativ einfach ginge. Und da das Grid datengebunden ist, ging ich davon aus,
dass meine
Query auch entsprechend auf dem aktuellen Datensatz steht, der gezeichnet werden soll.
Leider ist das nicht der Fall. Halb so schlimm im Prinzip. Wenn ich eine alternative hätte korrekt auf die Daten zuzugreifen.
Dann habe ich versucht mit cxGridDBTableView1.GetColumnByFieldName('Column1') .EditValue an die Daten zu kommen
und an eine weite Column aus dem gleichen Datensatz also per cxGridDBTableView1.GetColumnByFieldName('Column2') .EditValue...
Auch diese Werte entsprachen nicht der gezeichneten Zeile. Diese Informationen sind genau dann gültig, wenn ich auf die Zeile klicke,
was ich zum Zeichen recht selten tue.
Im Wesentlichen besteht das Problem darin, dass die zu zeichnende Zeile, in die die Routine läuft keine mir ersichtliche Referenz auf
irgendeinen Datensatz besitzt.
Alles in allem ist das ein nicht erwartetes Verhalten. Aber die Lösung sieht bestimmt ganz simpel aus und es gibt nur eine einzige Option der
Komponente, die ich setzen müsste, wenn ich sie finden würde.
Hoffe jemand kann mir helfen.
LG
Crosspost in der EE:
http://www.delphi-forum.de/viewtopic.php?p=619090
Stellen Sie sich bitte Zirkusmusik vor.