![]() |
ListView: Wenn Zeile nicht mehr sichtbar nach unten scrollen
Hallo,
ich habe eine ListView mit mehr Zeilen als momentan sichtbar (also die vertikale Scrollbar ist sichtbar). in einer Schleife wird nacheinander die Zeilen abgearbeitet und zum Schluss in die letzte Spalte jeder Zeile ein Text eingetragen. So weit so gut - das ist noch nicht das Problem. Wenn die Zeilen abgearbeitet werden, die nicht mehr sichtbar sind, dann sieht man den eingetragenen Text nicht mehr. Wie kann ich die ListView "bedingt" nach unten scrollen, damit immer die aktuelle Zeile sichtbar ist? Als Scroll-Code hab ich folgenden Code:
Code:
Wann weiss ich, wenn eine Zeile nicht mehr sichtbar ist, damit ich runterscrollen kann?
ListView_Dateien.Perform(WM_VSCROLL, SB_LINEDOWN, 0);
Oder hat jemand eine andere, vielleicht bessere Lösung? mfg Helmi [edit] Ich vergaß zu erwähnen, dass
Code:
ist.
ListView_Dateien.SortType := stText;
ListView_Dateien.ViewStyle := vsReport; [/edit] |
Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro
Sollte besser gehen mit
![]() |
Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro
Hallo Luckie,
danke für deinen Tip :hello: Ich hab das jetzt mal so gelöst:
Code:
Wenn also jetzt eine Zeile kommt, die nicht sichtbar ist, dann wird eben um eine Zeile nach oben gescrollt, damit die aktuelle Zeile sichtbar ist.
SendMessage(ListView_Dateien.Handle, LVM_ENSUREVISIBLE, Line, 0);
//Line ist die aktuelle Zeile Nur der letzte Parameter ist mir unklar. Diesen kann ich auf 1 oder auf 0 setzen, aber er macht immer das gleiche. Was mich jetzt zwar nicht wirklich stört, da er ja immer das Richtige tut, aber interessieren würds mich schon, was dieser Parameter macht. Hier mal die Microsoft-Erklärung: Zitat:
Helmi |
Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro
das hat sich erledigt :-D
ich hab mal Google befragt was das heisst und Google sagte mir, wenn dieser Parameter auf 0 ist, dann wird gescrollt auch wenn die Zeile halb sichtbar ist, bei 1 wird nicht mehr gescrollt, wenn die Zeile halb sichtbar ist. Trotzdem Danke :party: |
Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro
Warum benutzt ihr nicht direkt die VCL?
Letzten Eintrag im TListView sichtbar machen:
Delphi-Quellcode:
with ListView1 do
Items[Items.Count - 1].MakeVisible(True); |
Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro
Zitat:
Nein, ich kannte die Methode nicht und habe es deswegen per WinAPI gelöst. |
Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro
Danke Sprint.
Dein Code geht auch. Aber auf mein Problem hin hab ich ihn so geändert:
Code:
Wobei "Line" die aktuelle Zeile ist.
with ListView1 do
Items[Line].MakeVisible(True); So springt er auch eine Zeile runter und zeigt mir die aktuelle Zeile an. mfg Helmi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:39 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