AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Tatsächliche Breite einer ListView mit ViewStyle vsReport?
Thema durchsuchen
Ansicht
Themen-Optionen

Tatsächliche Breite einer ListView mit ViewStyle vsReport?

Ein Thema von robvs · begonnen am 20. Apr 2007 · letzter Beitrag vom 20. Apr 2007
Antwort Antwort
robvs

Registriert seit: 3. Jul 2006
30 Beiträge
 
#1

Tatsächliche Breite einer ListView mit ViewStyle vsReport?

  Alt 20. Apr 2007, 08:46
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
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor

  Alt 20. Apr 2007, 10:01
Hallo,

meist du diese Breite?
Delphi-Quellcode:
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;
Den unsichtbaren Bereich kannst du dann mit Hilfe von ClientWidth errechnen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
robvs

Registriert seit: 3. Jul 2006
30 Beiträge
 
#3

Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor

  Alt 20. Apr 2007, 10:13
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?
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor

  Alt 20. Apr 2007, 10:56
Hat dein ListView Columns?
Wenn Ja, summiere alle Listview.Columns[i].Width.
Wenn Nein, erstelle Columns.
Uwe
  Mit Zitat antworten Zitat
robvs

Registriert seit: 3. Jul 2006
30 Beiträge
 
#5

Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor

  Alt 20. Apr 2007, 11:08
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)?
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor

  Alt 20. Apr 2007, 12:04
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;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
robvs

Registriert seit: 3. Jul 2006
30 Beiträge
 
#7

Re: Tatsächliche Breite einer ListView mit ViewStyle vsRepor

  Alt 20. Apr 2007, 13:03
Genau das war's. VIELEN DANK!
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:07 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