Page 1 of 1

Cambiar BITMAP em XBROWSE (resolvido)

Posted: Mon Mar 10, 2008 3:30 am
by miragerr
Ola amigos

Estou querendo passar meus BROWSE para xBROWSE, mais estou encontrando dificuldades no seguinte quesito:

Em LISTBOX faço desta forma

Code: Select all

Local aHBitMaps:= {	LoadBitmap( GetResources(), "OFF" ), ;
							LoadBitmap( GetResources(), "ON" ) }

	REDEFINE LISTBOX oBrowse;
		FIELDS "","","";
		HEADERS;
			"   ",;
			"Nome do Arquivo",;
			"Tamanho em Kbytes",;
			"Data";
		COLSIZES 20,200, 120, 40;
		OF oDlg;
		ID 101;
		UPDATE

	oBrowse:aJustify := { .F., .F., .T., .f. }

	oBrowse:bLine		= { || { aHBitmaps[ IF( !_Dbf[oBrowse:nAt,1],1,2 ) ],;
										_Dbf[ oBrowse:nAt, 2 ], _Dbf[oBrowse:nAt,3], _Dbf[oBrowse:nAt,4] } }

	oBrowse:bGoTop 	= { || oBrowse:nAt := 1 }
	oBrowse:bGoBottom = { || oBrowse:nAt := Eval( oBrowse:bLogicLen ) }
	oBrowse:bSkip		= { | nWant, nOld | nOld := oBrowse:nAt, oBrowse:nAt += nWant,;
				oBrowse:nAt := Max( 1, Min( oBrowse:nAt, Eval( oBrowse:bLogicLen ) ) ),;
				oBrowse:nAt - nOld }

	oBrowse:bLogicLen = { || Len( _Dbf ) }

//
//
//aqui ao precionar SPACE o BITMAP é mudado, como fazer isso no XBROWSE
//
//
	oBrowse:bKeyDown := {|nKey| 	iif(nKey=VK_SPACE,( _Dbf[ oBrowse:nAt,1] := !_Dbf[ oBrowse:nAt,1], oBrowse:Refresh() ), .T. ) }

Grato pela a atenção de todos

Posted: Mon Mar 10, 2008 3:49 pm
by Silvio
SEE TESTXBR.PRG

Posted: Mon Mar 10, 2008 4:49 pm
by miragerr
Silvio já testei o TESTXBR.PRG, mais o mesmo faz um combobox, e não é isso que quero. quero ao precionar SPACE mudar o bitmap

Fico no aguardo

Posted: Mon Mar 10, 2008 5:49 pm
by Antonio Linares
Jackson,

Estamos preparandote un ejemplo,

We are building a little sample for you,

Posted: Mon Mar 10, 2008 7:47 pm
by Antonio Linares
Aqui tienes un ejemplo:

Code: Select all

   oBrw     := TXBrowse():New( oDlg )
   oBrw:SetArray( _Dbf )
   oBrw:aCols[ 1 ]:cHeader := " "
   oBrw:aCols[ 2 ]:cHeader := "Nome do Arquivo"
   oBrw:aCols[ 3 ]:cHeader := "Tamanho em Kbytes"
   oBrw:aCols[ 4 ]:cHeader := "Data"
   oBrw:aCols[ 1 ]:nWidth := 20
   oBrw:aCols[ 2 ]:nWidth := 200
   oBrw:aCols[ 3 ]:nWidth := 100
   oBrw:aCols[ 4 ]:nWidth := 40
   xbrJustify( oBrw, { .f., .f., .t., .f. } )
   ocol           := oBrw:aCols[ 1 ]
   oCol:AddResource( "ON" )
   oCol:AddResource( "OFF" )
   oCol:bBmpData  := { || If( _Dbf[ oBrw:nArrayAt, 1 ], 1, 2 ) }
   oCol:bStrData  := nil
   oBrw:bKeyDown := { |nKey| If( nKey == 32, ;
         ( _Dbf[ oBrw:nArrayAt, 1 ] := ! _Dbf[ oBrw:nArrayAt, 1 ], ;
           oBrw:DrawLine( .t. ) ), nil ) }
   oBrw:CreateFromResource( 101 )
A partir de FWH 8.03 se podrá hacer así:

Code: Select all

   REDEFINE XBROWSE oBrw ;
      HEADERS "   ", "Nome do Arquivo", "Tamanho em Kbytes","Data" ;
      COLSIZES 20,200, 120, 40;
      OF oDlg ID 101 UPDATE ;
      ARRAY _Dbf AUTOCOLS
   xbrJustify( oBrw, { .f., .f., .t., .f. } )
   oBrw:aCols[ 1 ]:SetCheck( { "ON", "OF" }, ;
      { | o,lVal | _Dbf[ oBrw:nArrayData. 1 ] := lVal } )

Cambiar BITMAP em XBROWSE (resolvido)

Posted: Tue Mar 11, 2008 12:22 pm
by miragerr
Ola amigo

Antonio obrigada pela sua resposta rápida e certeira, continue sempra assim amigo.

Irei aguardar a nova versão do XBROWSE na FWH 8.03

Grato pela sua atenção