Datagrid ohne Datenbank verwenden

Hallo Delphi Experten,

ich möchte auf einem TPanel eine Matrix aus Elementen anzeigen, in etwa so wie ein Spreadsheet es mit seinen Zellen macht. Die Elemente sind teils Texte, teils Icons. Der User soll auf ein Element klicken, und dann soll eine onClick Routine das angeklickte Dings verpetzen.

Klingt einfach. Scheint aber ein Problem zu sein.

Mein erster Ansatz ging über ein TListView. Nach einiger Zeit habe ich zur Kenntnis nehmen müssen, dass man bei TListViews nur die Elemente in der ersten Spalte anklicken kann.

Trotz intensiver Sucherei habe ich keine Möglichkeit gefunden, die anderen Spalten „klickbar“ zu machen. Ich habe dann Lösungsansätze gefunden, wie man über HitTests und die Position des letzten Mausklicks das angeklickte Element „zu Fuß“ herausfinden kann, aber das Endresultat ist trotzdem unbefriedigend, z.B. deswegen weil man das angeklickte Element nicht vernünftig markieren kann - es wird immer die ganze Reihe im Listview markiert.

Nun experimentiere ich mit einem DBGrid Control. Das erste Problem taucht gleich am Anfang auf: das Control scheint darauf abgestellt, seine Ausgangsdaten aus einer Datenbank zu lesen. Dummerweise liegen meine Ausgangsdaten aber als Listen und als berechnete Werte vor.

Kann mich jemand mit der Nase zu einem Stück Code stellen wo gezeigt wird, wie man ein DBGrid ohne Datenbank betreibt, oder zu einer Komponente, die das was ich will kann - ganz ohne Datenbank?

Wieder mal thx,

AL

Hallo,

warum versuchst Du es nicht mit einem ganz normalen Stringgrid?

Das müsste eigentlich Deine Zwecke erfüllen.

Gruß Ebi

Hallo,

warum versuchst Du es nicht mit einem ganz normalen
Stringgrid?

Treffer, versenkt :smile: Das Control kannte ich einfach noch nicht. Und es passt auch nicht ganz auf das was ich haben will, weil es nur Strings anzeigen kann, aber ich brauche auch noch Symbole. Trotzdem war Dein Tipp Gold wert, er hat mir den Weg zu TDrawGrid gewiesen, und der stellt im Prinzip alles dar was irgendwie darstellbar ist.

Vielen Dank, und einens chönen Sonntag …

AL.