AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

VirtualTreeview ...mal eben... ;-)

Ein Thema von ADelph · begonnen am 10. Aug 2015 · letzter Beitrag vom 13. Aug 2015
Antwort Antwort
Seite 1 von 2  1 2   
ADelph

Registriert seit: 10. Aug 2009
91 Beiträge
 
Delphi 10.4 Sydney
 
#1

VirtualTreeview ...mal eben... ;-)

  Alt 10. Aug 2015, 14:09
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!
Miniaturansicht angehängter Grafiken
bild1.jpg   bild2.jpg  
Wir versuchen in fehlerbehafteten Systemen mit fehlerhaften Entwicklungsumgebungen fehlerfreie Software zu erstellen - das kann nicht klappen

Geändert von ADelph (10. Aug 2015 um 14:41 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#2

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

  Alt 10. Aug 2015, 21:40
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.
  Mit Zitat antworten Zitat
ADelph

Registriert seit: 10. Aug 2009
91 Beiträge
 
Delphi 10.4 Sydney
 
#3

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

  Alt 11. Aug 2015, 13:44
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: []
Angehängte Dateien
Dateityp: zip FTest.zip (5,7 KB, 10x aufgerufen)
Wir versuchen in fehlerbehafteten Systemen mit fehlerhaften Entwicklungsumgebungen fehlerfreie Software zu erstellen - das kann nicht klappen
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#4

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

  Alt 11. Aug 2015, 22:29
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 vst.AddChild(nil) kann man Nodes auf der Rootebene erstellen. Mit 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.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#5

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

  Alt 11. Aug 2015, 22:36
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;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

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

  Alt 11. Aug 2015, 22:45
Bitte gib deinem Thread einen Aussagekräftigen Titel, welcher das Problem kurz beschreibt bzw. zusammenfasst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ADelph

Registriert seit: 10. Aug 2009
91 Beiträge
 
Delphi 10.4 Sydney
 
#7

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

  Alt 12. Aug 2015, 11:22
Bitte gib deinem Thread einen Aussagekräftigen Titel, welcher das Problem kurz beschreibt bzw. zusammenfasst.
Wie kann ich den Titel ändern?
Wir versuchen in fehlerbehafteten Systemen mit fehlerhaften Entwicklungsumgebungen fehlerfreie Software zu erstellen - das kann nicht klappen
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

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

  Alt 12. Aug 2015, 11:25
Indem du dein Start-Posting änderst.
  Mit Zitat antworten Zitat
ADelph

Registriert seit: 10. Aug 2009
91 Beiträge
 
Delphi 10.4 Sydney
 
#9

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

  Alt 12. Aug 2015, 11:48
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.
Wir versuchen in fehlerbehafteten Systemen mit fehlerhaften Entwicklungsumgebungen fehlerfreie Software zu erstellen - das kann nicht klappen
  Mit Zitat antworten Zitat
ADelph

Registriert seit: 10. Aug 2009
91 Beiträge
 
Delphi 10.4 Sydney
 
#10

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

  Alt 12. Aug 2015, 11:49
Indem du dein Start-Posting änderst.
...da kann ich aber nichts mehr ändern, oder? Der 'Bearbeiten' Button ist jedenfalls weg...
Wir versuchen in fehlerbehafteten Systemen mit fehlerhaften Entwicklungsumgebungen fehlerfreie Software zu erstellen - das kann nicht klappen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 Uhr.
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