AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

cxGrid und CustomDrawCell

Ein Thema von opfer.der.genauigkeit · begonnen am 29. Sep 2010 · letzter Beitrag vom 30. Sep 2010
Antwort Antwort
opfer.der.genauigkeit

Registriert seit: 14. Feb 2005
66 Beiträge
 
#1

cxGrid und CustomDrawCell

  Alt 29. Sep 2010, 21:33
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.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: cxGrid und CustomDrawCell

  Alt 29. Sep 2010, 22:10
Nee, nee. Das Grid ist ja nicht blöd und liest die Daten jedesmal aus der Datenmenge.
Die Daten stehen in der Eigenschaft
MyGridView.DataController.Values[MyGridView.DataController.FocusedRecordindex, MyColumnIndex]; Und den Spaltenindex bekommst Du über die einzelnen Spalten-TcxDBGridColumn und deren Index-Eigenschaft.

Es gibt aber eine bessere Möglichkeit der konditionalen Färbung. Ich hab gerade kein Delphi, aber es müsste soetwas wie 'GetStyle' sein: Du definierst unterschiedliche Styles und weist dann in diesem Event der Zelle den gewünschten Style zu, in Abhängigkeit der o.g. Werte.

Das alles müsste allerdings sehr anschaulich in den Demos zu finden sein.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
opfer.der.genauigkeit

Registriert seit: 14. Feb 2005
66 Beiträge
 
#3

AW: cxGrid und CustomDrawCell

  Alt 30. Sep 2010, 11:59
Hi,

danke f. den Hinweis. Ich hab's jetzt nicht ausprobiert, aber ich vermute mal, dass deine Lösung auch funktioniert.

Mittlerweile hab ich rausgefunden, dass man über AViewInfo.GridRecord.DisplayTexts[ColumnIndex] an den richtigen Wert benachbarter Zellen kommt.
Und über AViewInfo.Item.EditValue an den Wert der aktuellen Zelle auslesen kann.

Danke
Stellen Sie sich bitte Zirkusmusik vor.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:25 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