Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Mixung zwischen TreeView und Listview gesucht (https://www.delphipraxis.net/98312-mixung-zwischen-treeview-und-listview-gesucht.html)

Hawkeye219 25. Aug 2007 21:30

Re: Mixung zwischen TreeView und Listview gesucht
 
Hi Alex,

hier ist eine kleine Hilfe für den Einstieg: klick.

Gruß Hawkeye

Dezipaitor 25. Aug 2007 21:48

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.

gsh 25. Aug 2007 22:02

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

Olli 25. Aug 2007 23:20

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 ;)

Dezipaitor 25. Aug 2007 23:29

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.

gsh 26. Aug 2007 01:00

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

semo 26. Aug 2007 01:40

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.

gsh 26. Aug 2007 09:12

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

semo 26. Aug 2007 09:32

Re: Mixung zwischen TreeView und Listview gesucht
 
ist doch auch kein problem: guck dir mal OnInitChildren an

gsh 26. Aug 2007 09:53

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.
Seite 2 von 3     12 3      

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