Página 1 de 2

Browse Zebrado

Enviado: 07 Out 2009 14:23
por asimoes
Olá,

Alguém teria um exemplo de browse zebrado?

[]´s

Re: BROWSE ZEBRADO

Enviado: 07 Out 2009 16:32
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,

BROWSE ZEBRADO

Enviado: 07 Out 2009 19:42
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

Re: BROWSE ZEBRADO

Enviado: 08 Out 2009 08:09
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,

Re: Browse Zebrado

Enviado: 11 Fev 2011 17:55
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.

Browse Zebrado

Enviado: 12 Fev 2011 11:06
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.

Re: Browse Zebrado

Enviado: 12 Fev 2011 11:19
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!

Re: Browse Zebrado

Enviado: 12 Fev 2011 12:24
por Pablo César
Ahh claro, tem uma referência interna... achei que deveria haver algo assim... deve funcionar então.

Valeu grande Toledo !

Re: Browse Zebrado

Enviado: 12 Fev 2011 16:18
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,

Re: Browse Zebrado

Enviado: 13 Fev 2011 10:56
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.

Re: Browse Zebrado

Enviado: 13 Fev 2011 11:42
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,

Re: Browse Zebrado

Enviado: 13 Fev 2011 13:49
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

Re: Browse Zebrado

Enviado: 13 Fev 2011 15:04
por Toledo
Alexandre, baixei o arquivo agora e está funcionando certinho!

Abraços,

Re: Browse Zebrado

Enviado: 13 Fev 2011 16:01
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.

Re: Browse Zebrado

Enviado: 13 Fev 2011 17:40
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