Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie nutzt man ViewOrigin in ListView? (https://www.delphipraxis.net/79063-wie-nutzt-man-vieworigin-listview.html)

bluescreen25 15. Okt 2006 19:58


Wie nutzt man ViewOrigin in ListView?
 
Wie nutzt man ViewOrigin in einem Listview mit ViewStyle = vsSmallIcon ?

Ich möchte zum Beispiel ein bestimmtes Item im sichtbaren Bereich der Listview halten oder auch ein bestimmtes Item in der Mitte des sichtbaren Bereichs automatisch scrollen.
Bei Listboxen gibt es TopItem und ItemIndex zum Festlegen und Berechnen für den sichtbaren Bereich.

Alternative: kann man das Listview dazu bringen im ViewStyle = vsList nicht nebeneinander sondern ausschließlich untereinander zu listen, wie im Explorer in "Details"-Anzeige?

Grüße bluescreen25

Matze 15. Okt 2006 20:08

Re: Wie nutzt man ViewOrigin in ListView?
 
Zitat:

Zitat von bluescreen25
Alternative: kann man das Listview dazu bringen im ViewStyle = vsList nicht nebeneinander sondern ausschließlich untereinander zu listen, wie im Explorer in "Details"-Anzeige?

Dafür gibt es vsReport. Du musst hierfür allerdings Spalten (Columns) anlegen, wobei du diese Spaltennamen (vgl. Explorer) nachher auch ausblenden lassen kannst). Mit vsList geht das afaik nicht. Falls du nur eine SPalte hast (wovon ich ausgehe), gib dieser die Breite -2, dann ist die Spalte so breit wie die ListBox.

bluescreen25 15. Okt 2006 20:19

Re: Wie nutzt man ViewOrigin in ListView?
 
Zitat:

Zitat von Matze
Zitat:

Zitat von bluescreen25
Alternative: kann man das Listview dazu bringen im ViewStyle = vsList nicht nebeneinander sondern ausschließlich untereinander zu listen, wie im Explorer in "Details"-Anzeige?

Dafür gibt es vsReport. Du musst hierfür allerdings Spalten (Columns) anlegen, wobei du diese Spaltennamen (vgl. Explorer) nachher auch ausblenden lassen kannst). Mit vsList geht das afaik nicht. Falls du nur eine SPalte hast (wovon ich ausgehe), gib dieser die Breite -2, dann ist die Spalte so breit wie die ListBox.

Ja vsReport mit ausgeblendeter Spaltenüberschrift geht.


Bei NewColumn.Width:= -2; zeigt er mir gar nichts mehr an. Gleichgesetzt mit List.Width zeigt mir die letzten 3 Stellen als ...

Grüße bluescreen25

marabu 15. Okt 2006 20:39

Re: Wie nutzt man ViewOrigin in ListView?
 
-2?

Wieso nicht einfach Column.AutoSize = True? Damit wird immer die ganze Breite des Controls als Spaltenbreite genommen.

Grüße vom marabu

bluescreen25 15. Okt 2006 20:45

Re: Wie nutzt man ViewOrigin in ListView?
 
Zitat:

Zitat von marabu
-2?

Wieso nicht einfach Column.AutoSize = True? Damit wird immer die ganze Breite des Controls als Spaltenbreite genommen.

Grüße vom marabu

Bringt irgendwie das gleiche Ergebnis wie auf Listview-Breite gleichzusetzen.
Verkürzen mit ... macht er hier auch auf die letzten 3-4 Stellen

Oder gibt es da Nachteile?

marabu 15. Okt 2006 21:00

Re: Wie nutzt man ViewOrigin in ListView?
 
Zitat:

Zitat von bluescreen25
[-2] Bringt irgendwie das gleiche Ergebnis wie auf Listview-Breite gleichzusetzen.

Nicht wirklich. Statt -2 schreibt man normalerweise LVSCW_AUTOSIZE_USEHEADER und das hat den Effekt, dass der Text im Header der Column die Breite steuert. Width auf 0 gesetzt und AutoSize = True maximiert die Spaltenbreite - spätestens beim Neuzeichnen.

Zitat:

Zitat von bluescreen25
Verkürzen mit ... macht er hier auch auf die letzten 3-4 Stellen

Dazu schau mal hier: wie punkte hinter listview eintraegen abschneiden

Grüße

bluescreen25 15. Okt 2006 21:10

Re: Wie nutzt man ViewOrigin in ListView?
 
Zitat:

Zitat von marabu
Zitat:

Zitat von bluescreen25
[-2] Bringt irgendwie das gleiche Ergebnis wie auf Listview-Breite gleichzusetzen.

Nicht wirklich. Statt -2 schreibt man normalerweise LVSCW_AUTOSIZE_USEHEADER und das hat den Effekt, dass der Text im Header der Column die Breite steuert. Width auf 0 gesetzt und AutoSize = True maximiert die Spaltenbreite - spätestens beim Neuzeichnen.

Zitat:

Zitat von bluescreen25
Verkürzen mit ... macht er hier auch auf die letzten 3-4 Stellen

Dazu schau mal hier: wie punkte hinter listview eintraegen abschneiden

Grüße

:-D wow, das hatte ich irgendwann auch mal im Forum gelesen....

Hmm aber eigendlich noch nicht das richtige. Ich denke die ALLER ALLER schönste Lösung wäre eine zweizeile Beschriftung innerhalb eines Items.....

Das wäre mal ne Herausforderung und sähe auch noch schicker aus...zumindest in meiner Anwendung.
Ist sowas überhaupt möglich?

Viele Grüße, bluescreen25

marabu 15. Okt 2006 21:17

Re: Wie nutzt man ViewOrigin in ListView?
 
Vielleicht verstehe ich ja nicht was du wirklich willst, aber zweizeilige Texte in einer ListView mit ViewStyle vsReport? Da kannst du ja gleich ein StringGrid im OwnerDraw-Modus verwenden - Bildchen und mehrzeilige Ausgabe ist doch da überhaupt kein Problem. Oder brauchst du die anderen ViewStyles für irgendwas?

Grüße

bluescreen25 15. Okt 2006 21:25

Re: Wie nutzt man ViewOrigin in ListView?
 
Zitat:

Zitat von marabu
Vielleicht verstehe ich ja nicht was du wirklich willst, aber zweizeilige Texte in einer ListView mit ViewStyle vsReport? Da kannst du ja gleich ein StringGrid im OwnerDraw-Modus verwenden - Bildchen und mehrzeilige Ausgabe ist doch da überhaupt kein Problem. Oder brauchst du die anderen ViewStyles für irgendwas?

Grüße

Hmm, naja das ganze ist für eine Playliste für einen Mediaplayer.
Haben uns zu Anfang auf das ListView eingeschossen, da es auch die Icons mitverwaltet.
Dann haben wir festgestellt, das es für viele Einträge zu langsam ist.
Jetzt ist das ListView virtual und arbeitet schnell.
Nun sitzt man davor, es grafisch etwas ansehnlicher zu bekommen, schauten schon danach, wie man den Hintergrund transparent bekommt, aber das scheint ja ein Problem zu sein.
Die zweizeilige Anzeige ist in sofern gut, weil die Liste schmal ist.

Mein eigenes letztes Projekt war noch mit einer Listbox.

Grüße, bluescreen25


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 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