Browse Zebrado

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Browse Zebrado

Mensagem por asimoes »

Olá,

Alguém teria um exemplo de browse zebrado?

[]´s
►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)
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: BROWSE ZEBRADO

Mensagem por Toledo »

Olá asimoes, o exemplo abaixo estava na pasta samples da Minigui 2.9.3

Código: Selecionar todos

#include "minigui.ch"
Function Main
	Private bColor := { || if ( recno()/2 == int(recno()/2) , { 222,222,222 } , { 192,192,192 } ) }	
	Private fColor := { || if ( recno()/2 == int(recno()/2) , { 0,255,0 } , { 0,0,255 } ) }	
	SET CENTURY ON
	SET DELETED ON
	SET BROWSESYNC ON	
	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 640 HEIGHT 480 ;
		TITLE 'MiniGUI Browse Demo)' ;
		MAIN NOMAXIMIZE ;
		ON INIT OpenTables() ;
		ON RELEASE CloseTables()

		DEFINE MAIN MENU 
			POPUP 'File'
				ITEM 'Set Browse Value'	ACTION Form_1.Browse_1.Value := Val ( InputBox ('Set Browse Value','') )
				ITEM 'Get Browse Value'	ACTION MsgInfo ( Str ( Form_1.Browse_1.Value ) )
				ITEM 'Refresh Browse'	ACTION Form_1.Browse_1.Refresh
				SEPARATOR
				ITEM 'Set Browse Width'		ACTION Form_1.Browse_1.Width := Val ( InputBox ('Set Browse Width','') )
				ITEM 'Set Browse Height'	ACTION Form_1.Browse_1.Height := Val ( InputBox ('Set Browse Height','') )
				ITEM 'Set Browse Row'		ACTION Form_1.Browse_1.Row := Val ( InputBox ('Set Browse Row','') )
				ITEM 'Set Browse Col'		ACTION Form_1.Browse_1.Col := Val ( InputBox ('Set Browse Col','') )
				SEPARATOR
				ITEM 'Get RecNo()'		ACTION MsgInfo ( Str ( Test->(RecNo()) ) )
				SEPARATOR
				ITEM 'Exit'		ACTION Form_1.Release
			END POPUP
			POPUP 'Help'
				ITEM 'About'		ACTION MsgInfo ("MiniGUI Browse Demo") 
			END POPUP
		END MENU

		DEFINE STATUSBAR
			STATUSITEM ''
		END STATUSBAR

		@ 10,10 BROWSE Browse_1									;
			WIDTH 610  										;
			HEIGHT 390 										;	
			HEADERS { 'Code' , 'First Name' , 'Last Name', 'Birth Date', 'Married' , 'Biography' } ;
			WIDTHS { 150 , 150 , 150 , 150 , 150 , 150 } ;
			WORKAREA Test ;
			FIELDS { 'Test->Code' , 'Test->First' , 'Test->Last' , 'Test->Birth' , 'Test->Married' , 'Test->Bio' } ;
			TOOLTIP 'Browse Test' ;
			ON CHANGE ChangeTest() ;
			DELETE ;
			LOCK ;
			EDIT APPEND ;
			DYNAMICBACKCOLOR { bColor , bColor, bColor, bColor, bColor, bColor } ;
			DYNAMICFORECOLOR { fColor , fColor, fColor, fColor, fColor, fColor } ;
			INPUTMASK { '$99.9', REPLICATE ( '!' , 32 ) , REPLICATE ( '!' , 32 ) , '' , '' , '' } ;
			FORMAT { '','','','','','' } ;
	END WINDOW
	CENTER WINDOW Form_1
	Form_1.Browse_1.SetFocus
	ACTIVATE WINDOW Form_1
Return Nil

Procedure OpenTables()
	CreateTable()
	Use Test Index Code
	Go Top
	Form_1.Browse_1.Value := RecNo()
Return Nil

Procedure CloseTables()
	Use
Return Nil

Procedure ChangeTest()
	Form_1.StatusBar.Item(1) := 'RecNo() ' + Alltrim ( Str ( RecNo ( ) ) ) 
Return 

Procedure CreateTable
	Use test
	zap
	For i:= 1 To 100 // 000
		append blank
		Replace code with i 
		Replace First With 'First Name '+ Str(i)
		Replace Last With 'Last Name '+ Str(i)
		Replace Married With .t.
		replace birth with date()+i-10000
	Next i
/*
	For i:= 1 To 200 Step 2
		go i
		Replace Married With .f.
	Next i

*/
	Index On Code To Code
	Use
Return
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

BROWSE ZEBRADO

Mensagem por asimoes »

Olá Toledo,

Eu estou usando a minigui que eu baixo da CVS e browse desta versão (MiniGUI 1.7 Extended Edition (Build 74)) não tem alguns comandos:

INPUTMASK E FORMAT

Onde eu baixo esta versão que você de o exemplo?

[]´s
►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)
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: BROWSE ZEBRADO

Mensagem por Toledo »

Olá asimoes, este exemplo que passei é da versão HMG 2.9.4 (Harbour/MingW), que você pode baixar em:

http://sourceforge.net/projects/harbourminigui/

Atenção: esta versão da MiniGui é para o compilador MingW, a versão que você usa é para BCC55.

Nesta sua versão da MiniGui, você poderia usar a lib TsBrowse, veja o exemplo que está na pasta C:\MINIGUI\SAMPLES\ADVANCED\TSBROWSE.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Re: Browse Zebrado

