2010-12-03 8 views
13

Ich möchte alle Spalten in TListView automatisch skalieren. Ich benutze unten Code, aber es tut nichts.Autosize-Spalten für TListView

ListView1.Columns.Add.Caption := 'Field Name'; 
ListView1.Columns.Items[0].Autosize := True; 

Wie kann ich die Spalten von TListView in Delphi automatisch Größe.

Ich setze meine ViewStyle to vsReport.

Vielen Dank im Voraus

Antwort

17

Ich habe die Antwort bekommen. Die Einstellung der Spaltenbreite auf -1 oder -2 löste das Problem.

Verwenden -1 Einstellen der Spaltenüberschrift auf die Größe des größten subitem Text in der Spalte zu setzen,

und -2 Einstellen der Spaltenüberschrift auf die Größe des Textes in der Spaltenüberschrift gesetzt.

ListView1.Columns[0].Width := -1 or -2; 
+14

Natürlich ist es besser, die entsprechenden Konstanten zu verwenden: 'ColumnHeaderWidth = LVSCW_AUTOSIZE_USEHEADER;' oder 'ColumnTextWidth = LVSCW_AUTOSIZE;'. –

+3

wollte nur hinzufügen, dass dies nicht funktioniert, wenn Sie die Breite aus dem Objektinspektor festlegen. – Aaron

-2

Try this:

// Assign vsReport;  
ListView1.ViewStyle := vsReport; 

    { // Add your items } 

// Assign vsList again; 
ListView1.ViewStyle := vsList; 
+0

Das hat mit der gestellten Frage absolut nichts zu tun. –

Verwandte Themen