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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!