2010-12-03 19 views
13

Quiero autoasignar todas las columnas del TListView. Estoy usando el código siguiente, pero no está haciendo nada.Columnas de tamaño automático para TListView

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

¿Cómo puedo autoasignar las columnas de TListView en Delphi?

Configuré mi ViewStyle to vsReport.

Gracias de antemano

Respuesta

17

Tengo la respuesta. Configurar el ancho de la columna a -1 o -2 resolvió el problema.

Uso -1 ajuste para establecer el encabezado de columna para el tamaño de la más grande de texto subpunto en la columna,

y una -2 ajuste para establecer el encabezado de columna para el tamaño del texto en el encabezado de la columna.

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

Por supuesto, es mejor utilizar las constantes apropiadas: 'ColumnHeaderWidth = LVSCW_AUTOSIZE_USEHEADER;' 'o ColumnTextWidth = LVSCW_AUTOSIZE;'. –

+3

Solo quería agregar que esto no funciona si configura el ancho desde el Inspector de Objetos. – Aaron

-2

Prueba esto:

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

    { // Add your items } 

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

Esto no tiene absolutamente nada que ver con la pregunta. –

Cuestiones relacionadas