FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Desaparecen Bitmaps en columnas XBROWSE(SOLUCIONADO)
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Desaparecen Bitmaps en columnas XBROWSE(SOLUCIONADO)
Posted: Sat Jan 04, 2020 04:50 PM
Hola foro:

Coloco bitmaps en las columnas del XBROWSE y funciona muy bien la primera vez que abro la ventaja hija
en donde esta el XBROWSE. Lo hago de la siguiente manera
Code (fw): Select all Collapse
   :aCols[1]:AddResource( aDbfBmps )
      :aCols[1]:bBmpData := {|| IIF( Emp->Cerrada, 4, 3 ) }
      :aCols[2]:AddResource( aDbfBmps )
      :aCols[2]:bBmpData := {|| IIF( Emp->Activo, 1, 2 ) }


Pero, sorprendentemente la segunda vez y sucesivas que muestro el XBROWSE o sea cierro la ventaja hija
y la vuelvo a mostrar, salen las 2 columnas en blanco.
Antes usando el LISTBOX no ocurria ese comportamiento.

Espero vuestras ayudas, sugerencias.

Saludos

Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Desaparecen Bitmaps en columnas XBROWSE
Posted: Sat Jan 04, 2020 04:53 PM

jvtecheto:

Solo una idea, ¿será que al cerrar la ventana hija también destruyes el bitmap (oBmp:END()?, como dije
es solo una idea.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Desaparecen Bitmaps en columnas XBROWSE
Posted: Sat Jan 04, 2020 05:21 PM
Jose, cuando entres en la function que hace la ventana "hija" en la que te aparece el problema, pon al principio, antes de definir el xbrowse ( a modo de debug para ver el contenido de ese array )

Code (fw): Select all Collapse
xbrowse( aDbfBmps )
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Desaparecen Bitmaps en columnas XBROWSE
Posted: Mon Jan 06, 2020 10:49 AM
Gracias Armando y Cristobal por vuestro interes.

Pero no consigo resolverlo.
Por dar mas datos el codigo que os comento funciona perfecto en LISTBOX, pero como estoy migrando todas las rejillas a XBROWSE me aparece este problema.

mirad cargo los bitmaps en el modulo principal de la aplicacion con esto, aDbfBmps es una variable estatica.
Code (fw): Select all Collapse
aDbfBmps = { LoadBitmap( GetResources(), "CHECKED" ), ;  // Activo  1
                LoadBitmap( GetResources(), "UNCHECKED" ), ;   // Desactivado 2
                LoadBitmap( GetResources(), "CANDADO2" ), ;  // Abierto  3
                LoadBitmap( GetResources(), "CANDADO1" )  } // Cerrado  4


utilizo esta funcion para exportar a otros modulos.
Code (fw): Select all Collapse
FUNCTION GetDbfBmpsMain() 
RETURN aDbfBmps

y la llamo desde el modulo que creo la ventana hija con esto.
Code (fw): Select all Collapse
LOCAL aDbfBmps := GetDbfBmpsMain()

como comento todo esto con listbox perfecto.
Code (fw): Select all Collapse
@ 2, 0 LISTBOX Empw ;
         FIELDS aDbfBmps[ IF( Emp->Cerrada, 4, 3 ) ], aDbfBmps[ IF( Emp->Activo, 1, 2 ) ], Emp->codigo, Emp->Nombre, Emp->Ano ;
         ALIAS cAlias HEADERS "E", "A", "CODIGO", "NOMBRE", "AÑO TRABAJO" VALID ( SaveIniCol( Empw, cAlias ), .T. ) ;
         .... sigue codigo

Ahora con XBROWSE
Code (fw): Select all Collapse
@ 2, 0 XBROWSE Empw DATASOURCE cAlias ; 
          COLUMNS "", "", "codigo", "Nombre", "Ano" ;
          HEADERS "E", "A", "CODIGO", "NOMBRE", "AÑO TRABAJO" CELL LINES AUTOSORT;  
          OF oWndEmp UPDATE STYLE 2007 ;
          ... sigue codigo.
WITH OBJECT Empw 
      :aCols[1]:AddResource( aDbfBmps )
      :aCols[1]:bBmpData := {|| IIF( Emp->Cerrada, 4, 3 ) }
      :aCols[2]:AddResource( aDbfBmps )
      :aCols[2]:bBmpData := {|| IIF( Emp->Activo, 1, 2 ) }    
      :nColDividerStyle := LINESTYLE_LIGHTGRAY
      :nRowDividerStyle := LINESTYLE_LIGHTGRAY
      :nMarqueeStyle    := MARQSTYLE_HIGHLROW
      /* busqueda incremental integrada
      :lSeekBar    := .T.
      :bClrEdits  := { || { CLR_HRED, CLR_YELLOW } } */
      :bClrStd  := { || IIF( Eval( Empw:bKeyNo,,Empw) % 2 == 0, { CLR_BLACK, color1}, { CLR_BLACK, color2 } ) }
      :bKeyDown := { | nKey | IIf( nKey == 13, EditEmpres( Empw,.F. ), Empw:Refresh() ) }
      
      :CreateFromCode()
   END WITH


La primera vez que abro la ventaja hija perfecto.
La segunda vez las dos columnas salen en blanco, sin datos
Si cierro el programa y lo abro, igual comportamiento.
probando la solucion de Cristobal en ambos XBROWSE me aparece esta pantalla.



Si teneis otra manera de mostrar los bitmaps por favor decidmela.

Saludos

Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Desaparecen Bitmaps en columnas XBROWSE
Posted: Mon Jan 06, 2020 11:42 AM
Define las columnas algo asi

Code (fw): Select all Collapse
         WITH OBJECT :aCols[ 2 ]
            :lAllowSizing    := .F.
            :cDataType       := 'F'
            :nDataBmpAlign   := AL_CENTER
            //:lBmpTransparent := .T.
            :lBmpStretch     := .F.
            :AddBitmap( { "VPushRemote0", "VPushRemote1", "VPushRemote2" } )
            :bBmpData        := { || if( < condicion >, 2,  3  ) }    // Nº de imagen a devolver
         END
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Desaparecen Bitmaps en columnas XBROWSE(SOLUCIONADO)
Posted: Mon Jan 06, 2020 02:29 PM

Muchas gracias Cristobal.

Solucionado con AddBitmap.

Un abrazo y feliz dia de Reyes.

Jose.

Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Desaparecen Bitmaps en columnas XBROWSE(SOLUCIONADO)
Posted: Mon Jan 06, 2020 04:46 PM

Jose, es importante que definas el tipo de columna: en este caso ( :cDataType := 'F' ), para indicar que contendrá imágenes

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

Continue the discussion