Algo sobre la función CTRL.
Sabemos que sirve para obtener la
información de los controles y también posee la característica de que dentro
de sus parámetros se puede mencionar un cuarto parámetro con el contexto del
cual se desea extraer información, por ejemplo:
gb__win.frm_Pantalla
y en los demás parámetros utilizando
siempre los nombres que ya sabe que provee el GuiBuilder:
NombCia$=CTRL(X0,Id_txtNombCia,Get_Text,gb__win.frm_Pantalla)
Otra forma de obtener o almacenar información en cada control
Es utilizando funciones que también
provee GuiBuilder, mediante un método muy diferente:
frm_Screen$=fngb__get_screen$(gb__win_id$,frm_screen$)
Lo anterior nos devuelve todo lo
almacenado en la pantalla, es como hacer una especie de CTRL a toda la pantalla,
permitiéndosenos hacer referencia a cada control por su nombre, ejemplo:
Print frm_Screen.Id_Documento$
Print frm_Screen.Id_Codigo$
Bajo este esquema también se puede actualizar o almacenar datos en cada control en la pantalla anterior, así:
frm_Screen.Id_Documento$="123456"
frm_Screen.Id_Codigo$="000125"
Hechas las modificaciones, solo queda actualizar o refrescar la información en la pantalla con la siguiente
función:
frm_Screen$=fngb__put_screen$(gb__win_id$,frm_Screen$)
Lo anterior también se puede hacer de forma
individual con cada campo, mediante estas otras funciones que GuiBuilder también
facilita:
fngb__get_field$()
fngb__put_field$()
Para más información puede consultar
el manual de ayuda en línea de Visual Pro/5.
Interacción con objetos mediante función definida por el usuario
Esta otra técnica es la del uso
de una función que se DEFine en cada programa, la cual también permite utilizar
los nombres de los controles en lugar de los ID o números de identificación.
Igualmente se requiere del uso de
variables y funciones internas propias del GuiBuilder mencionadas anteriormente:
GB__WIN.NombForma
FNGB__WIN_ID$
FNGB__TEMPLATE$
Su DEFinición sería así:
DEF FNCTRL_ID(Contexto,CTRL_NAME$)
PRINT (X0)'CONTEXT'(Contexto); EMPL$=FNGB__TEMPLATE$(FNGB__WIN_ID$(Contexto));
DIM X$:TEMPL$;
I=NUM(FATTR(X$,CTRL_NAME$,"ID"));
RETURN I
FNEND
La función retorna el número
de identificación de cualquier control, dándole como parámetros el Nombre de
la Forma y el del Control que nos interesa. Adicionalmente, observe que mediante
esta función usted se olvida de tener que estar posicionándose sobre el contexto
que interesa, la función FNCTRL_ID lo hace por usted.
|