Avatar billede slowaterz Nybegynder
22. februar 2006 - 11:52 Der er 10 kommentarer og
1 løsning

Længde på SubItems i ListView

Er der begrænsninger for, hvor lang en SubItem streng kan være i en ListView ?

Jeg indlæser et produktkatalog i en en ListView. Et af felterne i kataloget er en lang beskrivlese af varen. Og det ser til, at det ikke er det hele, der kommer med over i mit ListVew.

Jeg bruger følgende kode til at tilføje en SubItem :
ListView.Items[i].SubItems.Add(longDescription);
Avatar billede kroning Nybegynder
22. februar 2006 - 14:52 #1
Begrænsningen ligger på 2GB vil jeg mene og jeg har også lige lavet en test hvor jeg lavede en subitem streng på 1000000 tegn uden problem. Men der ser ud til at være en begrænsning på 256 tegn i det man kan se i listviewet.
Avatar billede slowaterz Nybegynder
23. februar 2006 - 10:48 #2
Jeg har ellers søgt rundt i Delphi hjælpen om TListView for at finde noget om et max på længden af et SubItem, men fandt ikke noget.

Er det mon en global (Windows?) parameter, der styrer, hvor meget tekst, der kan vises ?
Avatar billede kroning Nybegynder
25. februar 2006 - 18:05 #3
Jeg ved ikke om det er windows der sætter grænsen på hvad der vises eller om det er delphi.
Avatar billede hrc Mester
26. februar 2006 - 22:20 #4
TListView er en Microsoft komponent som Borland har indkapslet (sådan som resten af Win32-API'et også er).

Det betyder, at du nok har med AsciiZ strenge at gøre og det betyder sikkert at grænsen er 2Gb, sådan som kroning også siger.

At ListViewet så begrænser udskriften til 255-256 tegn er et udtryk for god fornuft: Det er dårligt design, at proppe denne LongDescription ind i et listviews subitem. Kan du ikke placere den oplysning i en read-only TMemo nedenfor og så lade TListView'et opdatere memo'en hver gang man skifter listitem?
Avatar billede hrc Mester
26. februar 2006 - 22:22 #5
I øvrigt har man muligheden for at sætte Max-værdien for hvet enkelt ListView.Column, men D2006's hjælp om emnet var ikke-eksisterende. Her må du evt. prøve dig frem.
Avatar billede slowaterz Nybegynder
27. februar 2006 - 09:57 #6
TListColumn har godt nok en MinWidth og en MaxWidth property, men det ser ud til at være en bredde i pixels, man kan sætte.

Jeg bruger dog stadig Delphi 6, så det kan være, der er forskelle i, hvor meget man kan manipulere en TListView i forhold til Delphi 2006.
Avatar billede kroning Nybegynder
27. februar 2006 - 10:35 #7
Jeg er enig med hrc i at man ikke bør have en sådan lang beskrivelse i en listview, hvis du ikke vil have en memo der indeholder beskrivelsen så kunne du måske lave det sådan at når man peger eller klikker på den "forkortede" beskrivelse så popper der et vindue op med den komplette beskrivelse.
Avatar billede slowaterz Nybegynder
27. februar 2006 - 11:07 #8
Det har jeg også været nødt til at gøre - man dobbeltklikker på elementet og der kommer en form op, der indeholder den lange beskrivelse.
Avatar billede slowaterz Nybegynder
02. marts 2007 - 10:47 #9
Det var så svaret ...
Avatar billede slowaterz Nybegynder
02. marts 2007 - 10:47 #10
Doh !

Her kommer svaret.
Avatar billede slowaterz Nybegynder
02. marts 2007 - 10:48 #11
Og tak til hrc og kroning for input
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester