Colocando .BMP no Browse em HWGUI

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Colocando .BMP no Browse em HWGUI

Mensagem por Fernando queiroz »

Depois de muito tentar até que consegui colocar .BMP em um BROWSE
tela.jpg
no começo da rotina colocar

Código: Selecionar todos

Local bCol1 := {|o,h,x1,y1,x2,y2|
	Local oBmp
	hwg_Fillrect( h, x1, y1, x2, y2, oBrowse3:brush:handle )
	   oBmp := IF(oBrowse3:aArray[oBrowse3:nCurrent,7] =  '1', HBitmap():AddResource( "goodmark" ), HBitmap():Addresource( "badmark" ) )
	   hwg_Drawbitmap( h, oBmp:handle,, x1+20, y1+4, oBmp:nWidth, oBmp:nHeight )
	RETURN Nil
 }
depois no browse montar da seguinte forma

Código: Selecionar todos

		@ 5,357 BROWSE oBrowse3 ARRAY SIZE 1000, 237 ;
			STYLE WS_TABSTOP      
	
		oBrowse3:oStyleHead := HStyle():New( { 0xffffff, 0xbbbbbb }, 1,, 0.4, 16759929 )
		oBrowse3:oFont := HFont():Add( '',0,-15,700,,,)
		oBrowse3:aArray := {}

		oBrowse3:AddColumn( HColumn():New( "",,"C",6,0,,,0, ) )
		oBrowse3:AddColumn( HColumn():New( "RECIBO",hwg_ColumnArBlock(),"N",12,0,.F.,1,2,,,,,,))
		oBrowse3:AddColumn( HColumn():New( "ID",hwg_ColumnArBlock(),"N",12,0,.F.,1,2,,,,,,))
		oBrowse3:AddColumn( HColumn():New( "CLIENTE/FORNECEDOR/VENDEDOR",hwg_ColumnArBlock(),"C",50,0,.F.,,, ) )
		oBrowse3:AddColumn( HColumn():New( "TOTAL",hwg_ColumnArBlock(),'N',16, 2 ,.F.,2,2,'@E 99,999,999,999.99',,,,,,,,,))
		oBrowse3:AddColumn( HColumn():New( "HISTORICO",hwg_ColumnArBlock(),"C",80,0,.F.,,, ) )

		oBrowse3:aColumns[1]:setPaintCB( PAINT_LINE_ALL, bCol1 )
e na carga do BROWSE por ARRAY montar assim, neste caso estou usando o MARIADB

Código: Selecionar todos

	cQuery1:="SELECT  "
	cQuery1+="movcaixa.TIPMOV, "
	cQuery1+="movcaixa.MOVCAIXA_Id, "
	cQuery1+="movcaixa.CLIFOR, "
	cQuery1+="movcaixa.NRAZ_SOC, "
	cQuery1+="movcaixa.VALOR, "
	cQuery1+="movcaixa.HISTOR "
	cQuery1+="FROM movcaixa "
	cQuery1+="WHERE movcaixa.DATMOV = '" + Hb_DTOC(dDATCAI, "YYYY-MM-DD") + "' AND movcaixa.TURCAI = '" + STRZERO(nTURCAI,1,0) + "'"
	oQuery3:= oServer:Execute(cQuery1)

	DO WHILE ! oQuery3:Eof()
		aAdd( aResult3,{"",;
						oQuery3:Fields( "MOVCAIXA_Id" ):Value,;
						oQuery3:Fields( "CLIFOR" ):Value,;
						oQuery3:Fields( "NRAZ_SOC" ):Value,;
						oQuery3:Fields( "VALOR" ):Value,;
						oQuery3:Fields( "HISTOR" ):Value,;
						oQuery3:Fields( "TIPMOV" ):Value} )

		oQuery3:MoveNext()
	ENDDO

	oBrowse3:aArray := aResult3
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Colocando .BMP no Browse em HWGUI

Mensagem por JoséQuintas »

Demorei um pouquinho pra entender, mas entendi.

Nesse caso é criado um codeblock, que recebe coordenadas da linha do browse, e faz o desenho.
esta função repete o codeblock pra cada linha do browse, selecionando a imagem conforme foi definido no bcol1.

Código: Selecionar todos

oBrowse3:aColumns[1]:setPaintCB( PAINT_LINE_ALL, bCol1 )
E é sério, esquema parecido ao da GTWVG.
É interessante.
Acredito que tenha outra forma, pra quando as imagens não seguem um padrão único.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Colocando .BMP no Browse em HWGUI

Mensagem por Itamar M. Lins Jr. »

Uso, a mais de 6 anos...
Depois posto a tela, estou no linux.

Código: Selecionar todos

   obitAzul     := hbitmap():AddResource( 'BolaAzul' )
   obitVermelho := hbitmap():AddResource( 'BolaVermelha' )
   obitBranco   := hbitmap():AddResource( 'BolaBranca' )
   obitAmarelo  := hbitmap():AddResource( 'BolaAmarela' )
   obitVerde    := hbitmap():AddResource( 'BolaVerde' ) 
   obitPreto    := hbitmap():AddResource( 'BolaPreta' )
   obitCinza    := hbitmap():AddResource( 'BolaCinza' )
   oUnlock      := hbitmap():AddResource( 'Unlock' )

     Add columnEx {||" "} to oBrw ;
      Header ' ' Type 'C' Length 2 Picture ' ' ;
      Justify Line DT_RIGHT  Justify Head DT_CENTER

   oBrw:aColumns[2]:aBitmaps := ;
        { { {|| SinalPreto() }, oBitPreto }, { {|| SinalAmarelo() }, oBitAmarelo }, { {|| SinalVermelho() }, oBitVermelho },{ {|| SinalAzul() }, oBitAzul }, { {|| SinalVerde() }, oBitVerde } }

//Criar suas funções da forma que deseja
Static Function SinalVermelho
Local lRet := .f.
if eq->quantidade < 0
        lRet := .t.
endif
return lRet
Fica umas bolinhas coloridas.
Fiz, assim da época que trabalhei na ToTvs...Gostei do browse deles e fiz parecido.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Colocando .BMP no Browse em HWGUI

Mensagem por Fernando queiroz »

Dei uma modificada criando um ARRAY para guardar os .BMP e vou pegando de acordo com o tipo

Código: Selecionar todos

	, aBitmaps:={HBitmap():AddResource( "goodmark" ), HBitmap():Addresource( "badmark" ), HBitmap():Addresource( "PEOPLEBMP" ), HBitmap():Addresource( "Remove" )};


Local bCol1 := {|o,h,x1,y1,x2,y2|
	Local oBmp, nBitmaps:=val(oBrowse3:aArray[oBrowse3:nCurrent,7])
		hwg_Fillrect( h, x1, y1, x2, y2, oBrowse3:brush:handle )
	   	oBmp := aBitmaps[nBitmaps] 
	   	hwg_Drawbitmap( h, oBmp:handle,, x1+20, y1+4, oBmp:nWidth, oBmp:nHeight )
	RETURN Nil
 }
tela.jpg
ficou bem interressante
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Colocando .BMP no Browse em HWGUI

Mensagem por Itamar M. Lins Jr. »

Ola!
Gostei, tá pegando esses bitmaps onde ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Colocando .BMP no Browse em HWGUI

Mensagem por Fernando queiroz »

Itamar M. Lins Jr. escreveu:Ola!
Gostei, tá pegando esses bitmaps onde ?

Saudações,
Itamar M. Lins Jr.
Se você quiser posso te mandar

Disponha
FERNANDO QUEIROZ
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Colocando .BMP no Browse em HWGUI

Mensagem por alxsts »

Olá!

Muito bom! Parabéns!

Dúvidas:
1 - é possível colocar o bitmap em qualquer coluna? Ou apenas na primeira?
2 - é possível colocar bitmaps em várias colunas, na mesma linha?

Em algum lugar, vi que, na HwGUI, estas possibilidades existem apenas no componente Grid. Gostaria de confirmar.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Colocando .BMP no Browse em HWGUI

Mensagem por Itamar M. Lins Jr. »

Ola!
Qualquer coluna, e varias colunas. Então 1)sim, 2)sim.

Isso é antigo na Hwgui. Tem exemplo no tutor.
E é no browse que eu uso, nunca usei grid.
Screenshot_20200714_013102.png
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Colocando .BMP no Browse em HWGUI

Mensagem por asimoes »

Meu exemplo usando jpg, png ou bmp
2020-07-14 18_29_52-Greenshot.png
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Colocando .BMP no Browse em HWGUI

Mensagem por Fernando queiroz »

DEI uma melhorada no codeblock dos icones

Código: Selecionar todos

	, aBitmaps:={HBitmap():AddResource( "goodmark" ), HBitmap():Addresource( "badmark" ), HBitmap():Addresource( "PEOPLEBMP" ), HBitmap():Addresource( "Remove" )};


LOCAL bCol1 := {|oBmp, h,x1,y1,x2,y2| oBmp:=aBitmaps[val(oBrowse3:aArray[oBrowse3:nCurrent,7])], ;
                                   hwg_Fillrect( h, x1, y1, x2, y2, oBrowse3:brush:handle ), ;
	                               hwg_Drawbitmap( h, oBmp:handle,, x1+20, y1+4, oBmp:nWidth, oBmp:nHeight ) }
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Responder