![]() |
Re: Mixung zwischen TreeView und Listview gesucht
|
Re: Mixung zwischen TreeView und Listview gesucht
Füge hoVisible in den Header Options ein (entweder im Objektexplorer, oder per Quelltext):
Include(ListView.Header.Options, hoVisible); Unter Header.Options und dann Columns, kriegst du die Headerinhalte. Mit dem Ereignis OnBeforePaint, kannst du Bitmaps oder sonstwas in den ListView Hintergrund zeichnen. Oder benutze die Eigenschaft Background, um direkt ein Bitmap einzufügen. Die Hintergrundfarbe änderst du direkt mit der Eigenschaft Color. Die Inhalte definiert man über ein Record, wobei man für alle Columns einen String verwenden kann. hier für 10 Spalten:
Delphi-Quellcode:
type TMyRecord = record
Column : Array[0...10] of WideString; //und was weiß ich end; Der Rest geht etwas über meine Zeit hinaus. Nur kurz : Man hat mehrere Möglichkeiten : 1. Einträge über Add einzeln einfügen (laaangsam bei vielen Einträgen) Auch Untereinträge gehen so 2. dem ListView sagen, wieviel Einträge das ListView haben soll - über eine CallbackFunktion (glaub OnNewNode) wird dann der Inhalt des jeweiligen Eintrags initialisiert Dasselbe natürlich auch für Untereinträge. |
Re: Mixung zwischen TreeView und Listview gesucht
danke euch beiden
jetzt hab ich wenigstens mal des ding wie bei der Listview des tutorial werd ich mir auch mal durchlesen |
Re: Mixung zwischen TreeView und Listview gesucht
Für mich war damals das gewöhnungsbedürftigste, daß man die Daten eben nur bei Bedarf einfüllt (zweite Methode, siehe Dezipaitor, von oben) innerhalb von OnInitNode ... ansonsten scheint manchmal die Vielfalt der Optionen überwältigend, aber selbst dafür gibt es eine Lösung: ableiten der Klasse und "verstecken" der unwichtigen Details ;)
|
Re: Mixung zwischen TreeView und Listview gesucht
Es gibt auch eine dritte Methode ohne Record.
Diese habe ich erst letztens in einem ListView verwendet, welches Daten aus einer DB darstellt. Da es in Win32API direkt programmiert war, und ich kein VirtualStringTree hatte, war es die schnellste und einzige Methode. Es geht aber auch mit dem VirtualStringTree. Wenn man die Daten schon besitzt, dann muss man erst garkein Record erstellen, sondern bedient sich sofort aus der DB. Es ist nur wichtig, dass man einen Index besitzt. Man setzt einfach die Anazahl der Einträge und übermittelt dann durch OnGetText den Textinhalt. OnGetText gibt den Index und die Spalte an, die gefüllt werden müssen. Der Vorteil davon ist, dass nur die sichtbaren Einträge übermittelst werden müssen - genauso wie bei der zweiten Methode, die ich vorhin beschrieben habe. Aber eben ohne Kopie des Datenbestands. |
Re: Mixung zwischen TreeView und Listview gesucht
Also habs bis jetzt mit einem record gelößt weil es in meinem fall des beste ist
Funktioniert eigentlich schon ganz gut :mrgreen: In der Hilfe steht zwar des ich VST.AddChild(nil); nicht nutzen sollte weil man des irgendwie mit OnInitNode besser lößen kann. Aber ich wüßte nicht ganz genau wie des gehen soll also bleib ich deshalb einfach daweil bei AddChild |
Re: Mixung zwischen TreeView und Listview gesucht
du setzt einfach den rootnodecount des trees auf deine gewünschte anzahl an knoten.
dann kannst du bequem im OnInit Event des einzelnen Knotens deine Werte in den Data Record des Knotens packen. |
Re: Mixung zwischen TreeView und Listview gesucht
hmmm ja des hab ich mir schon gedacht
aber wie kann ich childs erzeugen? oder hat jeder node noch so eine variable drinnen? und vorallem mein hauptproblem des es mit AddChild für mich um einiges leichter geht weil ich des ganze ja aus einer XML datei laden und des alles rekursiv erstellen muss |
Re: Mixung zwischen TreeView und Listview gesucht
ist doch auch kein problem: guck dir mal OnInitChildren an
|
Re: Mixung zwischen TreeView und Listview gesucht
Aber mit AddChild find ich des um einiges einfacher
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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