Mensagem por Mario Mesquita »

olá, amigos.

Estou tentando fazer tambem um browse zebrado e buscando material de consulta, achei esse tópico. A dica seria boa usando o RECNO(), mas não dá certo com arquivos indexados, que juntam registros pares e impares bagunçando o "zebrado". O ideal é que pegasse a posição do arquivo INDEX ou o ROW do BROWSE. Tô pesquisando, mas como sempre, literatura e exemplos são raros e, muitas vezes, superficiais. Alguem tem uma dica legal sobre isso?

Obrigado,
Mario.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Browse Zebrado

Mensagem por Pablo César »

Oi Mario, nos TBrowse do Clipper eu trabalharia com a quantidade de linhas que estão sendo exibidas, ja que o Tbrowse apenas mostra um número de linhas exibindo de bloco em bloco os registros. Então pouco antes do INKEY(0) do tbrowse eu adicionaria um FOR que iria "pintar" a tela alternando as cores começando de uma determinada linha até o final da exibição da linha. Já no Browse da HMG, eu teria que fazer uns testes e agora não estou podendo. Mas acredito que você deverá fazer um contador para cada registro exibido e não amarrar pelo RECNO() pois como vc mesmo disse não daria certo pela ordenação que faz o arquivo de índice.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Browse Zebrado

Mensagem por Toledo »

Mário tenta o seguinte:

Troque:

Código: Selecionar todos

   Private bColor := { || if ( recno()/2 == int(recno()/2) , { 222,222,222 } , { 192,192,192 } ) }   
   Private fColor := { || if ( recno()/2 == int(recno()/2) , { 0,255,0 } , { 0,0,255 } ) }   
Por:

Código: Selecionar todos

   Private bColor := { || if ( This.CellRowIndex/2 == int(This.CellRowIndex/2) , { 222,222,222 } , { 192,192,192 } ) }   
   Private fColor := { || if ( This.CellRowIndex/2 == int(This.CellRowIndex/2) , { 0,255,0 } , { 0,0,255 } ) }   
Abraços,

Atenção: veja minha próxima mensagem abaixo!
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Re: Browse Zebrado

Mensagem por Pablo César »

Ahh claro, tem uma referência interna... achei que deveria haver algo assim... deve funcionar então.

Valeu grande Toledo !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Browse Zebrado

Mensagem por Toledo »

Amigos Mário e Pablo, a referência This.CellRowIndex em um Browse só tem um retorno quando o duplo clique é acionado, então não vai dar certo. (Obs: a This.CellRowIndex em um Grid já funciona certinho.)
Bom, para dar o mesmo efeito em um Browse indexado, o único jeito que encontrei foi:

Troque:

Código: Selecionar todos

   Private bColor := { || if ( recno()/2 == int(recno()/2) , { 222,222,222 } , { 192,192,192 } ) }   
   Private fColor := { || if ( recno()/2 == int(recno()/2) , { 0,255,0 } , { 0,0,255 } ) }   
Por:

Código: Selecionar todos

   Private bColor := { || if ( OrdKeyNo()/2 == int(OrdKeyNo()/2) , { 222,222,222 } , { 192,192,192 } ) }   
   Private fColor := { || if ( OrdKeyNo()/2 == int(OrdKeyNo()/2) , { 0,255,0 } , { 0,0,255 } ) }   
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Re: Browse Zebrado

Mensagem por Mario Mesquita »

Bom dia, Toledo e Pablo.

Toledo, voce é sinistro! Onde vc encontrou esse método ou função obscura? É do Clipper? Do Harbour? Do HMG? Olha que eu fuçei, fuçei e nada! Onde se encontra documentação razoável para se tirar dúvidas?

Obrigado a voces todos. Ainda estou muito atrás em HMG mas espero poder angariar conhceimento e poder ajudar a turma tambem. Valeu mesmo.

Abraço a voces e bom domingo,
Mario.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Browse Zebrado

Mensagem por Toledo »

Mario Mesquita escreveu:Onde vc encontrou esse método ou função obscura?
Esta função (OrdKeyNo()) é do Harbour/xHarbour. Neste link você vai encontrar um Guia de Referência do xHarbour em inglês.

Aqui você encontra um Guia da MiniGui, também em inglês.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Browse Zebrado

Mensagem por alxsts »

Olá!

Toledo, baixei este arquivo Guia da MiniGUI duas vezes, mas está com algum problema. A tela fica piscando e depois aparece só a árvore de índice dos tópicos, na lateral esquerda, sem os conteúdos. Teria como corrigir o problema ou enviar o arquivo?

Grato
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Browse Zebrado

Mensagem por Toledo »

Alexandre, baixei o arquivo agora e está funcionando certinho!

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Re: Browse Zebrado

Mensagem por Mario Mesquita »

Boa tarde a todos.

Toledo, baixei os guias, mas na MiniGui mostra os topicos, mas não o conteúdo. Vi que um colega já avisou e baixei de novo, sem efeito. O que faço?

Obrigado,
Mario.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Browse Zebrado

Mensagem por alxsts »

Olá!

Normalmente uso o Firefox. Tentei com o IE, mesmo sabendo que isso não teria influencia. O problema continua.

Sugiro que você disponibilize na área de downloads do site.

Abraços
[]´s
Alexandre Santos (AlxSts)
Responder