[Lazarus-es] como usar una dll activex

Paola Bruccoleri pbruccoleri en adinet.com.uy
Sab Jun 14 02:20:34 CEST 2014


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)


gracias nuevamente!
byeeeeeeeeee
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20140613/37631f9e/attachment-0002.html>


More information about the Lazarus-es mailing list