Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - DBGrid, Spaltenbreite von Zeile zu Zeile ändern?


ibh_compucat - Mi 21.04.10 11:16
Titel: DBGrid, Spaltenbreite von Zeile zu Zeile ändern?
Hallo Freunde,

ich möchte eine Spalte eines DBGrid dazu 'missbrauchen', mir einen proportionalen Wert durch ihre Feldbreite anzuzeigen.
Das funktioniert leider nur für alle Zeilen (Datensätze) gemeinsam.
Die Werte ändern sich aber mit jedem Datensatz. Kann man die Feldbreite einer Spalte (Datenfeldes) für jede Zeile unterschiedlich einstellen?

Gruß ibh_compucat


Xentar - Mi 21.04.10 12:29

Wie soll das aussehen? Dann sind doch alle folgenden Spalten verschoben.

Edit: Kannst du den Inhalt der Zelle nicht slber malen, und dann z.B. eine Art Progressbar einzeichnen?


ibh_compucat - Mi 21.04.10 12:44

es sollten die 3 letzten Spalten im Diagramm sein, die zusammen immer die gleiche Breite ergeben, wie ein gestapeltes Balkendiagramm (100%).
Den Inhalt selber malen, das wäre eine Lösung. Aber ich weiß nicht wie. Man soll auch eine Cell mit einer Komponente verbinden können, wenn ich da eine *.BMP plazieren könnte, dann könnte ich mir die vorher erzeugen und dann im Grid anzeigen, aber wie?

Gruß ibh_compucat


Xentar - Mi 21.04.10 14:08

Wenn ich mich recht erinner, gibts das Event OnDrawCell. Da bekommst du als Parameter übergeben, welche Spalte es ist, welcher Text drinsteht, usw.


ibh_compucat - Mi 21.04.10 14:10

ich habe eine Stelle gefunden, an der jemand erklärt, daß das funktioniert:

http://delphi.about.com/od/usedbvcl/l/aa081903a.htm

es werden auch Bilder gezeigt, wo Komponenten, z.B. Checkbox im DBGrid dargestellt werden. Aber leider kann ich den Weg nicht nachvollziehen.

Gruß ibh_compucat