![]() |
Tatsächliche Breite einer ListView mit ViewStyle vsReport?
Moin,
also ich hab da ne Listview mit ViewStyle vsReport und es kann vorkommen, dass ein User die Columns langzieht und dadruch ein horizontaler Scroll innerhalb der LV möglich wird. Jetzt muss ich aber die GESAMTE Breite des Client-Bereichs kennen und weiß nicht, wie das mit diesem Stil geht. Für die Icon-Stile gibt es die Eigenschaft BoundingRect ["gibt die Koordinaten des Rechtecks zurück, das alle Elemente der Listenansicht umgibt. Mit dieser Eigenschaft können Sie in einer Anwendung die Größe des Steuerelements an die Elemente anpassen oder feststellen, ob sich der Mauszeiger über einem Listenelement befindet. Hinweis: BoundingRect kann nur verwendet werden, wenn die Eigenschaft ViewStyle der Listenansicht den Wert vsIcon oder vsSmallIcon hat."]. Aber was gäbe es da für meinen ReportStil? Noch mal zur Verdeutlichung: YYYXXXXXXXXXXXXXXXXXXXXXXXX X = sichtbarer Bereich, ermittele ich über ClientWidth der LV Y = unsichtbarer Bereich, wie komme ich an den ran?? Besten Gruß Robert |
Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor
Hallo,
meist du diese Breite?
Delphi-Quellcode:
Den unsichtbaren Bereich kannst du dann mit Hilfe von ClientWidth errechnen.
procedure TForm1.Button1Click(Sender: TObject);
var Breite, Spalte: integer; begin Breite:= 0; for Spalte:= 0 to ListView1.Columns.Count- 1 do inc(Breite, ListView1.Columns.Items[Spalte].Width); Showmessage('Breite: '+ inttostr(Breite)); end; |
Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor
Hm, ich merke, ich habe mein Problem etwas falsch beschrieben.
Also probier ich es noch mal anders auszudrücken: Wenn ein horizontaler Scroll möglich ist, wie ermittele ich dann, wie sich die Position eines Columns verändert? Wenn ich scrolle, verändert sich die Linksposition der Spalte im Fenster. Und genau diese bräuchte ich dann. Hat noch jmd Ideen? |
Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor
Hat dein ListView Columns?
Wenn Ja, summiere alle Listview.Columns[i].Width. Wenn Nein, erstelle Columns. |
Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor
Das ist ja genau das Problem, dein Vorschlagt genügt leider nicht meinen Ansprüchen.
Wenn eine Column (vorne) durch den horizontalen Scroll nur noch halb sichtbar ist, wie ist dann der Linkswert meiner Column (weiter hinten)? |
Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor
Kannst du dann hiermit was anfangen?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var vaScrollInfo: TScrollInfo; begin FillChar(vaScrollInfo, SizeOf(vaScrollInfo), 0); vaScrollInfo.cbsize := SizeOf(vaScrollInfo); vaScrollInfo.fMask := SIF_ALL; GetScrollInfo(ListView1.Handle, SB_HORZ, vaScrollInfo); Caption:= inttostr(vaScrollInfo.nTrackPos); end; |
Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor
Genau das war's. VIELEN DANK! :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 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 by Thomas Breitkreuz