Imagenes en xBrowse (jpg, bmp, png, etc)

Imagenes en xBrowse (jpg, bmp, png, etc)

Postby Daniel Garcia-Gil » Wed Mar 25, 2009 4:04 am

Saludos...

Volviendo con los aportes y conocer la opnion de los usuarios, les presento otra adicion a la xbrowse para poder visualizar imagenes de cualquier formato dentro de las celdas...

Aparte de la diferencia que ya no solo se necesitan BMP o recursos, estas imagenes no hacen falta precargarlas en el array por columnas, es decir, para presentarlas no se necesitan los metodos
METHOD AddResource( cRes )
METHOD AddBmpFile( cFile )
METHOD AddBmpHandle( hBmp )

el prototipo mostrado tiene una nueva DATA bStrImage, es un codeblock que devuelve el nombre de la imagen, sea recurso o archivo, la seleccion es automatica, y un nuevo tipo en la data nEditType llamado TYPE_IMAGE con un valor de -1.
se pueden selecionar la imagen de 2 formas por medio de la nueva data ( bStrImage ) o simplemente colocando el nombre de la imagen en la celda, esta celda no es editable y tampoco se vera el texto de la misma, solo mostrara la imagen...
aqui les dejo un ejemplo (ejecutable) y el codigo del mismo para que detallen como seria su implementacion

en el ejemplo la columna 1 usa la imagen, puede hacer click derecho para desplegar un popmenu con algunas opciones, la columna 2 elije la imagen por medio cGetFile()

http://www.sitasoft.com/fivewin/test/xbimg.rar

Code: Select all  Expand view
#include "FiveWin.ch"
#include "xbrowse.ch"

REQUEST DBFCDX

static hLib

function main()

   local oDlg
   local oBrw
   local nI
   local hBitMap1, hBitMap2, hBitMap3, hBitMap4
   local aArray:={}
   
   for nI = 1 to 5
      aadd( aArray, { "", space( 255 ) } )
   next


   DEFINE DIALOG oDlg title "TEST" size 800,600

   @ 0,0 XBROWSE oBrw OF oDlg columns {1,2};
      Array aArray sizes {100,300} LINES CELL autocols

   oBrw:nMarqueeStyle              := 1
   oBrw:nRowHeight                 := 33
   oBrw:lAdjustLastCol             := .t.
       
   oBrw:aCols[ 1 ]:nEditType       := TYPE_IMAGE
   oBrw:aCols[ 1 ]:lBmpStretch     := .t.
   oBrw:aCols[ 1 ]:lBmpTransparent := .t.
   oBrw:aCols[ 1 ]:bStrImage      := {|oCol, oBrw| oBrw:aRow[ 2 ] }
   oBrw:aCols[ 1 ]:nDataBmpAlign   := AL_CENTER
   oBrw:aCols[ 1 ]:bPopUp          := { |o| ColMenu( o ) }
   
   oBrw:aCols[ 2 ]:nEditType       := EDIT_BUTTON
   oBrw:aCols[ 2 ]:bEditBlock      := {|nRow, nCol, oCol| oCol:Value := cGetFile( "*.*", "Select a file" )  }
   
   oDlg:oClient                    := oBrw
   
   oBrw:CreateFromCode()

   ACTIVATE DIALOG oDlg CENTERED ON INIT oDlg:Resize()


return nil

static function ColMenu( ocol )

   local oPop

   MENU oPop POPUP 2007
      MENUITEM "Left Align" WHEN oCol:nDataBmpAlign > 0 ;
         ACTION ( oCol:nDataBmpAlign:= AL_LEFT, oCol:oBrw:Refresh() )
      MENUITEM "Center Align" WHEN oCol:nDataBmpAlign != AL_CENTER ;
         ACTION ( oCol:nDataBmpAlign := AL_CENTER, oCol:oBrw:Refresh() )
      MENUITEM "Right Align" WHEN oCol:nDataBmpAlign != AL_RIGHT ;
         ACTION ( oCol:nDataBmpAlign := AL_RIGHT , oCol:oBrw:Refresh() )

      MenuAddItem( "Transparent", ,oCol:lBmpTransparent, .t., ;
         { |oItem| oCol:lBmpTransparent := !oCol:lBmpTransparent, ;
            oItem:SetCheck( oCol:lBmpTransparent ), ;
            oCol:oBrw:refresh() } )

      MenuAddItem( "Stretch", ,oCol:lBmpStretch, .t., ;
         { |oItem| oCol:lBmpStretch := !oCol:lBmpStretch, ;
            oItem:SetCheck( oCol:lBmpStretch ), ;
            oCol:oBrw:refresh() } )



   ENDMENU

return oPop

//----------------------------------------------------------------------------//
 
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Imagenes en xBrowse (jpg, bmp, png, etc)

Postby jcaro » Mon Mar 30, 2009 5:34 pm

Hola Daniel:

Gracias por tu aporte, lo encontre fantastico !!. Lo de los recursos va genial !!

Si es posible, podrias poner los cambios que hay que agregarle a la clase del xBrowse , para poder implementar esta mejora.

Gracias por continuos aportes o mejoras.

Saludos,
Juan
==> Pasando a FWH16.04 + Harbour32 + BCC70 + PellesC
=> Abandonando FWH 13.7 + xHarbour + BCC582
http://www.mitaller.cl
jcaro
 
Posts: 270
Joined: Fri Nov 11, 2005 7:39 pm

Re: Imagenes en xBrowse (jpg, bmp, png, etc)

Postby Daniel Garcia-Gil » Mon Mar 30, 2009 6:16 pm

Gracias por tu respuesta..

Los cambios no los publique debido a la cantidad que fueron, la idea era encontrar usuarios interesados en el cambio para incluirlos en el build de marzo, por los pocos comentarios en el foro de ingles se tomo la desicion de incluirlos, la idea cuando propongo cambios es que los usurios aporten la mayor cantidad posible de ideas para mejorar el producto, siempre estoy atento a las necesidades e inquietudes, pero no siempre manejo el criterio popular, me he esforzado siempre a tratar de incluir la participacion de los usuarios...
si mis cambios le sirven o usa, aunque sea una persona para mi es suficiente...

Gracias nuevamente por tus comentarios...
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Imagenes en xBrowse (jpg, bmp, png, etc)

Postby jfafive » Mon May 25, 2009 1:09 pm

Hola a todos,

He estado mirando el hilo que traba sobre imagenes con XBrowse.
Lo cierto es que ya conseguí poner imagenes en un XBrowse cuando trabajaba con array.
Del mismo modo que ustedes lo tiene en el ejemplo de Daniel.

El problema ha surgido, cuando intento hacer lo mismo con un XBrowse que apunta a un RecordSet.
No consigo forma de que aparezca la imagen. En lugar de ello, solo aparece el valor del campo que puede ser .T. o .F.

Aquí les pego el código por si alguno de ustedes le ha pasado lo mismo.

Gracias.

Code: Select all  Expand view

....

REDEFINE XBROWSE oXbr_Usr ;
   RECSET oRs ID ID_USR_XBRW OF oDlg AUTOSORT
....

ACTIVATE DIALOG oDlg NOWAIT ;
   ON INIT ( oXbr_Usr:aCols[1]:AddResource( "yes" ),;
                 oXbr_Usr:aCols[1]:AddResource( "no" ),;
                 oXbr_Usr:aCols[1]:bBmpData := { || 1 } )

 
Javier,
FWH 8.04 2008
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 8 guests