Elias David Niño Ruiz enino@uninorte.edu.co STRING GRID Elias David Niño Ruiz enino@uninorte.edu.co
StringGrid Este objeto funciona como una matriz, el cual tiene filas y columnas, su desempeño o tratamiento es muy similar al que todos conocemos con matrices… Por ejemplo, podemos intercambiar filas x columnas, asignar x elemento a la casilla (i,j) etc.
Particularidades El StringGrid, a diferencia de la matriz, la primera variable i, hace referencia a la columna, y la segunda j, a la fila, es decir, si en una matriz cualquiera llamese M, deseo acceder a la posicion (2,3), en el StrinGrid debere digitar (3,2)
Como manipular el StringGrid Primero que todo, el objeto StringGrid, se encuentra ubicado en el menú additional de la barra de herramientas del Builder c++
Pegamos el StringGrid en el formulario Por default, nos aparecera con 5 fc y 5 fr las que aparecen en color , y una Matriz de 4x4 en forma de celdas blancas
PROPIEDADES MAS IMPORTANTES FixedCols: Agrega columnas de encabezado, se pueden modificar antes en el object inspector asignando el valor deseado o durante la ejecucion del programa de la siguiente manera: StringGrid1->FixedCols = (int)
PROPIEDADES MAS IMPORTANTES FixedRows: Al igual que el FixedCols se puede cambiar antes de comenzar a ejecutar el programa, o bien durante su ejecución, por ejemplo: StringGrid1->FixedRows = (int)
PROPIEDADES MAS IMPORTANTES GridLineWidht: Aumenta el grosor de las líneas que separan las casillas del StringGrid, bien se puede hacer antes de su ejecución o durante la misma, Ej: StringGrid1->GridLineWidth = (int)
PROPIEDADES MAS IMPORTANTES Enabled: Como todos conocemos esta propiedad que ha sido mencionada en objetos anteriores, aquí también cumple la propiedad de habilitar o deshabilitar el StringGrid, se puede hacer antes o durante su ejecución, Ej: StringGrid1->Enabled = (bool)
PROPIEDADES MAS IMPORTANTES Visible: Esta propiedad sirve para ocultar o mostrar un StringGrid, puede ser antes o durante su ejecución, por ejemplo: StringGrid1->Visible = (bool)
PROPIEDADES MAS IMPORTANTES DefaultColWidth: Esta propiedad sirve para colocar el ancho de las celdas, se puede hacer antes o durante su ejecución, Ej StringGrid1->DefaultColWidth = (int)
PROPIEDADES MAS IMPORTANTES DefaultRowHeight: Similar a la propiedad anterior, solo que esta maneja lo relacionado con las columnas, Ej: StringGrid1->DefaultRowHeight= (int)
PROPIEDADES DINAMICAS BASICAS Y DE UTILIDAD La anteriores, fueron propiedades básicas, a continuación presentaremos algunas propiedades, cuyo uso es mucho mas frecuente en la ejecución del programa…
RowCount Esta propiedad, manipula el numero de filas de un StringGrid, por ejemplo StringGrid1->RowCount = 3; Asigna al StringGrid 3 Columnas
ColCount Similar al anterior, solo que este se encarga de las columnas StringGrid1->ColCount = 3; Asigna al StringGrid 3 columnas
RowCount y ColCount Entonces ya sabemos que si durante la ejecucion de un programa mi matriz se convierte en una matriz de 3x3 y deseo asignarla a un StringGrid, entonces: StringGrid1->RowCount = 3; StringGrid1->ColCount = 3;
PERO COMO ENVIO LOS DATOS AL STRINGGRID????? Primero, recordemos lo anteriormente mencionado, el StringGrid a diferencia de las matrices que hemos utilizado, se comporta de manera contraria en cuanto a casillas, es decir columnas x filas M(Filas,Columnas) (Matriz) ->S(Columnas,Filas) (StringGrid)
ENVIO DE DATOS Cada celda de un StringGrid es un AnsiString, luego, si deseo enviar una posicion de una Matriz M(i,j) al StringGrid, se hace de la siguiente forma: StringGrid1->Cells[j][i] = M[i][j]; Cells[][]: Es la propiedad que nos permite utilizar las celdas de un StrinGrid
AGREGAR UNA MATRIZ DE M*N A UN STRINGGRID StringGrid->RowCount = N; StringGrid->ColCount = M; for(int k = 0; k < N;k++){ for(int j = 0; j < M;j++){ StringGrid1->Cells[j][k] = M[k][j]; }}
DE MANERA DINAMICA… StringGrid1->RowCount = 0; StringGrid1->ColCount = 0; for(int k = 0; k < N;k++){ StringGrid1->RowCount++; for(int j = 0; j < M;j++){ StringGrid1->ColCount++; StringGrid1->Cells[j][k] = M[k][j]; }}
EN CONCLUSION… FixedCols FixedRows GridLineWidht Enabled Visible DefaultColWidth DefaultRowHeight RowCount ColCount Cells[][]