AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TListView: zum markierten Item scrollen
Thema durchsuchen
Ansicht
Themen-Optionen

TListView: zum markierten Item scrollen

Ein Thema von Mazel · begonnen am 1. Jun 2006 · letzter Beitrag vom 1. Jun 2006
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

TListView: zum markierten Item scrollen

  Alt 1. Jun 2006, 12:35
Hallo,

ich arbeite mit einer TListView, die mir als Playlist dient. Nun wird automatisch der nächste Item ausgewählt. Das Problem was ich habe ist, das ich nicht sehe welcher Item ausgewählt ist, da die ListView Komponente nicht zu diesen Item scrollt. Wenn also im ListView 230 Einträge sind und es wird der 123. ausgewählt, sehe ich immer noch den letzen Item. Wie kann ich das Problem lösen?

Ich habe es schon mit TListView.Scroll(DX, DY) versucht aber das hat nicht ganz so funktioniert.

Wichtig ist wohl auch noch, das die ListView ihne ihrer Größe (nur Höhe) änderbar ist.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Dale

Registriert seit: 7. Apr 2006
Ort: Alsdorf
42 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TListView: zum markierten Item scrollen

  Alt 1. Jun 2006, 14:11
Hallo Mazel,

falls du etwas Zeit und Lust hast, würde ich dir eine andere Komponente empfehlen, die wesentlich mehr Möglichkeiten bietet als das TListView:

"VirtualTreeView"

Falls du dazu keine Lust hast, sollte folgende, nicht besonders schöne Lösung vielleicht helfen. Hierbei sei "lItem" dein ausgewählter Eintrag und "lv" das ListView:

Delphi-Quellcode:
  IF ((lItem.Index + lv.VisibleRowCount) > lv.Items.Count) THEN
  lItem := lv.Items[lv.Items.Count - lv.VisibleRowCount];
WHILE (lItem.Index > lv.TopItem.Index) DO
  lv.Scroll(0, 10);
lv.SetFocus;
Schönen Tag von Dale
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#3

Re: TListView: zum markierten Item scrollen

  Alt 1. Jun 2006, 14:19
Hi,

ich glaube ich habe eine Lösung mit Scroll(DX, DY) gefunden, ist auch nicht gerade schön auf geht:
Delphi-Quellcode:
Form4.Playlist.Scroll(0, -14 * 1000); //hoch an den Anfang
Form4.Playlist.Scroll(0, 14 * ItemIndex); //die Zeilen sind 14 Pixel hoch daher mal 14
Zu VirtualTreeView: ich weis nicht ob es bei Delphi 6 Personal dabei ist denn ich finde es auf keiner Palette.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#4

Re: TListView: zum markierten Item scrollen

  Alt 1. Jun 2006, 14:22
VirtualTreeView ist eine Fremdkomponete: google sollte helfen.
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: TListView: zum markierten Item scrollen

  Alt 1. Jun 2006, 14:34
Hallo,

das, was Du suchst, heißt MakeVisible. Siehe auch

Delphi-Quellcode:
...
  ListView1.Selected.MakeVisible(True);
...
  Mit Zitat antworten Zitat
Dale

Registriert seit: 7. Apr 2006
Ort: Alsdorf
42 Beiträge
 
Delphi 2006 Professional
 
#6

Re: TListView: zum markierten Item scrollen

  Alt 1. Jun 2006, 14:44
Bei MakeVisible steht der ausgewählte Eintrag allerdings am unteren Ende des ListView, bei meinem Vorschlag wird er zum ersten sichtbaren Eintrag (falls möglich).

Dale
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#7

Re: TListView: zum markierten Item scrollen

  Alt 1. Jun 2006, 16:10
Hi,

MakeVisible kann ich leider nicht verwenden, da ich die Playlist schon am Anfang lade und da kommt es zu einer Exception Zugriffsverletzung.

Meine Variante zeigt den gewählten Eintrag ebenfalls am oberen Ende des ListViews an, MakeVisible am unteren Ende.

Da ich den Eintrag oben anzeigen will, bleibe ich bei meiner Variante. Trotzdem danke.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  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 19:15 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