III BORLAND DELPHI UNIDAD ARREGLOS
6.- COMPONENTE StringGrid (adicional) DELPHI
Este componente es de los mas importantes, para el procesamiento de muchos datos, permite concentrar, procesar y mostrar gran cantidad de información para la vista del usuario.
Este componente presenta, manipula y procesa conjuntos de datos de tipo strings en forma tabular, es decir en forma de tablas, matrices, cuadros concentrados, ejemplo;
CIA ACME
INGRESOS POR VENTAS MENSUALES
MILLONES DE PESOS
ENE FEB MAR ABR
SUC A 1 2 3 4
SUC B 5 6 4 5
SUC C 6 7 8 9
Recordar que son los datos numéricos internos quienes se procesan (es decir, se capturan, se realizan operaciones con ellos, se despliegan, etc.), es la información externa quien le da sentido.
Y RECORDAR QUE SUS INDICES EMPIEZAN EN RENGLON=0 y COLUMNA=0.
Algunas de sus propiedades y métodos mas interesantes son:
ColCount.- Determina la cantidad de columnas que contendrá la tabla.
Recordar que para efectos de programación, la primera de ellas es la columna 0.
RowCount.- Determina la cantidad de renglones que contendrá la tabla.
Recordar que para efectos de programación, el primero de ellos es el renglón 0.
Fixedcol , Fixedrow.- Determinan la cantidad de columnas y renglones fijos o de encabezado, estas propiedades ponerlas en 0.
+Options, goediting = true; Para que permita editar o capturar datos al usuario.
+Options, gotab = true; Para que el usuario pueda navegar entre celdas usando la tecla del tabulador.
Cells[columna,renglón], Es la propiedad mas importante, porque es la que permite el acceso a cualquier celda de la tabla, ej.
StringGrid1.Cells[1,1] := 'PATO';
Edit1.Text=StringGrid1.Cells[0,0];
Las demás propiedades investigarlas en la ayuda del borland delphi .
Para procesar todos los elementos de la tabla, solo recordar que se deben usar dos ciclos for uno externo para controlar columnas y uno interno para controlar renglón ( observar que es lo inverso de las tablas o arreglos normales).
Ejemplo capturar una tabla de 3 * 4 enteros, y restarles 4 después;
Pantalla de Diseño: (inspector objetos)
FORM1:
Programa;
procedure TForm1.Button1Click(Sender: TObject); var c,r,temp:integer; begin for c:=0 to 2 do begin for r:=0 to 3 do begin temp:= StrToInt(StringGrid1.Cells[c,r])-4; StringGrid1.Cells[c,r] := IntToStr(temp); end; end; end;
Pantalla de Corrida:
CIA ACME
INGRESOS MENSUALES
(MILES DE PESOS)
ENE FEB MARZO TOTALSUC PROMSUC
SUC A 1 2 3 6 2
SUC B 4 5 6 15 5
SUC C 7 8 9 24 8
SUC D 10 11 12 33 11
TOTMES 22 26 30
PROMMES 5.5 6.5 7.8
En este ejemplo aparte de la tabla se ocupan 4 listas, dos para totales y dos para promedios.
El código en C++ es sencillo, pero cambiarlo a borland delphi, recordarlo y aprenderlo para siempre:
//declaración
float tabla[4][3], totsuc[4], promsuc[4];
float totmes[3], promes[3];
//observar tamaños de listas que referencian renglón
// listas que referencian columnas, se supone que la tabla // ya esta capturada.
//código para operaciones para totales y promedios //renglones por sucursal:
for(reng=0;reng<=3;reng++)
for(col=0;col<=2;col++)
{ totsuc[reng]=totsuc[reng]+tabla[reng][col]; };
for(reng=0;reng<=3;reng++) promsuc[reng]=totsuc[reng] / 3.0 ;
// operaciones para totales y promedios por mes
for(reng=0;reng<=3;reng++)
for(col=0;col<=2;col++)
{totmes[col]=totmes[col]+tabla[reng][col]; };
for (col=0;col<=2;col++) prommes[col]=totmes[col]/4.0;
TAREAS PROGRAMACION BORLAND DELPHI
1.- Construir un concentrado que despliegue los costos fijos de tres diversos productos que se fabrican en cuatro sucursales de una empresa MAQUILADORA.
2.- Construir un concentrado que contenga los ingresos por ventas mensuales de los 4 primeros meses del año de tres sucursales de una cadena refaccionarÃa, agregar listas de ingresos totales por mes e ingresos promedios por sucursal.
3.- Construir un cuadro que contenga las calificaciones de 5 materias de cuatro alumnos cualesquiera, incluir promedios de calificaciones por materia y por alumno.��