AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi VirtualTreeview als Grid optimale Spaltenbreite berechnen
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualTreeview als Grid optimale Spaltenbreite berechnen

Ein Thema von Codehunter · begonnen am 7. Mär 2023 · letzter Beitrag vom 8. Mär 2023
 
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

VirtualTreeview als Grid optimale Spaltenbreite berechnen

  Alt 7. Mär 2023, 09:42
Hallo!

Nach langer Zeit hab ich mal wieder ein Problem an dem ich mir die Zähne ausbeiße:

Ich verwende einen VirtualTreeview als Grid. Dort wo ich das Grid initialisiere, stehen mir schon folgende Werte zur Verfügung:
  1. Spaltentitel (Headertext) jeder Spalte
  2. längster Grid-Celltext jeder Spalte

Ich versuche nun, bei der Initialisierung für jede Spalte die optimale Breite zu berechnen. Das Ziel soll sein, dass jede Spalte genau so breit ist, dass weder der Headertext noch die Zellenwerte mit "..." abgekürzt werden. Die Spalten sind zudem sortierbar, d.h. es kommt ggf. im Header noch das SortGlyph dazu.

Ich kann nun zwar mit Canvas.TextWidth die Breite des Headertextes sowie des längsten Zellentextes berechnen. Aber ich habe festgestellt, dass mit statischen "Zugaben" für Headerbreite und Zellenbreite kein Blumentopf zu gewinnen ist. Ich kriegs zwar hin dass alle Spalten ohne "..." angezeigt werden, aber manche sind viel zu breit.

Wenn ich mir z.B. in VirtualTrees.pas die TVirtualTreeColumn.ComputeHeaderLayout anschaue, dann ahne ich auch warum: Da stecken extrem komplizierte Berechnungen dahinter.

Nun frage ich mich: Hat der Virtualtree vielleicht schon eine eingebaute Funktion, die optimale Spaltenbreite zu berechnen, der ich den Headertext und den längsten Zellentext mitgeben kann?

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter ( 7. Mär 2023 um 09:46 Uhr)
  Mit Zitat antworten Zitat
 


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 17:02 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