FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Rotar Imagen
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 04:22 PM

Si está

Comenté esta línea //ohBmp:End()
y funciona.

Gracias.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 04:30 PM

Manuel

Hay diferencia entre usar BITMAP o IMAGE
Ya probé y con ambos funciona.

Gracias.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 04:35 PM
acuellar wrote:Manuel

Hay diferencia entre usar BITMAP o IMAGE
Ya probé y con ambos funciona.

Gracias.

Saludos,

Adhemar

En principio no , lo usamos como control contenedor una vez tienes un hBmp valido , no creo que exista diferencia entre los controles.
Me intriga lo del hbmp:end() , yo lo tengo funcionando bien sin comentarlo , lo voy a revisar a ver que es lo que pasa ...
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 05:07 PM

Muchas gracias Manuel

Con ésto mis sistemas están casi portable al 100% solo falta excluir la libmysql.dll de mysql
Por ahora la adjunto con Enigma virtual box y queda 100% portable el ejecutable.

Gracias una vez más.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 05:21 PM
Mira a ver si funciona bien cambiando la función por esta mejorada:
Code (fw): Select all Collapse
Function oBmpLoadFromStr( oBmp, cStr, nWidth, nHeight )
local hBmpOld := oBmp:hBitmap
local hPalOld := oBmp:hPalette
local ohBmp 
local hBmp := 0

 if ! Empty( cStr )
   ohBmp := GDIBmp():new()   
   ohBmp:LoadFromStr( cStr ) 
   if ( ! Empty( nWidth ) .or. ! Empty( nHeight ) )
        ohBmp:Resize( nWidth, nHeight )
    endif
    hBmp := ohBmp:GetGDIHbitmap()   
    ohBmp:End()   
 endif 
 oBmp:hBitmap  := hBmp      
 oBmp:hPalette := 0
 
  if ! Empty( hBmpOld )
     PalBmpFree( hBmpOld, hPalOld )
 endif
  
RETURN nil
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 05:25 PM

Da el mismo error

Error description: Error BASE/1004 Message not found: GDIBMP:END
Args:
[ 1] = O GDIBMP

Quizas tenga algo que ver con los compiladores tengo Harbour 3.2.0dev (r1412151448) y BCC68

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 05:34 PM
No creo que sea eso , pero es importante esa linea ya que es la que libera los recurso gdi+ de memoria . ...

si pones un par de msfinfo () ?

Code (fw): Select all Collapse
  ohBmp := GDIBmp():new()   
  msginfo(ohbmp:hbmp) 
   ohBmp:LoadFromStr( cStr ) 
   msginfo(ohbmp:hbmp) 
   if ( ! Empty( nWidth ) .or. ! Empty( nHeight ) )
        ohBmp:Resize( nWidth, nHeight )
    endif
    hBmp := ohBmp:GetGDIHbitmap()   
   msginfo(hbmp)
    msginfo(ohbmp:hbmp) 
    ohBmp:End()
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 05:45 PM

Muestra cantidades

Ej:
855972370 varia, a veces negativo
42706344 siempre el mismo

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 05:46 PM

mejor aun ...cambia el

ohbmp:end()

por

GdiPlusImageDispose(ohbmp:hBmp )

Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 05:52 PM

Compila bien

Al mostrar sale el programa a dejado de funcionar
y se cuelga.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 05:58 PM

Es muy raro lo que esta pasando , intenta matar un objeto que no existe ....
si lo colocamos así ? se cuelga ?
if ! Empty( ohbmp:hbmp )
GdiPlusImageDispose(ohbmp:hBmp )
endif

Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 06:05 PM

Si da el mismo error, ya que no es vacio.

Al compilar el gdiplus.ccp me da un error de advertencia.
Warning W8022 D:\SISTEMAS\COMPILER\BCC68\include\windows\GdiplusHeaders.h 636: 'Bitmap::Clone(const Rect &,int)' hides virtual function 'Image::Clone()'

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 06:14 PM

pues no cazo el problema , aquí me funciona bien,puede que sea porque mi version de tgdiplus no es la misma . la verdad que no lo entiendo , si tiene valor ,tendría que destruirla sin problemas.
de momento comenta la linea y listo . yo uso bcc582 , por lo que alguna definía también puede estar en eso .
LO dejo .
Saludos.

Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Rotar Imagen
Posted: Fri May 08, 2015 06:46 PM

Manuel

Pásame tu correo para que te envíe un link de descarga de BCC68

Saludos,

Adhemar

Saludos,



Adhemar C.

Continue the discussion