PDA

Ver la Versión Completa : [Herramienta] Como usar el método "SaveToImageFile" de ActiveX


jotica
25 de agosto de 2024, 19:03
Un saludp a todos los miembros y visitantes al Foro
Estoy tratando de imprimir el código QR que genero en un control de la ActiveX de HomeBarcode
Esta ActiveX tiene la propiedad "DataToEncode" para cargar el contenido del codigo QR y funciona a la perfeccion

MOVE "Texto del codigo" TO "DataToEncode" OF QRCodeCtrl1

Esta ActiveX tiene el Método "SaveToImageFile" y de acuerdo al manual se debe usar asi:

Syntax
object.SaveToImageFile(cx, cy, sFileName, [lRes,] [dm])
Parameters
cx A double that defines the barcode picture width.
cy A double that defines the barcode picture height.
sFileName A string expression defining the file name.
lRes Optional (default 0). A long value that sets the picture resolution.
dm Optional (default qcPixels). This value defines the units that should be used to specify cx and cy. See remarks.
Return Value
No return value.

Alli mismo dan ejemplo de como usarla

Example '1.
'Save the image to a file of the JPEG format. The size of the image will be 100x100 pixels with the resolution of 96 dpi.
Call QRCodeCtrl1.SaveToImageFile(100, 100, "c:\qrcode.gif")

Yo la estoy usando asi
01 PARAME PIC X(80) VALUE "SaveToImageFile(100, 100, ""c:\qrcode.bmp"")".

Call "QRCodeCtrl1" USING PARAME

He tratado de muchas formas compilar el programa pero me saca el error
V-QRIMPR.obj : error LNK2001: unresolved external symbol _QRCODECTRL1

se que QRCODECTRL1 es el nombre del control que tengo definida en el form
Por ello no entiendo cono debo usar el método y como se encadenar el control con la ActiveX

De antemano muchas gracias por su ayuda

Kuk
26 de agosto de 2024, 11:09
@jotica, puesto que es una OCX que tienes registrada, no debes pasar por CALL sino por Invoke. Intenta así a ver:


INVOKE QRCodeCtrl1 "SaveToImageFile" USING 100, 100, "c:qrcode.bmp"

jotica
26 de agosto de 2024, 15:41
@Kuk Muchas gracias por su ayuda y como siempre por su diligencia por ayudarnos

esa linea la he implementado pero al compilar me da el siguiente error

V-QRIMPR COM-TIPOQR-Return(25) : F5DC410302I-E Property or method definition for QRCODECTRL1 is not found.
STATISTICS: HIGHEST SEVERITY CODE=E

QRCODECTRL1 no es la OCX, es el control que defini en la form para contener el código QR
La OCX es QRCodeAX.ocx que la he ubicado en System32 de Windows pero al registrarla me genera este error

https://www.cobolforo.es/images/attach/jpg.gif

En Sistem32 existe qrcodelib.dll que, según creo, se genero al registrar la dll qrcodeAX.dll

Kuk
27 de agosto de 2024, 11:18
@jotica, no es lo mismo un control ActiveX (normalemente OCX aunque puede ser DLL también) ue una DLL normal.

Lo primero vamos a aclarar con qué trabajamos, con OCX o con DLL que NO es ActiveX.

Has dicho lo siguiente:


Esta ActiveX tiene la propiedad "DataToEncode" para cargar el contenido del codigo QR y funciona a la perfeccion


Con lo cual, si esto te funciona, esto es que has conseguido registrar la OCX y cargarla en tu Form.

Pero según el error que te sale, es como si la OCX funcionase parcialmente. Seguramente necesita ser instalada con su instalador (porque instala otra librerías etc.) y no simplemente ser registrada.

Has mirado este hilo? https://www.cobolforo.es/showthread.php?1635-Generar-e-imprimir-C%25F3digo-QR-en-Cobol-wow
También echa on ojo a este: https://www.cobolforo.es/showthread.php?109-Imprimir-c%F3digo-QR&highlight=qr-code