![]() |
VirtualTreeview ...mal eben... ;-)
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
Hatte vor etlichen Jahren schon mit dem VT gearbeitet, es dann aber irgendwie aus den Augen verloren. Weil ich in letzter Zeit immer mal wieder mit einigen Komponenten und deren Ableitungen Kummer hatte, ist mir bei meiner Suche nach Alternativen der VT wieder untergekommen. VT als StringGrid, bzw. eigentlich als Super-Listbox missbrauchen: Also VT auf eine Form - Columns, RootNodeCount, ShowHorzGridLines, FullRowSelect eingestellt und im OnGetText Texte übergeben. Compile und Go - keine Texte zu sehen. Aus der Advanced Demo von der Form VisibilityDemo den VT VST3 geholt - Texte werden angezeigt. Weil ich verschieden hohe Einträge anzeigen können will/muss, OnMeasureTextHeight gefüllt. Klappt auch soweit, nur sehen die Einträge zuerst so aus, wie im Bild1 zu sehen, erst wenn ich in das Grid klicke, sieht es aus wie in Bild2. Außerdem sind die Texte immer vertically centered (würde die gerne top haben) und multiline klappt bei mir auch nicht (es werden Texte die #13#10 enthalten übergeben). Tuts gelesen, Tante Google verrückt gemacht, aber direkt konnte ich keine Lösungen finden. Vermutlich sehe ich die Bits vor lauter Nullen und Einsen mal wieder nicht...oder ich habe das gesamte Konzept noch nicht klar...wie kann ich auf einfache Weise ein VT so einstellen, dass es wie die von mir anvisierte Super-Listbox funktioniert? ...für ein paar direkte Tipps wäre ich sehr dankbar...denn irgendwie komme ich nicht weiter - und ich bin sicher, dass ich mit dem VT viele andere Problemchen vom Tisch bekomme... Ich verwende VT 5.3.0, XE7 unter Win 8.1 Danke schon mal! |
AW: VirtualTreeview ...mal eben... ;-)
Es wäre gut, wenn du deinen bisherigen Quellcode hier in Delphi Tags einmal posten könntest. Es wird sich leichter jemand finden, der deinen bereits bestehenden Quellcode nach Fehlern untersucht, als dir eine fertige "Super-Listbox" zu bauen. Vielleicht liegt es auch einfach nur an nicht gesetzten TreeOptions. Schau dort mal nach, ob dir vielleicht direkt etwas ins Auge springt.
|
AW: VirtualTreeview ...mal eben... ;-)
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
mir soll keiner die Super-Listbox bauen - ich bin nur auf der Suche nach ein paar Tipps, wie ich den VT dazu bringen kann, sich wie VST3 aus der genannten Demo zu verhalten. Natürlich hatte ich damit begonnen, die Einstellungen zu vergleichen. Es sind allerdings recht viele Unterschiede und eine Einstellung nach der anderen zu testen, erwies sich als sehr aufwendig. Es hatte mich schon einige Stunden systematischen Herumprobierens gekostet, bevor ich hier meine Fragen gepostet habe. Ich hatte lediglich die Hoffnung, dass vielleicht jemand auf Anhieb die Einstellung kennt, die VT dazu bringt, sich wie ein StringGrid zu verhalten. Wie geschrieben: VT auf die Form, Columns eingestellt etc - das bringt es nicht. Könnte ja sein, dass jemand die Lösung aus dem Ärmel schüttelt...und ich bin recht sicher, dass es irgendwelche Einstellungen in den Options sind... :? Mein Testprogramm hänge ich gerne an. Bei den Header.Options sind gesetzt: [hoColumnResize,hoHotTrack,hoVisible] Bei den TreeOptions ist gesetzt: AnimationOptions: [] AutoOptions: [toAutoExpand,toAutoScroll] MiscOptions: [toWheelPanning,toVariableNodeHeight,toNodeHeightRe size] PaintOptions: [toShowHorzGridLines,toThemeAware] SelectionOptions: [toFullRowSelect] StringOptions: [] |
AW: VirtualTreeview ...mal eben... ;-)
Dein Tree sieht doch bereits wie ein StringGrid aus. Es hat Zeilen (Nodes) und Spalten (Columns). Ich kann nur beim besten Willen kein Multiline in der VST3 (Property Editor) Demo erkennen. Das sind alles Subnodes die erstellt werden.
Mit
Delphi-Quellcode:
kann man Nodes auf der Rootebene erstellen. Mit
vst.AddChild(nil)
Delphi-Quellcode:
können ChildNodes der übergebenen ParentNodes erstellt werden. Alternativ hierzu gibt es die Property RootNodeCount des VirtualTreeViews. Wenn diese Property gesetzt wird, müssen über die Events InitNode und InitChildren die Nodes initialisiert werden. Die RootNodeCount Property benutzt du ja bereits.
vst.AddChild(ParentNode)
Vielleicht könntest du dein Vorhaben etwas konkretisieren. Vielleicht sogar anhand eines Screenshots eines bestehenden Programmes oder auch in Paint ein Beispiel zeichnen. |
AW: VirtualTreeview ...mal eben... ;-)
EIne Sache ist mir noch eingefallen. Das kannst du bei der MultiLine Demo beobachten. Vielleicht ist es das was du willst. Um das zu erreichen, musst du im InitNode Event den dem InitialState Set das Flag ivsMultiLine hinzufügen.
Hier ein kleines Beispiel:
Delphi-Quellcode:
procedure TForm1.vstInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode;
var InitialStates: TVirtualNodeInitStates); begin vst.NodeHeight[Node] := 40; Include(InitialStates, ivsMultiline); end; |
AW: VirtualTreeview ...mal eben... ;-)
Bitte gib deinem Thread einen Aussagekräftigen Titel, welcher das Problem kurz beschreibt bzw. zusammenfasst.
|
AW: VirtualTreeview ...mal eben... ;-)
Zitat:
|
AW: VirtualTreeview ...mal eben... ;-)
Indem du dein Start-Posting änderst.
|
AW: VirtualTreeview ...mal eben... ;-)
Hi Aviator,
...ich glaube, das könnte mich weiterbringen. Danke schon mal dafür! Was ich dann noch nicht sehe, ist, wie ich die vertikale Ausrichtung ändern kann. Wenn ich eine mehrzeilige Ausgabe in einer Spalte habe und in der gleichen Zeile eine Spalte mit z.B. nur einer Textzeile, dann steht diese immer in der vertikalen Mitte. Ich hätte es aber dann gerne oben ausgerichtet. Gibt es dafür auch eine Option? Ich finde zwar so etwas wie 'VerticalAlignment', aber bisher nicht, wo oder wie ich da eine Änderung erzielen kann. Gibt es da noch eine Anregung? Da ich die Daten für die Darstellung aus anderen Gründen schon in einer Liste führe, benötige ich keine ChildNodes etc. So wie ich es vorhabe - so ähnlich wie im Test, nur dass ich dann die Daten aus der Liste hole - klappt es mittlerweile auch schon fast. |
AW: VirtualTreeview ...mal eben... ;-)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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 by Thomas Breitkreuz