[Gelöst] Virtual Draw/String Tree

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

[Gelöst] Virtual Draw/String Tree

Beitrag von Swirl »

Hallo,

meine Frage ist für jemanden, der mit Virtual Trees gearbeitet hat, wohl eher simpel.

Ich habe nun seit Stunden (nicht nur gefühlt) nach einer griffigen Erklärung nach
dem Unterschied zwischen Draw Tree und String Trees. gesucht. No luck. Vielleicht
kann mir jemand sagen, worin der Unterschied liegt und wo/wann des jeweils eine,
bzw. andere zur Anwendung kommt.

Mit Dank im Voraus,
Michael
[aka Swirl]
Zuletzt geändert von Swirl am Do 26. Mai 2022, 11:36, insgesamt 4-mal geändert.
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Virtual Draw/String Tree

Beitrag von wp_xyz »

Beide stammen von TBaseVirtualTree ab und stellen TVirtualNode-Records dar. Der Unterschied ist, dass TVirtualStringTree textorientiert arbeitet, also primär Texte darstellt; der VirtualDrawTree dagegen ist nicht an Texte gebunden, und könnte z.B. eine Hierarchie von Bildern darstellen. Das sieht man in der DoPaintNode-Methode, die beim StringTree Textausgabe-Routinen enthält und beim DrawTree lediglich einen Event-Handler für OnDrawNode aufruft, so dass die ganze Ausgabe in der Hand des Users liegt.

Ich denke allerdings, dass der Übergang fließend ist und in den meisten Fällen der StringTree ausreichend ist. Einen Node im DrawTree komplett selbst darzustellen ist doch relativ viel Aufwand.

Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

Re: Virtual Draw/String Tree

Beitrag von Swirl »

Besten Dank wp_xyz!
Michael
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

Re: Virtual Draw/String Tree

Beitrag von Swirl »

Hallo,

habe da noch was auf dem Herzen:
Beim wieterenTesten der Komponente VirtualStringTree...
https://wiki.freepascal.org/VirtualTree ... or_Lazarus
...bin ich auf einen Fehler gestoßen, den ich nicht lösen kann.

Ich habe hier ein screenshot beigelegt - hoffentlich reicht das zur Erklärung aus.
Falls nicht, reiche ich nach. Den Code habe ich mehrfach auf Druckfehler untersucht,
aber eigentlich schließe ich die aus, da ich mit Kopieren und Einfügen gearbeitet habe.

Besten Dank im Voraus.
Michael

Bild
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Virtual Draw/String Tree

Beitrag von theo »

Entweder

Code: Alles auswählen

{$mode delphi}
oder

Code: Alles auswählen

XNode:=XNode^.Parent;   
Steht eigentlich im Hint: pointer dereference is missing.

Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

Re: [Gelöst] Virtual Draw/String Tree

Beitrag von Swirl »

Danke Theo!
Michael
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Antworten