Delphi-PRAXiS

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/)
-   -   Delphi Höhe von TreeView (https://www.delphipraxis.net/57529-hoehe-von-treeview.html)

DevilsCamp 22. Nov 2005 19:29


Höhe von TreeView
 
Ich habe ein TreeView in meinem Programm.
Nun würde ich gerne herausfinden, welche Höhe/Breite ich für die Komponente einstellen muss, wenn ich TreeView.FullExpand ausführe.

Da der Inhalt der TreeView unterschiedlich ist, kann ich natürlich keine feste Höhe/Breite einstellen...

SirThornberry 22. Nov 2005 19:31

Re: Höhe von TreeView
 
du könntest durchzählen wieviel Items (Rekursiv) im Baum vorhanden sind und dann mit der Höhe eines Items multiplizieren.

DevilsCamp 22. Nov 2005 19:41

Re: Höhe von TreeView
 
Für's erste sollte das reichen sind zum Glück noch nicht so viele Nodes.

Allerdings: Ich finde irgendwie keine Eigenschaft ItemHeight o.ä. Wie also herausfinden, wie hoch ein Node ist?

Und wie sieht's mit der Breite aus?

DevilsCamp 22. Nov 2005 19:43

Re: Höhe von TreeView
 
Zitat:

Zitat von SirThornberry
du könntest durchzählen wieviel Items (Rekursiv) im Baum vorhanden sind und dann mit der Höhe eines Items multiplizieren.

Das geht auch schneller: TreeView.Items.Count ;)

himitsu 22. Nov 2005 19:59

Re: Höhe von TreeView
 
Für die Breite

Länge und Höhe eines Textes (String)

Einfach TreeView1.Canvas (oder so) und einen Text übergeben und je nach ebene noch etwas für die Baumstruktur übergeben, dann noch den Rahmen zum breitestem Eintrag dazurechnen und schon fertig ^^

DevilsCamp 23. Nov 2005 07:08

Re: Höhe von TreeView
 
Ich hab's für die Breite noch nicht testen können.
Aber für die Höhe funktioniert das leider nicht :(. Es sieht so aus als ob die Höhe eines Nodes GRÖSSER als die TextHeight ist....

himitsu 23. Nov 2005 17:08

Re: Höhe von TreeView
 
Die höhe und Breite ist immer etwas größer, da es ja schließlich noch 'nen kleinen Rand gibt, aber dieser scheint "immer" in etwa gleich groß zu sein.

marabu 23. Nov 2005 17:47

Re: Höhe von TreeView
 
Hallo Marc,

vielleicht hilft dir die Methode TreeNode.DisplayRect() weiter.

Grüße vom marabu

PS: Allerdings finde ich nicht gut, was du vorhast - wenn du das vorhast, was ich denke, dass du es vorhast...

DevilsCamp 24. Nov 2005 07:01

Re: Höhe von TreeView
 
was denkst du denn was ich vorhabe?


Ich will nur einen Baum vollständig darstellen, der Informationen über meinen TS Server anzeigt (Welche Channels verfügbar sind, wer wo drin ist....)

Und da finde ich es nervig, wenn das Fenster zu klein ist...

marabu 24. Nov 2005 08:14

Re: Höhe von TreeView
 
Wenn du die TreeView in einem modalen, nicht größenveränderbaren Dialogfenster zeigst und darüber hinaus noch der einzige Benutzer deines Programms bist, dann vergiss alles, was ich hier schreibe.

Die Kontrolle über die Größe der Fenster überlasse ich dem Benutzer meiner Programme - abgesehen von Dialogfenstern. Da nützt mir kein Code, der eine TreeView so dimensioniert, dass alle Knoten vollständig sichtbar sind. Wenn die Zahl der Knoten zu groß ist, dann werden so oder so Rollbalken benötigt. Ich lasse den Benutzer die TreeView auf zwei Arten indirekt dimensionieren: über den window manager (durch Größenänderungen am Fenster) und über einen Splitter zur Einstellung der Proportionen innerhalb der client area. Durch die Steuerung der Fenstergröße aus dem Programm heraus erschwerst du dem Benutzer die Verwaltung des freien Platzes auf seinem Desktop. Das alles sind Überlegungen zur Software-Ergonomie.

Freundliche Grüße vom marabu

Nachtrag: Wahrscheinlich hast du meinen Hinweis auf TreeNode.DisplayRect() total übersehen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 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