[Lazarus-es] como usar una dll activex
Paola Bruccoleri
pbruccoleri en adinet.com.uy
Sab Jun 14 22:54:45 CEST 2014
El 13/06/2014 21:20, Paola Bruccoleri escribió:
> El 13/06/2014 19:13, Paola Bruccoleri escribió:
>> El 13/06/2014 15:33, José Mejuto escribió:
>>> El 13/06/2014 19:59, Paola Bruccoleri escribió:
>>>
>>>
>>>> vCfe:=WIN_OLECREATEOBJECT("eFacturaCOM.cfe")
>>>> IF !HB_ISOBJECT(vCfe)
>>>> ALERT('Falta instalar control OCX o problemas al crear
>>>> objeto OLE
>>>
>>>> CABECERA'+CRLF+'Consulte a Sistemas o a'+CRLF+'PAOLA
>>>> BRUCCOLERI','Error')
>>>> RETURN
>>>> ENDIF
>>>>
>>>> ************* DATOS CABECERA FACTURA *******************************
>>>> vCfe:AnoEmision := "2014"
>>>> vCfe:MesEmision := "03"
>>>> .......................etc
>>>>
>>>>
>>>
>>> Hola,
>>>
>>> Pues en teoría es más o menos lo mismo:
>>>
>>> var
>>> vCfe: _CFE;
>>> begin
>>> vCfe:=_CFE.create;
>>> vCfe.AnoEmision:='2014';
>>> ...
>>> ...
>>> end;
>>>
>>> Eso si, tienes que tener al menos esas dos DLL registradas en tu
>>> sistema, el VBA6.dll y el MSXML2.DLL
>>>
>>> Calculo que el MSXML2_6_0_TLB.pas no lo necesitas en tu proyecto
>>> para nada.
>>>
>> Hola José, resto del grupo..
>>
>> ya conseguí la vba6.dll. Lo que hice para obtener la VBA_6_0_TLB fue
>> hacer lo mismo q con la otra: import type library. No la registré ni
>> nada; solo dejé la dll en la misma carpeta del proyecto, al igual que
>> la otra dll activex.
>> En fin, aparentemente ya tengo todos los .pas q necesito.
>> Todavía no me voy a meter en hacer ningún paquete como sugiere Martín
>> xq primero quiero ver que todo funcione bien.
>>
>> Siguiendo con la sintaxis que me sugirió José, y que tb algo encontré
>> en este foro:
>> http://forum.lazarus.freepascal.org/index.php?topic=21113.0
>>
>> logré armar casi lo mismo que tengo en harbour, PEROOOO siempre hay
>> un PEROOOOO..a la hora de compilar me salta este error:
>>
>> efacturacom_1_0_tlb.pas(90,38) Fatal: Syntax error, "identifier"
>> expected but ":" found
>>
>> y es acá:
>> *procedure Set_ivaTasaBasica(const :Currency); safecall;*
>>
>> pero ese código, si es que está mal, se generó solo! (es la librería
>> de importación o como se llame)
>>
>> estoy usando para esto el lazarus 1.2.2 recién bajadito.... (en win8 64b)
>>
>> help!
>> millones de gracias!!
>> byeeeeeeeeeeeee
> sigoooooo
> para probar, rellené a mano cada variable q faltaba antes del tipo..
> *procedure Set_ivaTasaBasica(const ivatasabasica:Currency); safecall;*
>
> pero tu sintaxis me dió error acá en rojo:
> var
> vCfe: _CFE;
> itemFact1, itemFact2: _ItemFactura;
> begin
> vCfe=_CFE.Create;
>
> unit1.pas(38,13) Error: identifier idents no member "Create"
>
> y lo modifiqué por:
> vCfe:= CoCFE.Create;
>
> aparenta quedar pronto...
> igual tengo 3 errores que no logro darme cuenta:
>
> unit1.pas(117,54) Error: Variable identifier expected
> efacturacom_1_0_tlb.pas(705,13) Hint: Found declaration:
> _Sobre.SaveXMLToFile(var WideString):OleVariant; SafeCall;
> unit1.pas(118,56) Error: Variable identifier expected
> efacturacom_1_0_tlb.pas(187,13) Hint: Found declaration:
> _CFE.SaveXMLToFile(var WideString):OleVariant; SafeCall;
> unit1.pas(121,51) Error: Variable identifier expected
> efacturacom_1_0_tlb.pas(811,13) Hint: Found declaration:
> _Respuesta.savePDF(var WideString):WordBool; SafeCall;
> unit1.pas(130) Fatal: There were 3 errors compiling module, stopping
>
>
> donde:
> vSobre.SaveXMLToFile('f:\lz\felectronica\sobre.xml'); ___ERROR 1_
> vSobre.cfe.SaveXMLToFile('f:\lz\felectronica\cfe.xml'); ___ERROR 2_
> if vSobre.callWebService then begin
> resp:= vSobre.Response;
> resp.savePDF('f:\lz\felectronica\compPdf.pdf');_ ERROR 3_
> end else begin
> ShowMessage('ERROR AL LLAMAR AL WEB SERVICE...')
> end
>
> y en el pas que se generó con la DLL
>
> function SaveXMLToFile(*var*
> strPath:WideString):OleVariant;safecall; (está en la interface de _Sobre)
> function SaveXMLToFile(var strPath:WideString):OleVariant;safecall;
> (está en la interface de _CFE)
> function savePDF(var strPath:WideString):WordBool;safecall; (está
> en la interface de _Respuesta)
>
>
le saqué el *var* a cada función.. y despejé esos errores
ahora, como estaba haciedo:
var
vCfe: _CFE;
begin
vCfe=_CFE.Create;
da error al compilar:
unit1.pas(45,13) Error: identifier idents no member "Create"
si la cambio x esto:
vCfe:=CoCFE.Create;
se crea el exe, pero da un SIGSEGV acá:
vCfe.AnoEmision :='2014';
evidentemente estoy interpretando mal todo esto....
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20140614/b8a3df57/attachment-0002.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: ejibbddh.png
Type: image/png
Size: 5683 bytes
Desc: no disponible
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20140614/b8a3df57/attachment-0002.png>
More information about the Lazarus-es
mailing list