Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   VirtualTreeview ...mal eben... ;-) (https://www.delphipraxis.net/186171-virtualtreeview-mal-eben-%3B.html)

ADelph 10. Aug 2015 13:09

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!

Aviator 10. Aug 2015 20:40

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.

ADelph 11. Aug 2015 12:44

AW: VirtualTreeview ...mal eben... ;-)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Aviator (Beitrag 1311727)
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.

Hi Aviator,

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: []

Aviator 11. Aug 2015 21:29

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:
vst.AddChild(nil)
kann man Nodes auf der Rootebene erstellen. Mit
Delphi-Quellcode:
vst.AddChild(ParentNode)
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.

Vielleicht könntest du dein Vorhaben etwas konkretisieren. Vielleicht sogar anhand eines Screenshots eines bestehenden Programmes oder auch in Paint ein Beispiel zeichnen.

Aviator 11. Aug 2015 21:36

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;

Luckie 11. Aug 2015 21:45

AW: VirtualTreeview ...mal eben... ;-)
 
Bitte gib deinem Thread einen Aussagekräftigen Titel, welcher das Problem kurz beschreibt bzw. zusammenfasst.

ADelph 12. Aug 2015 10:22

AW: VirtualTreeview ...mal eben... ;-)
 
Zitat:

Zitat von Luckie (Beitrag 1311881)
Bitte gib deinem Thread einen Aussagekräftigen Titel, welcher das Problem kurz beschreibt bzw. zusammenfasst.

Wie kann ich den Titel ändern?

Perlsau 12. Aug 2015 10:25

AW: VirtualTreeview ...mal eben... ;-)
 
Indem du dein Start-Posting änderst.

ADelph 12. Aug 2015 10:48

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.

ADelph 12. Aug 2015 10:49

AW: VirtualTreeview ...mal eben... ;-)
 
Zitat:

Zitat von Perlsau (Beitrag 1311931)
Indem du dein Start-Posting änderst.

...da kann ich aber nichts mehr ändern, oder? Der 'Bearbeiten' Button ist jedenfalls weg...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz