PDA

Ver la Versión Completa : [Sintaxis] Traducir código de VB a Power


Xavier
19 de septiembre de 2016, 18:50
Hola a todos. Alguien sabría "traducir" este código de VB a powerCobol?
Es un documento word que contiene un objeto picture que se llama "Foto" y quiero cargar la imagen desde una variable que contiene la ruta completa y nombre de la imagen


Sub Fotografia()
ActiveDocument.Foto.Picture = LoadPicture(Ruta-Fotografia)
ActiveDocument.Foto.PictureSizeMode = 1
ActiveDocument.Foto.BorderStyle = 0
ActiveDocument.Foto.BackColor = &H80000005
End Sub


Gracias a todos

Rapinto
20 de septiembre de 2016, 00:09
Xavier,

É fácil de converter.
O único problema, é o "LoadPicture" que não funciona em PowerCobol.

O "LoadPicture" faz parte do Run-Time do VB6. E não há equivalente em Power.

Por isso, nunca iria funcionar bem.

Rui

Kuk
20 de septiembre de 2016, 00:32
Rapinto, no se puede buscar la DLL donde reside dicha función "LoadPicture" y hacer GetProcAdress?

Dasije
20 de septiembre de 2016, 00:42
No existe este tipo de objeto, como tal no:


Cargar desde el archivo físico sí es posible.
Traer la imagen desde el archivo físico en memoria para llevarlo a un control como si fuera un objeto, eso no es posible.


Son dos situaciones diferentes.

Rapinto
20 de septiembre de 2016, 01:04
Num projeto que fiz, consegui passar imagens para excel utilizando:


INVOKE WORKSHEET "GET-SHAPES" RETURNING SHAPES
INVOKE SHAPES "ADDPICTURE" USING VAL LINKTO SAVEWITH WSLEFT WSTOP WSWIDTH WSHEIGHT


(Em VAL vai o path e nome do ficheiro)

Por "LoadPicture" nunca consegui.

Kuk, nunca tentei sequer essa opção, pois pareceu-me bastante complexa de executar.

Un saludo,
Rui Pinto

Kuk
20 de septiembre de 2016, 09:52
Dasije, por qué no es posible? A qué te refieres como un "objeto"? Objeto COM?

Se puede cargar una imagen vía WinAPI: LoadImage function (Windows) (https://msdn.microsoft.com/en-us/library/windows/desktop/ms648045(v=vs.85).aspx)

Rapinto, a no se rque no me esté enterando de algo, básicamente sería llamar a "LoadLibrary" y luego a "GetProcAdress" para encontrar "LoadPicture" en la DLL. Luego llamar "LoadPicture" por PROCEDURE-POINTER pasando BY REFERENCE la ruta hacía la imagen.

Dasije
20 de septiembre de 2016, 11:27
Kuk, A eso me refería, desde un objeto-COM, por ejemplo el tratamiento de imagenes desde un dispostivo de captura, sin guardar antes la imagen en un archivo desde una DLL o Activex.

Kuk
21 de septiembre de 2016, 08:39
Rapinto, puedes colgar la DLL que contiene la función "LoadImage" ?

Rapinto
21 de septiembre de 2016, 23:11
Kuk,

A rotina "loadpicture" faz parte do próprio VB ( msvbvm60.dll)

É aí que aparece o "LoadPicture" e não no VB Run-Time

Saludos,
Rui Pinto

Kuk
21 de septiembre de 2016, 23:38
Rapinto, en esa DLL no hay ninguna funcióin que se llame "LoadPicture"... :(

Rapinto
23 de septiembre de 2016, 00:03
Kuk,

No Visual Basic aparece o "loadPicture".
Mas enganei-me. Afinal o que é chamado é no STDOLE2.TLB.
Vê a imagem.
Un saludo
Rui