![]() |
Wie ermittel ich die Breite einer Vertikal Scrollbar in einem ListView?
Delphi-Version: 2009
Hallo Gemeinde, der Titel besagt ja was ich gerne in Erfahrung bringen möchte. Wozu? Ich habe eine ListView mit fester Größe, darin sind 2 Spalten. Die letzte Spalte soll so breit werden das der Längste vorhandene String hineinpasst. Diese Funktion ist bereits erfüllt. Da ich nicht weiß wie Breit eine Vertikale Scrollbar ist habe ich pro forma einen Wert von
Delphi-Quellcode:
Lokal bei mir klappt es so aber ich Wette das die Scrollbar woanders auch breiter sein kann, deswegen benötige ich diesen Wert.
"LängsterStringInPixel" + 20 Pixel
Falls das jemand weiß, ich freue mich auf eine Antwort! Danke fürs Lesen.
Delphi-Quellcode:
<- so stell ich die breite momentan ein, L = LängsterStrInPx
LVProcess.Columns[1].Width := L+20;
|
AW: Wie ermittel ich die Breite einer Vertikal Scrollbar in einem ListView?
|
AW: Wie ermittel ich die Breite einer Vertikal Scrollbar in einem ListView?
![]() Aber kann man bestimmt auch irgendwie über die Theming-Klassen der VCL erfragen. |
AW: Wie ermittel ich die Breite einer Vertikal Scrollbar in einem ListView?
Zitat:
Delphi-Quellcode:
LVProcess.Columns[1].Width := L+GetSystemMetrics(SM_CXVSCROLL);
Zitat:
|
AW: Wie ermittel ich die Breite einer Vertikal Scrollbar in einem ListView?
Dir ist schon klar, dass es für ListView-Spaltebreiten Konstanten wie Beispielsweise "längster String" gibt?
|
AW: Wie ermittel ich die Breite einer Vertikal Scrollbar in einem ListView?
Nein, ich ermittle momentan über Canvas wie breit die Spalte sein muss bei Erstellung der Einträge.
Wie lautet denn das ListView Pendant dazu bitte? |
AW: Wie ermittel ich die Breite einer Vertikal Scrollbar in einem ListView?
![]() Die Zahlen haben auch einen Namen:
Delphi-Quellcode:
const
ColumnHeaderWidth = -2; ColumnTextWidth = -1; |
AW: Wie ermittel ich die Breite einer Vertikal Scrollbar in einem ListView?
Ich Verstehe nicht wie Du das meinst es umzusetzen?
Also beim Start ist meine Column.Width = 10, nach füllen der List so ca das zehnfache. Wie rufe ich bei der ListView jetzt welchen Befehl auf der als Ergebnis mir den Längsten String in Pixel wieder gibt, oder halt nur den längsten String den ich wieder übers Canvas ausrechnen lasse wieviel Pixel ich brauche? Wenn Du da ein Beispiel für hättest das wäre lieb. edit Also momentan ist
Delphi-Quellcode:
das meine methode, was sollte als Ersatz für "L" da stehen?
LVProcess.Columns[1].Width := L+GetSystemMetrics(SM_CXVSCROLL);
|
AW: Wie ermittel ich die Breite einer Vertikal Scrollbar in einem ListView?
![]() |
AW: Wie ermittel ich die Breite einer Vertikal Scrollbar in einem ListView?
Ja Danke DeddyH.
Ich vermute
Delphi-Quellcode:
würde mich ans Ziel bringen um mir das "L" zu ersparen.
LVSCW_AUTOSIZE_USEHEADER
Diese Function/Macro kennt mein Delphi noch nicht. Da muss ich erst wieder gucken/suchen/lesen wie ich das nun wieder umsetze :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz