BBjHTMLView
A partir de BBj 7.0 el objeto BBjHtmlView despliega archivos HTML. El siguiente ejemplo con funcionalidad completa (cópialo y pégalo en un nuevo programa y ejecútalo) te permite observarlo en acción. He destacado en otro color la instrucción que contiene la creación del objeto.
REM “[PRG15] Ejemplo de BBjHTMLView
REM “Mundo BBx
REM
REM “Obtiene una instancia del objeto BBjAPI
REM “=======================================
LET miAPI!=BBjAPI()
REM
REM “Abre el dispositivo SYSGUI
REM “==========================
SYSGUI=UNT
OPEN (SYSGUI) "X0"
REM
REM “Obtiene la instancia del objeto BBjSysGui
REM “=========================================
LET sysgui!=miAPI!.getSysGui()
REM
REM “Valores para crear una ventana
REM “==============================
X=10
Y=10
ANCHO=800
ALTO=600
TITULO$="Ejemplo de uso BBjHTMLView"
REM
REM “Establece el contexto actual
REM “============================
sysgui!.setContext(0)
REM
REM “Crea la ventana
REM “===============
window! = sysgui!.addWindow(X,Y,ANCHO,ALTO,TITULO$)
REM
REM “Agrega un control HtmlView
REM “==========================
vistahtml! = window!.addHtmlView(101,25,25,750,550,html$)
vistahtml!.setUrl("http://www.google.com")
mensaje! = window!.addStaticText(102,25,700,550,30,"")
actualiza! = window!.addButton(1,685,700,90,30,"Actualiza")
forzar! = window!.addButton(2,585,700,90,30,"Fuerza actualizacion")
REM
REM “Registra rutinas en CALLBACKs
REM “=============================
CALLBACK(ON_CLOSE,CIERRA_APLIC,sysgui!.getContext())
CALLBACK(ON_HYPERLINK_ENTER,URL_ENTRADA,sysgui!.getContext(),vistahtml!.getID())
CALLBACK(ON_HYPERLINK_EXIT,URL_SALIDA,sysgui!.getContext(),vistahtml!.getID())
CALLBACK(ON_HYPERLINK_ACTIVATE,URL_ACTIVADA,sysgui!.getContext(),vistahtml!.getID())
CALLBACK(ON_PAGE_LOADED,PAGINA_CARGADA,sysgui!.getContext(),vistahtml!.getID())
CALLBACK(ON_BUTTON_PUSH,ACTUALIZADA,sysgui!.getContext(),actualiza!.getID())
CALLBACK(ON_BUTTON_PUSH,FORZAR,sysgui!.getContext(),forzar!.getID())
REM
REM “Procesa Eventos
REM “===============
PROCESS_EVENTS
REM
URL_ENTRADA:
mensaje!.setText("Entrada " + sysgui!.getLastEvent().getUrl())
return
REM
URL_SALIDA:
mensaje!.setText("Salida " + sysgui!.getLastEvent().getUrl())
return
REM
URL_ACTIVADA:
URL$ = sysgui!.getLastEvent().getUrl()
mensaje!.setText("Activada " + URL$)
vistahtml!.setUrl(URL$)
return
REM
PAGINA_CARGADA:
URL$ = sysgui!.getLastEvent().getUrl()
mensaje!.setText("Cargada " + URL$)
return
REM
ACTUALIZADA:
URL$ = vistahtml!.getUrl()
mensaje!.setText("Activada " + URL$)
vistahtml!.setUrl(URL$)
RETURN
REM
FORZAR:
URL$ = vistahtml!.getUrl()
vistahtml!.setUrl("http://sites.google.com/site/mundobbx")
vistahtml!.setUrl(URL$)
mensaje!.setText("Activada " + URL$)
RETURN
REM
REM “Rutina Callback llamada cuando el usuario cierra la ventana de la aplicación
REM “============================================================================
CIERRA_APLIC:
RELEASE
RETURN