Ejemplo C:
Normalmente la variable GML_TPL.ROW_N% contiene un valor entre 1 y el máximo
de filas en el grid, una variable GML_TPL.COL_N% contiene el valor de 0. Fijando
GML_TPL.ROW_N% a -1 es interpretado por un programa GML como una instrucción
para aplicar el update a todas las columnas del grid. Por eso fijando GML_TPL.ROW_N%
a -1 y GML_TPL.COL_N% a -1 aplicará los cambios en la columna [1] a cada
celda en el grid. Este producto es normalmente usado para cambiar los atributos
del grid.
Los siguientes cambios en todas las celdas del grid principal set 1 para desplegar
el grid celda de texto con color de fondo gris y texto color gris oscuro. En
este ejemplo la variable GML_TPL.DEF_FLAG% es fijada a 1, instrucción
que programa el GML para actualizar el color de fondo del grid principal al
color de fondo en la variable GML_TPL.B_COLOR$[1]. Usando este producto mejora
la lista del grid en las celdas que son desplegadas. Si por ejemplo el color
de fondo era gris claro y el de fondo fue blanco, el grid podría aparecer
a "flash" como el grid haya sido redibujado. Los valores válidos
para variables GML_TPL.DEF_FLAG% son:
Valor Significado
0 no cambia
1 Fija el color de texto default al valor GML_TPL.T_COLOR$[1]
1 Fija el color de fondo default al valor en GML_TPL.B_COLOR$[1]
3 Aplica ambos colores 1 y 2 al grid de colores default.
2400 GML.SET%=1
2410 CALL "GML::TPL_PREP"
2420 GML_TPL.ROW_N%=-1
2430 GML_TPL.COL_N%=-1
2440 GML_TPL.B_COLOR$[1]=GML.LTGRAY$
2450 GML_TPL.T_COLOR$[1]=GML.DKGRAY$
2460 GML_TPL.DEF_FLAG%=2
2470 CALL "GML::UPDATE"
Opción Adicional:
Fijando la variable GML_TPL.DEF_FLAG% a 4 prevendrá el procedimiento
actualización de ejecutar una rutina GML que administre la cantidad de
filas visibles que pueden ser vistas más allá de la última
fila de datos que contienen texto.
Interpretando La notificación de eventos: GML:MOTIFY%
A través del uso de la plantilla GML_TPL$ los procedimientos GML son
usados para iniciar cambios a controles dentro de un grid específico.
Cuando un notificador de eventos del grid control ocurre (código de evento
en N con un tipo de objeto 107), programas GML_M maneja el evento por ejecución
específica de operaciones basadas en el número de código
de evento.
Ciertos eventos como códigos de evento 22 (TABLEUPDATE) son procesados
por el programa GML_M de manera que no requiere ser procesado por la aplicación.
Otros eventos, como el código de evento 18 (RCLICKED) son pre-procesados
por un programa GML_M y entonces pasa a la aplicación para procesos opcionales
adicionales. La determinación de cual evento notificador en el acto y
que tipo de procesamiento adicional para aplicar una aplicación específica.
Cuando un evento grid es pre-procesado por el programa GML_M, la plantilla
GML_TPL$ es inicializada y entonces sé cargada con los datos de fila
que corresponden a la fila del grid que era el origen del evento. En adición
a otras variables dentro de la plantilla GML_TPL$ son actualizadas con información
suplementaria que relaciona al evento específico. En ciertos casos varias
notificaciones de eventos son combinadas dentro del valor del GML.NOTIFY%. El
propósito de pre-procesar el evento es para preparar la plantilla GML_TPL$
en una forma que permita a la plantilla ser ejecutada con procedimientos GML
sin requerir una plantilla adicional.
Otros eventos como el código de evento 2 (COLCHANGE) son considerados
por el programa GML_M como eventos asesores. En estos casos, el programa GML:M
inicializa la plantilla GML_TPL$, pero la plantilla queda en el estado inicializado
como indicado por la variable GML_TPL.ROW_N% conteniendo un valor de 0.
Se debe notar que el programa GML_M usa la información contenida en
la plantilla notice event para manejar eventos a través del uso de la
variable GML.NOTIFY% y asociada a la plantilla. La información adicional
contenida en la plantilla notice no es cambiada por el GML. La aplicación
puede usar otra plantilla notice evento de información, GML.NOTIFY%,
o ambos para el acto en el evento del grid.
|