Página 1 de 1
Tema Ayuda TBarCode()
Publicado: Mié Feb 07, 2018 12:13 am
por XeviCOMAS
La ayuda que hace referencia a la Clase TBarCode, ...
******************************
TBarcode:GetImage
Recupera el código de barras como un objeto TImage. Es importante establecer la propiedad nBkGndMode en su objeto contenedor en modo blSTRETCH para que el pintado se producza correctamente.
Tipo
Estándar
Parámetros
<nFlags>
Modificador para calcular el tipo de de código de barras.
Revisar hbzebra.ch
Valor Retorno
<TImage>
*******************************
Este método no existe, en su lugar (segun el Sample de Xailer), se utiliza GetPicture()
Re: Tema Ayuda TBarCode()
Publicado: Mié Feb 07, 2018 10:10 am
por ignacio
Buenos días,
Corregido. Gracias.
Un saludo
Re: Tema Ayuda TBarCode()
Publicado: Mié Feb 07, 2018 10:34 am
por XeviCOMAS
Y... puestos.
Estoy intentando guardar el codigo de barras en una imagen... ¿Como lo hago???
En el Sample, intento esto, pero no me surge efecto.
creando una TImage, la imagen del codigo de barras es de 1 píxel de alto, solamente.
Guardandola directamente, pues eso también...
Código: Seleccionar todo
WITH OBJECT ::oBarCode1
:nType := ::aTypes[ nItem, 1 ]
:cText := ::aTypes[ nItem, 3 ]
oPic := :GetPicture()
IF oPic != NIL
::oBevel1:oBkgnd := oPic
::oImage1:oPicture := oPic
oPic:Save( "D:\Prova.Jpg", 1, 100 ) )
ELSE
::oBevel1:oBkgnd := nil
MsgInfo( :GetErrorDescription() )
ENDIF
END WITH
Lo que pretendo es guardar la imagen que se visualiza en el TBevel... ¿Como???
Gracias.
Re: Tema Ayuda TBarCode()
Publicado: Mié Feb 07, 2018 1:35 pm
por ignacio
Buenos días,
El código no es del todo correcto. Tendría que ser asi:
Código: Seleccionar todo
WITH OBJECT ::oBarCode1
oPic := :GetPicture()
oPic:Save( "D:\Prova.Jpg", 1, 100 ) )
END WITH
Pero el bitmap que se graba tiene tan sólo un bit de alto, para corregirlo y que sea exactamente igual a lo que se ve (suponiendo que se está mostrando en ::oBevel1), se podría hacer asi:
Código: Seleccionar todo
LOCAL hBitmap
LOCAL aRect
LOCAL oPict
aRect := GetClientRect( ::oBevel1:Handle )
hBitmap := XA_CaptureBitmap( ::oBevel1:Handle, aRect )
oPict := TPicture():CreateIndirect( 1, hBitmap )
oPict:Save( "c:\temp\test.jpg", 1 )
oPict:End()
Re: Tema Ayuda TBarCode()
Publicado: Mié Feb 07, 2018 2:35 pm
por XeviCOMAS
PERFECTO!!!
Gracias, Ignacio.
Viéndolo lo dejo así...
Código: Seleccionar todo
METHOD Button1Click( oSender ) CLASS TForm1
LOCAL oPic
LOCAL nItem
nItem := ::oListbox1:nIndex
WITH OBJECT ::oBarCode1
:nType := ::aTypes[ nItem, 1 ]
:cText := ::aTypes[ nItem, 3 ]
oPic := :GetPicture()
IF oPic != NIL
::oBevel1:oBkgnd := oPic
ProcessMessages()
WITH OBJECT TPicture():CreateIndirect( 1, XA_CaptureBitmap( ::oBevel1:Handle, GetClientRect( ::oBevel1:Handle ) ) )
:Save( "D:\Prova.Jpg", 1, 100 )
:End()
END
ELSE
::oBevel1:oBkgnd := nil
MsgInfo( :GetErrorDescription() )
ENDIF
END WITH
RETURN Nil
Además, aprovecho para utilizar XA_CaptureBitmap() en mis aplicaciones en lugar de la clase TCaptureBitmap() de J.Lalín y así ir eliminando productos de terceros que se depende de ellos para futuras actualizaciones de Xailer.