![]() |
Wie macht der Profi Tabellen in der VCL?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich scheitere am einfachsten. Ich möchte so etwas bauen wie im Anhang.
Ein TGridpanel und dort Komponenten einfügen? Da scheitert es schon an den wechselnden Zeilenfarben: Das TGridpanel bietet hier nichts an. Ich könnte in jede Zelle erst ein Panel in der entsprechenden Farbe und dann die eigentliche Komponente (meistens Label) reinsetzen. Ein TStringGrid erlaubt nur Strings bzw. das Herummalen in einzelnen Zellen. Ohne mit dem Teil Erfahrung zu haben schätze ich, hiermit nicht glücklich zu werden wenn ich Buttons oder andere native Komponenten darin haben möchte. Bringen andere Komponenten wie der Virtual Treeview Abhilfe? Bei diesem sehe ich ( ![]() |
AW: Wie macht der Profi Tabellen in der VCL?
Öhm... gleich der 2. Screenshot zeigt doch, dass der VST auch Tabellenansichten beherrscht.
|
AW: Wie macht der Profi Tabellen in der VCL?
Vielleicht bin ich zu sehr fixiert auf Bilder die genau zeigen, was ich will, aber ich finde, das kommt nicht einmal ungefähr hin. Ich hätte schon gerne unterschiedliche viele Spalten pro Zeile sowie wechselnde Zeilenfarben.
Hört sich an wie Kinderkram. Ist es wohl auch. Aber ich stehe irgendwie auf dem Schlauch. |
AW: Wie macht der Profi Tabellen in der VCL?
Mit dem Grid von DevExpress lässt sich das unter Verwendung von Bändern und Spalten problemlos darstellen.
Den VST hatte ich früher in Verwendung und auch wenn ich mich nicht mehr wirklich erinnern kann, bin ich sicher, dass damit eine zumindest sehr ähnliche Darstellung möglich ist. |
AW: Wie macht der Profi Tabellen in der VCL?
Zitat:
Für mich hört sich das sehr nach einem TFrame an. Gruß K-h |
AW: Wie macht der Profi Tabellen in der VCL?
Ich habe es nur "Tabelle" genannt, da ich das Bild mit Word zusammengeklickt hatte. Und die Textverarbeitung nennt das halt Tabelle.
Auf Eigengebastel mit vielen Frames wird das ganze wahrscheinlich hinauslaufen. |
AW: Wie macht der Profi Tabellen in der VCL?
Du willst also ein Grid mit zwei Überschriften: Pro Zelle eins und dann noch etwas wie 'Gruppenüberschriften', wobei eine Gruppe aus nebeneinanderliegenden Spalten besteht.
Du könntest die Draw-Routine erweitern, die die Spaltenköpfe zeichnet. Damit solltest Du Erfolg haben. Machst Du das als Hobby oder hast Du kein Budget? VST Hast Du Budget? Nimm DevExpress. Es gibt, was tabellenartige Darstellung und Eingabe anbelangt, imho nichts besseres. |
AW: Wie macht der Profi Tabellen in der VCL?
Wenn das nur "angezeigt" werden soll, dann einfach selber auf einen Canvas malen oder eben einem TDrawGrid eine Zeichen-Methode unterjubeln.
Bau dir eine Klasse, der du die Daten übergeben kannst (das sind in deinem Falle ja Spalten mit jeweils 2 Werten)
Delphi-Quellcode:
und jetzt noch einen Presenter, der so einen DataContainer in einem Control anzeigen kann. Mit einem abstrakten Presenter würde ich anfangen und davon alle benötigten (für StringGrid, ListView, DrawGrid, VST) ableiten.
TDataItem = class
property Percent : Double; property Title : string; end; TDataColumn = class property Title : string; property Items : TList<TDataItem>; end; TDataContainer = class property RowTitle : TList<string>; property Columns : TList<TDataColumn>; end; |
AW: Wie macht der Profi Tabellen in der VCL?
Der VirtualStringTree ist extrem flexibel in jeglicher Hinsicht. Eine "stinknormale" Tabellenform ist kein Problem und kann über das Setzen weniger Optionen realisiert werden. Was Deinen "Spezialwunsch" angeht wirst Du aber vermutlich ein paar Zeilen selbst Zeichen müssen, damit der VirtualStringtree am Ende genau so aussieht, wie Du Ihn gerne hättest.
Die Komponenten von DevExpress sind natürlich absolute Spitzenklasse, kosten dann aber auch dementsprechend was. |
AW: Wie macht der Profi Tabellen in der VCL?
TAdvStringGrid von TMS Software wäre auch eine Möglichkeit. Nutze diese selber. Wechselfarben der Zeilen, eingebettete Komponenten etc. alles enthalten. Unterschiedliche Anzahl der Spalten realisiere ich indem ich diese einfach mit der Hintergrundfarbe überzeichnen lasse.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz