schwer ist das nicht, aber für was brauchst du das?
ein kleiner Hinweis: wenn du die Breite der Spalten mit colums[x].width=columnheaderwidth etc. an die Größe des testes anpaßt, liefert dir column[x].width einen falschen wert, nämlich die konstante columnheaderwidth (zumindestens bei mir (d6) und obwohl es laut hilfe auch nicht sein sollte).
An die richtige größe kommt du mit LVM_GETCOLUMNWIDTH ran.
Delphi-Quellcode:
listview1.Columns[0].Width := ColumnHeaderWidth;
memo1.lines.add(inttostr(Integer( SendMessage(ListView1.Columns.Owner.Handle, LVM_GETCOLUMNWIDTH, 0, 0) )));//liefert die echte Spaltegröße
memo1.lines.Add(inttostr(listview1.Column[0].Width)); //liefert -2
Mfg Frank