OLE class has automatic destructor.
::object:=nil
oFRLbx:nStyle := 1
oFRLbx:nLineStyle := 10
*oFRLbx:nHeaderStyle := 2
*oFRLbx:nHeaderHeight := 20
*oFRLbx:nLineHeight := 15
oFRLbx:lMChange := .f.
*oFRLbx:lOnlyBorder := .f.
*oFRLbx:lAdjLastCol := .f.
*oFRLbx:Set3DStyle()
// -> Cabecalho
oFRLbx:nClrBackHead := nRGB(194,218,242)
// -> Linha divisora
*oFRLbx:nClrLine := nRGB(194,218,242)
// -> Cores das linhas Texto e Fundo
// -> Cor do cursor com foco
oFRLbx:nClrForeFocus := CLR_BLACK
oFRLbx:nClrBackFocus := nRGB(194,218,242)
// -> Cor do cursor sem foco
*oFRLbx:nClrNFFore := CLR_BLACK
*oFRLbx:nClrNFBack := nRGB(194,218,242)
oFRLbx:SetFont( oFntLBX )
METHOD Writer( cFile, lVisible ) CLASS TOpenOffice
LOCAL cUrl, oDoc, oTxt, aArg := {}
::New()
IF !::lOpen; RETURN NIL; ENDIF
DEFAULT lVisible := .T.
IF cFile == NIL
cUrl := "private:factory/swriter"
ELSE
cUrl := "file:///" + cFile
ENDIF
IF !lVisible
AAdd( aArg, ::GetPropertyValue( "Hidden", .T. ) ) //Le asigna la propiedad de que este escondido
//(Ojo no puedes volverlo a mostrar) para
//ejecutarse mas rapido. Ejemplo: realizar un
ENDIF
oDoc := ::oDesktop:LoadComponentFromUrl( cUrl, "_blank", 0, aArg )
RETURN oDoc
METHOD New() CLASS TOpenOffice
// Par usar cualquier aplicativo de OpenOffice lo primero que se tiene que hacer es cargar el ServiceManager
// una vez se tiene capturado se debe instanciar el objeto Destop y finlamente el Despachador
IF ::oDesktop != NIL; RETURN SELF; ENDIF
IF ::oService != NIL; RETURN SELF; ENDIF
::lOpen := .T.
TRY
::oService := TOleAuto():New( "com.sun.star.ServiceManager" )
CATCH
MsgStop( "No se puede iniciar el servicio manager" )
::lOpen := .F.
END
IF ::lOpen
::oDesktop := ::oService:CreateInstance( "com.sun.star.frame.Desktop" )
::oDisp := ::oService:CreateInstance( "com.sun.star.frame.DispatchHelper" )
ENDIF
RETURN SELF
METHOD Finaliza() CLASS TOpenOffice
::oDesktop:=nil
::oDoc:=nil
::oDisp:=nil
::oService:=nil
Return nil
Return to FiveWin for Harbour/xHarbour
Users browsing this forum: No registered users and 101 guests