AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi ListView: Wenn Zeile nicht mehr sichtbar nach unten scrollen
Thema durchsuchen
Ansicht
Themen-Optionen

ListView: Wenn Zeile nicht mehr sichtbar nach unten scrollen

Ein Thema von Helmi · begonnen am 21. Dez 2004 · letzter Beitrag vom 21. Dez 2004
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

ListView: Wenn Zeile nicht mehr sichtbar nach unten scrollen

  Alt 21. Dez 2004, 15:48
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:
  ListView_Dateien.Perform(WM_VSCROLL, SB_LINEDOWN, 0);
Wann weiss ich, wenn eine Zeile nicht mehr sichtbar ist, damit ich runterscrollen kann?
Oder hat jemand eine andere, vielleicht bessere Lösung?

mfg
Helmi

[edit] Ich vergaß zu erwähnen, dass

Code:
  ListView_Dateien.SortType := stText;
  ListView_Dateien.ViewStyle := vsReport;
ist.

[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro

  Alt 21. Dez 2004, 15:53
Sollte besser gehen mit MSDN-Library durchsuchenLVM_ENSUREVISIBLE.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#3

Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro

  Alt 21. Dez 2004, 16:01
Hallo Luckie,

danke für deinen Tip

Ich hab das jetzt mal so gelöst:

Code:
SendMessage(ListView_Dateien.Handle, LVM_ENSUREVISIBLE, Line, 0);
//Line ist die aktuelle Zeile
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.

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:
Syntax


To send this message, call the SendMessage function as follows.
lResult = SendMessage( // returns LRESULT in lResult (HWND) hWndControl, // handle to destination control (UINT) LVM_ENSUREVISIBLE, // message ID (WPARAM) wParam, // = (WPARAM) (int) i; (LPARAM) lParam // = (LPARAM) (BOOL) fPartialOK; );
Parameters

i
Index of the list-view item.
fPartialOK
Value specifying whether the item must be entirely visible. If this parameter is TRUE, no scrolling occurs if the item is at least partially visible.
Return Value

Returns TRUE if successful, or FALSE otherwise.
mfg
Helmi
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#4

Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro

  Alt 21. Dez 2004, 16:10
das hat sich erledigt

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

  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#5

Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro

  Alt 21. Dez 2004, 16:13
Warum benutzt ihr nicht direkt die VCL?

Letzten Eintrag im TListView sichtbar machen:
Delphi-Quellcode:
  with ListView1 do
    Items[Items.Count - 1].MakeVisible(True);
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro

  Alt 21. Dez 2004, 16:23
Zitat von Sprint:
Warum benutzt ihr nicht direkt die VCL?
Wie banal, das ist ja langweilig.

Nein, ich kannte die Methode nicht und habe es deswegen per WinAPI gelöst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#7

Re: ListView: Wenn Zeile nicht mehr sichtbar nach unten scro

  Alt 21. Dez 2004, 16:24
Danke Sprint.

Dein Code geht auch.

Aber auf mein Problem hin hab ich ihn so geändert:

Code:
with ListView1 do
    Items[Line].MakeVisible(True);
Wobei "Line" die aktuelle Zeile ist.

So springt er auch eine Zeile runter und zeigt mir die aktuelle Zeile an.

mfg
Helmi
  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 00:26 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