Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Herramienta] Como usar el método "SaveToImageFile" de ActiveX (https://www.cobolforo.es/showthread.php?t=1789)

jotica 25 de agosto de 2024 19:03

Como usar el método "SaveToImageFile" de ActiveX
 
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

Código COBOL:
  1.      MOVE "Texto del codigo" TO "DataToEncode" OF QRCodeCtrl1

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

Cita:

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

Cita:

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
Código COBOL:
  1.                01  PARAME      PIC X(80)  VALUE "SaveToImageFile(100, 100, ""c:\qrcode.bmp"")".
  2.  
  3.                     Call "QRCodeCtrl1" USING PARAME

He tratado de muchas formas compilar el programa pero me saca el error
Código:

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:

Código COBOL:
  1.      INVOKE QRCodeCtrl1 "SaveToImageFile" USING 100, 100, "c:qrcode.bmp"

jotica 26 de agosto de 2024 15:41

1 Archivos Adjunto(s)
@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:

Cita:

Citación del post de jotica
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....R-en-Cobol-wow
También echa on ojo a este: https://www.cobolforo.es/showthread....hlight=qr-code


La franja horaria es GMT +2. Ahora son las 02:47.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.