Estoy haciendo pruebas con OLE y me encuentro el siguiente problema:
Excel: he conseguido incrustar en un Dialog de un Folder que es lo que necesito
He seguido las instrucciones que aparecen en el siguiente LINK
http://forums.fivetechsupport.com/viewtopic.php?f=6&t=21028&p=111658&hilit=incrustar+ole#p111658
aunque tengo problemas cuando dejo el foco y vuelvo al dialogo que contiene el Folder, ya que tengo que pinchar en la barra de edicion para que pueda moverme por la hoja. Permite pinchar con el mouse pero no permite editar.
Tambien estoy estudiando cómo puedo hacer para que salga la barra de herramientas, ya que solo sale la barra de edicion.
- Code: Select all Expand view
oFldUtiles:SetOption( nOpt )
oBook := oExcel:Workbooks:Add()
oHoja := oExcel:ActiveSheet()
Sysrefresh()
// No hace falta ya que se maximiza abajo
//oExcel:Left := 0
//oExcel:Top := 0
//oExcel:Height := 320
//oExcel:Width := 590
SetWindowLong(oExcel:hWnd,-16,"L") //Es la función API SetWindowLongA, en este caso quita la barra de titulo de excel
//SetForeWin(oExcel:hWnd) //Es la funcion API SetForegroundWindow tiene que ir antes de la llamada a setparent()
//SetParent(oExcel:hWnd,oWnd:hWnd) //Incrusta Excel en mi ventana
//oWnd:SetText( cverotc + ' - Libro abierto: '+clibro )
oExcel:ActiveWorkBook:Protect('',.f.,.f.) //Para poder manupilar el estado de la venta del libro
oExcel:WindowState := -4137 //Se quitan los botones de maximizar, minimizar y cerrar
oExcel:Windows(1):WindowState := -4137 //Se maximiza Excel en mi ventana // -4140 Minimiza Excel
oExcel:ScreenUpdating := .T.
oExcel:Visible := .T. //Hace Excel visible
oExcel:DisplayAlerts := .F.
//oFldUtiles:aDialogs[ nOpt ]:bGotFocus := { || oFldUtiles:aDialogs[ nOpt ]:Refresh(), SysRefresh() }
oFldUtiles:aDialogs[ nOpt ]:bGotFocus := { || oFldUtiles:Refresh() }
SetParent( oExcel:hWnd , oFldUtiles:aDialogs[ nOpt ]:hWnd )
Word:
He mirado los ejemplos que hay en FWH de Word.prg y Wordtable.prg, pero están hechos sobre una ventana y no sobre un dialog de un Folder.
Como no puedo incrustar la ventana del objeto, Word se ejecuta fuera de la Aplicacion
No puedo incrustar la ventana en el dialogo del FolderEx, la instruccion que uso en Excel, en Word me da error
Por que en Excel funciona y en Word no?
- Code: Select all Expand view
oFldUtiles:SetOption( nOpt )
oDoc := oWord:Documents:Add()
SysRefresh()
oWord:WindowState := -4137 //Se quitan los botones de maximizar, minimizar y cerrar
oWord:Visible := .T. //Hace Word visible
SetParent( oWord:hWnd, oFldUtiles:aDialogs[ nOpt ]:hWnd )
// Esta instruccion me da error, me dice que hWnd no existe como propiedad de oWord
Como puedo solucionarlo?
Gracias