![]() |
Komponente TStringTree (=TVirtualStringTree komfortabel)
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,
ich wollte gerne einmal eine Komponente vorstellen, die in den letzten Monaten als "Abfallprodukt" entstanden ist. Ziel des Ganzen war, die Komponente TVirtualStringTree komfortabler zu machen. ![]() Ich führ im Folgenden ein paar Beispiele vor, wie sie benutzt wird. Ich möchte aber anmerken, dass die Komponente NICHT fertig ist sondern genau die Funktionen spendiert bekommen hat, die ich gebraucht hab. Weitere Funktionenalitäten hinzu zu fügen ist allerdings meist trivial, da man nur die entsprechenden Funktionen des inneren Trees publizieren muss. Anlegen von Spalten (habe noch keinen Designer geschrieben, aber das manuelle Anlegen hat eh den Vorteil, dass man später Objektinstanzen weiter verwenden kann):
Delphi-Quellcode:
(FTreeColumns bezeichnet hier eine Membervariable des Form, die alle Spalten in einem Record hält)
FTreeColumns.ID := StringTree.Columns.Add('ID', 80);
FTreeColumns.Name := StringTree.Columns.Add('Name', 120); FTreeColumns.Rand := StringTree.Columns.Add('Random', 100); Anlegen von Wurzelknoten:
Delphi-Quellcode:
Anlegen von Unterknoten:
var Node: TStringTreeNode;
... Node := StringTree.Nodes.Add; Node[FTreeColumns.ID] := IntToStr(I); Node[FTreeColumns.Name] := 'Knoten mit Nummer ' + IntToStr(I); Node[FTreeColumns.Rand] := IntToStr(Random(I));
Delphi-Quellcode:
Ermitteln der markierten Knoten der ersten Ebene:
var SubNode: TStringTreeNode;
... SubNode := Node.Nodes.Add; SubNode[FTreeColumns.ID] := IntToStr(J);
Delphi-Quellcode:
var Node1: TStringTreeNode;
... Selected := ''; for Node1 in StringTree.Nodes do begin if Node1.Selected then begin Selected := Selected + Node1[FTreeColumns.ID] + ', '; end; end; Ich wollte das hier einmal posten, da ich gerne wissen würde, ob es einen Bedarf an einer solchen Open-Source Komponente gibt (oder bin ich der einzige, der den Virtual Tree unkomfortabel findet ;) ) Wenn der Bedarf da ist, dann könnte man ein SourceForge-Projekt dazu einrichten und das dann gemeinsam weiterentwickeln. Angehängt habe ich den Quellcode der Komponente (einfach in einem Package registrieren) sowie ein Demoprojekt, das einige der Features zeigt. Achja: Das ganze ist für Delphi 2006 native entwickelt und hat ausser dem Virtual Tree keine weiteren Abhängigkeiten. Ich verwende ausschließlich Unicodestrings, von daher sollte Delphi 2008 einen kleinen Performancesprung bringen (wenn es denn einmal kommt). Freue mich auf Feedback. |
Re: Komponente TStringTree (=TVirtualStringTree komfortabel)
Zitat:
|
Re: Komponente TStringTree (=TVirtualStringTree komfortabel)
Keine Ahnung, arbeite schon seit Jahren mit dem VST und fand da noch nie was umständliches oder schweres dran, wenn man das Konzept verinnerlicht hat. Kann dem daher auf den ersten Blick erstmal nichts abgewinnen. Mal so von der Contra-Seite ... :mrgreen:
|
Re: Komponente TStringTree (=TVirtualStringTree komfortabel)
Zitat:
|
Re: Komponente TStringTree (=TVirtualStringTree komfortabel)
Ich denke das Stammtischvideo zeigt sehr gut, dass der VST nicht kompliziert ist.
Vor allem wenn man dann nur noch mit Objekten arbeitet. Diese liegen in den Anwendungen eh vor. |
Re: Komponente TStringTree (=TVirtualStringTree komfortabel)
Zitat:
|
Re: Komponente TStringTree (=TVirtualStringTree komfortabel)
Die Idee der Vereinfachung finde ich gut :-D
Nur schade, dass die Komponente unter älteren Delphi Versionen nicht installierbar ist. Könntest du sie nicht mit $IFDEF zu älteren Versionen kompatibel machen? |
Re: Komponente TStringTree (=TVirtualStringTree komfortabel)
Hrm ich hab noch Delphi 2005 (würg) und Delphi 6 rumliegen....aber irgendwie fehlt mir dazu ehrlich gesagt etwas die Motivation :-(
Aber vielleicht komm ich ja mal dazu :) |
Re: Komponente TStringTree (=TVirtualStringTree komfortabel)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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