2010-10-01 31 views
14

Quiero usar el TGridPanel 2009 de Delphi, pero no entiendo cómo usarlo correctamente.Delphi Cómo usar TGridPanel

Por ejemplo, quiero tener un GridPanel con 4 columnas que debe tener cada 25% por ciento del ancho de GripPanels.

Así que puse un GripPanel en el formulario y agregué 4 ColumnItems. Doy los artículos de la columna SizeStyle ssPercent, y ahora trato de dar a cada ColummItem un valor de 25 (ober el inspector de objetos). Pero por alguna razón, el inspector de objetos no acepta el valor 25. Se cambia automáticamente a algo así como '23, 8095238095238 '. ¿Podría alguien explicarme brevemente cómo usar estos componentes? Gracias!

Respuesta

13

Cuando se establece el Value de una columna con SizeStylessPercent, el componente distribuye la nueva suma de todas las columnas de estilo ssPercent para el porcentaje total disponible. Por ejemplo, si tienes 4 columnas del 25% y configuras una para que sea el 50%, ahora tienes un total del 125%. El componente calcula "Valor nuevamente para tener el total distribuido proporcionalmente, es decir, 50% -> 40% (100 * 50/125).

Para establecer el valor de más de una columna a la vez, en tiempo de ejecución rodearía su código con GridPanel.ColumnCollection.BeginUpdate y GridPanel.ColumnCollection.EndUpdate.

Y en tiempo de diseño edite directamente el .dfm. Presione 'Alt + F12' cuando esté viendo su formulario en el editor de diseño, encuentre su GridPanel en el editor de texto, edite el valor de las columnas allí, y luego presione 'Alt + F12' nuevamente para regresar a la vista de diseño.

+0

¡Gracias, eso funciona! Nota: después de descartar un GridPanel en el formulario y eliminar las filas y las columnas en designtime, estas filas y columnas aún existen en tiempo de ejecución y debe eliminarlas manualmente. Un poco extraño – flinkiy1

+0

O puede seleccionar las 4 columnas y escribir 25 en el inspector de objetos – VitaliyG

+0

@Vitaliy - Eso no es más fácil que seleccionar las 4 y luego escribir 0, que está cubierto en la respuesta de Uwe. Mi respuesta, más bien, es útil si no va a distribuir igualmente los anchos. Por supuesto, también puedes hacer eso, pero, de hecho, otras alternativas son mejores en eso. –

14

Si desea establecer todas las columnas con el mismo valor, seleccione todas las columnas en la vista de estructura y luego (suponiendo que SizeStyle ya esté configurado en ssPercent) establezca el valor en . Esto disparará un cierto automatismo que hace que todas las columnas tengan el mismo tamaño.

Cuestiones relacionadas