Page 1 of 1

ayuda con tactivex

Posted: Thu Aug 29, 2013 5:55 pm
by GuillermoMtz
Estoy intentando generar exe de los ejemplos de prueba que vienen en fw versión 11, pero cuando ejecuto la aplicación llega hasta el llamado de la clase y ahi se cierra sin mandar ningún tipo de mensaje, no se si me falta agregar algo mas a mi aplicación dentro del exe o bien algún archivo externo, he probado varios de los ejemplos y en todos me pasa lo mismo, pero en el foro no encuentro que alguien comente algo parecido.
de antemano agradezco su apoyo.

Re: ayuda con tactivex

Posted: Thu Aug 29, 2013 6:29 pm
by acuellar
Guillermo
Coloca algún ejemplo y el error para que te podamos ayudar

Saludos,

Adhemar

Re: ayuda con tactivex

Posted: Thu Aug 29, 2013 6:57 pm
by GuillermoMtz
Te anexo el ejemplo pero no me manda ningun error solo se cierra la aplicaicon.
function Verejemplo()
local oWnd, oActiveX
local cEvents := ""

DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"

oActiveX = TActiveX():New( oWnd, "Shell.Explorer" )

oWnd:oClient = oActiveX // To fill the entire window surface
oActiveX:Navigate( "http://www.google.com" )

oActiveX:bOnEvent = { | event, aParams, pParams | cEvents += EventInfo( event, aParams, pParams, oActiveX ) }

ACTIVATE WINDOW oWnd ;
VALID ( MemoEdit( cEvents ), .t. )

return nil

function EventInfo( event, aParams, pParams, oActiveX )

local cMsg := "Event: " + cValToChar( event ) + CRLF
local n

cMsg += "Params: " + CRLF

for n = 1 to Len( aParams )
cMsg += cValToChar( aParams[ n ] ) + CRLF
next

if event == "BeforeNavigate2"
// MsgInfo( aParams[ 2 ] )
// SetEventParam( pParams, 7, .t. ) // Comment this to allow navigation
endif

return cMsg + CRLF

Re: ayuda con tactivex

Posted: Thu Aug 29, 2013 7:24 pm
by acuellar
Cambia el MemoEdit por ( MsgAlert( cEvents ), .t. )

Saludos,

Adhemar

Re: ayuda con tactivex

Posted: Thu Aug 29, 2013 10:27 pm
by GuillermoMtz
Gracias Adhemar por tu apoyo, pero la aplicacion se cierra al crear el objeto del activex puse unas banderas a la tactivex para monitore y solo llega al pasa 2
te anexo el codigo.


METHOD New( oWnd, cProgID, nRow, nCol, nWidth, nHeight ) CLASS TActiveX

DEFAULT oWnd := GetWndDefault(), nRow := 0, nCol := 0, nWidth := 200,;
nHeight := 200

::nTop = nRow
::nLeft = nCol
::nBottom = nRow + nHeight
::nRight = nCol + nWidth
::oWnd = oWnd
::nId = ::GetNewId()
::nStyle = nOR( WS_CHILD, WS_VISIBLE, WS_TABSTOP )
::cProgID = cProgID
::cString = ActXString( cProgID )

::Register()
? 'paso1'
if ! Empty( oWnd:hWnd )
::Create()
oWnd:AddControl( Self )
? 'paso2'
::hActiveX = CreateActiveX( ::hWnd, cProgID, Self )
? 'paso3'
::oOleAuto = TOleAuto():New( ActXPdisp( ::hActiveX ) )

Saludos!