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