Portada
Banner
Portada Foros Manuales Enlaces Email
clear1x1.gif clear1x1.gif clear1x1.gif
clear1x1.gif
clear1x1.gif

Portada
Foros
Manuales
Enlaces
Distribuidores
Precios
Sugerencias

Contacto

 

clear1x1.gif clear1x1.gif
 GuiBuilder - Manual del Usuario (Parte 53/55)
Primero Previo Próximo Último

El siguiente paso, es enseñarle como utilizar en la programación los nombres asignados a las formas y a los objetos, para lo cual también puede insertar en la rutina de inicio del GuiBuilder instrucciones similares a las que siguen,  para los objetos que le interese usar en el programa:

dim frm_screen$:fngb__template$(gb__win_id$)

Id_lboxPaises=Num(Fattr(frm_screen$,"Id_lboxPaises","ID"))
Id_btnEliminar=Num(Fattr(frm_screen$,"Id_btnEliminar","ID"))
Id_ipnNombClien=Num(Fattr(frm_screen$,"Id_inpNombClien","ID"))
Id_txtNombCia=Num(Fattr(frm_screen$,"Id_txtNombCia","ID"))

Para entender lo anterior, debe saber que:
- gb__win_id$ contrendrá el ID de la forma a ser usada.
- frm_screen$ contendrá el template de los objetos a ser usados y que
- Id_lboxPaises, Id_btnEliminar y los demás anotados, son los nombres asignados con el ResBuilder a los objetos.

Para aplicar lo anterior a un Child Window puede hacerlo así:

Dim frm_screen$:fngb__template$(fngb__win_id$(nfield(gb__win$,"chw_Consulta")))
Id_CodigoCliente=Num(Fattr(frm_screen$,"Id_Codigo_Cliente","ID"))

Lo mismo anterior pero más automático

Lo que sigue es otra forma aún mejor de obtener los nombres de todos los controles y su ID, directamente desde la Forma o Child Window que indiquemos, bajo la advertencia de que esta técnica no sirve para programas que son ejecutados por medio de la instrucción CALL, o bajo licencias RUNTIME, por hacerse uso del comando EXECUTE.

rem ' -----------------------------------------------------------------
rem ' Init
rem ' -----------------------------------------------------------------
      get_text=1,
:     x0=gb__sysgui
rem Carga variables con valores de la forma Cajas
   print (x0)'context'(gb__win.frm_cajas)
   dim frm_screen$:fngb__template$(fngb__win_id$((nfield(gb__win$,"frm_cajas"))))
   tpl$=fattr(frm_screen$,"")
   REPEAT
   LET A=POS($0A$=TPL$),CAMP$=FATTR(FRM_SCREEN$,TPL$(1,A-1))
   IF POS($0A$+TPL$(1,A)=$0A$+FATTR(FRM_SCREEN$,""))
:     THEN LET A$=TPL$(1,A-1)+"=NUM(FATTR(frm_screen$,"+$22$+TPL$(1,A-1)
:+$22$+","+$22$+"ID"+$22$+"))"; 
  IF POS("LBL_"=TPL$)<>1 THEN EXECUTE A$
   LET TPL$=TPL$(A+1)
      UNTIL 
  TPL$=""
REM Sigue abrir archivos a ser usados
///

Con ese block de instrucciones, de forma automática se obtienen los nombres y los valores de todos los ID, tal y como se nombraron con el ResBuilder. Note que se hace la exclusión de aquellos controles cuyo name empiece con las letras LBL_, para ignorar los objetos tipo Estatic Text, de los cuales normalmente no se requiere obtener el ID.

El ejemplo anterior aplica de manera similar para los Child Window.

Si le interesa implementarlo deberá insertar ese grupo de instrucciones en la sección Initialization code de cada programa, para así trabajar con el Nombre y no con el ID. Vea que todo lo anterior se hace mediante funciones que provee el GuiBuilder. Deberá recordar que es necesario repetir el block de instrucciones por cada Window o Child Window que vaya a usar el programa.

Primero Previo Próximo Último

Portada -- Foros -- Manuales -- Enlaces-- Sugerencias
Para comentarios: webmaster@essnet.com

clear1x1.gif
clear1x1.gif
clear1x1.gif
Portada Email Foros