Bom Dia!!
Como eu uso a ":colorRect" para alterar a cor de uma linha no tbrowse
pois como eu iso hoje só fica uma coluna selecionada, eu queria que toda a linha selecionada ficava com uma cor diferente
Eduardo Mendes
como usar :colorRect no tbrowse
Moderador: Moderadores
como usar :colorRect no tbrowse
Eduardo Mendes
eduardo@conesnet.com.br
xharbour 1.0.0 + gtwvw + dbfcdx + xdev + sqlib + hwgui (printdos e msgs)
clipper 5.2e + exospace
eduardo@conesnet.com.br
xharbour 1.0.0 + gtwvw + dbfcdx + xdev + sqlib + hwgui (printdos e msgs)
clipper 5.2e + exospace
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
De uma olhada nesse exemplo abaixo:
Qualquer duvida prende o grito.....
Abraços
Leonardo Machado
Código: Selecionar todos
***************
FUNC PESQAGE2()
***************
FIELD NOME,TELEFONE1,CELULAR,TIPO,TELEFONE2,ENDERECO,BAIRRO,CIDADE,UF,CEP IN AGENDA
LOCAL nButton := 1
LOCAL nOpcao := 0
LOCAL OTbr :=TBrowseDB( 03, 01, 22, 80 )
LOCAL OTbc1 :=TbColumnNew("Descricao do Cadastrado",{ || NOME } )
LOCAL OTbc2 :=TbColumnNew("N§ Telefone", { || TELEFONE1} )
LOCAL OTbc3 :=TbColumnNew("N§ Celular", { || CELULAR } )
LOCAL OTbc4 :=TbColumnNew("TIPO", { || TIPO } )
LOCAL OTbc5 :=TbColumnNew("N§ Telefone", { || TELEFONE2} )
LOCAL OTbc6 :=TbColumnNew("Endere‡o Completo", { || ENDERECO } )
LOCAL OTbc7 :=TbColumnNew("Bairro", { || BAIRRO } )
LOCAL OTbc8 :=TbColumnNew("Cidade", { || CIDADE } )
LOCAL OTbc9 :=TbColumnNew("UF", { || UF } )
LOCAL OTbc10:=TbColumnNew("CEP", { || CEP } )
LOCAL nKey
LOCAL lExitRequested
PARA TIPOCAD,LINHA
********************************************************************
* 1 2 3 4 5 6 7 8 9 10 11 12 13
oTbr:colorspec :="N*/W , W+/BG , W+/B , R+*/W , W*/W+ , RJ/W , W/B , R/N , B+*/W , RW*/W , N+*/W, BG+*/W, RG+*/W"
oTbr:addColumn(oTbc1)
oTbr:addColumn(oTbc2)
oTbr:addColumn(oTbc3)
oTbr:addColumn(oTbc4)
oTbr:addColumn(oTbc5)
oTbr:addColumn(oTbc6)
oTbr:addColumn(oTbc7)
oTbr:addColumn(oTbc8)
oTbr:addColumn(oTbc9)
oTbr:addColumn(oTbc10)
oTbC1:COLORBLOCK :={| NOME | IIF ( TIPO ="CLIENTE", { 9,2 } ,;
IIF ( TIPO ="FORNECEDOR", { 4,2 } ,;
IIF ( TIPO ="FUNCIONARIO",{ 10,2 } ,;
IIF ( TIPO ="COMPRADOR", { 13,2 } ,;
IIF ( TIPO ="CREDOR", { 12,2 } ,;
IIF ( TIPO ="DIVERSOS", { 11,2 } , { 1,2} ) ) ) ) ) ) }
oTbC2:COLORBLOCK :={| NOME | IIF ( TIPO ="CLIENTE", { 9,2 } ,;
IIF ( TIPO ="FORNECEDOR", { 4,2 } ,;
IIF ( TIPO ="FUNCIONARIO",{ 10,2 } ,;
IIF ( TIPO ="COMPRADOR", { 13,2 } ,;
IIF ( TIPO ="CREDOR", { 12,2 } ,;
IIF ( TIPO ="DIVERSOS", { 11,2 } , { 1,2} ) ) ) ) ) ) }
oTbC3:COLORBLOCK :={| NOME | IIF ( TIPO ="CLIENTE", { 9,2 } ,;
IIF ( TIPO ="FORNECEDOR", { 4,2 } ,;
IIF ( TIPO ="FUNCIONARIO",{ 10,2 } ,;
IIF ( TIPO ="COMPRADOR", { 13,2 } ,;
IIF ( TIPO ="CREDOR", { 12,2 } ,;
IIF ( TIPO ="DIVERSOS", { 11,2 } , { 1,2} ) ) ) ) ) ) }
oTbC4:COLORBLOCK :={| NOME | IIF ( TIPO ="CLIENTE", { 9,2 } ,;
IIF ( TIPO ="FORNECEDOR", { 4,2 } ,;
IIF ( TIPO ="FUNCIONARIO",{ 10,2 } ,;
IIF ( TIPO ="COMPRADOR", { 13,2 } ,;
IIF ( TIPO ="CREDOR", { 12,2 } ,;
IIF ( TIPO ="DIVERSOS", { 11,2 } , { 1,2} ) ) ) ) ) ) }
************ largura das colunas ***********
oTbc1:width:=29
************ Marcara das colunas ***********
oTbc2:picture:="@R (99) 9999-9999"
oTbc3:picture:="@R (99) 9999-9999"
oTbc5:picture:="@R (99) 9999-9999"
************ Linhas das colunas ************
oTbr:COLSEP :=DEF_CSEP // desenha colunas Verticais
oTbr:HEADSEP:=HEAD_SEP // desenha colunas Horizontais superior
oTbr:FOOTSEP:=FOOT_SEP // desenha colunas Horizontais inferior
************ COLUNAS A CONGELAR ************
ColFix := 1 // atraves de variaval colfix
oTbr:freeze := ColFix
**********************************
SELE AGENDA
SET ORDER TO 2
Otbr:gotop()
IExitRequested := .F.
vCONTINUA=" "
DO WHILE !IExitRequested
DO WHILE !oTbr:stabilize()
ENDDO
IF !vCONTINUA="S"
nKey := inkey(0)
ENDIF
DO CASE
CASE vCONTINUA="S"
CLEAR TYPEAHEAD // limpa sujeira no teclado
vNOME=SPACE(30)
vREG=RECCOUNT()
vCONTINUA=" "
SETCOLOR( "N/W,N*/RG,N/W* , , N*/W" )
@ ROW(),01 GET vNOME PICT"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
READ
SETCOLOR( "N*/W,W+/BG" )
IF LASTKEY()==27
IF EMPTY(vNOME)
TRAVAREG()
DELE
LIBERAREG()
OTBR:refreshall()
Otbr:gotop() // no arquivo indexado
LOOP
ENDIF
ENDIF
TRAVAREG()
REPL NOME WITH vNOME
LIBERAREG()
IF FOUND()
Msginfo("Descrição de Estoque Já Cadastrada!, favor verificar","Aviso do Sistema")
EXIT
ENDIF
OTBR:refreshall()
Otbr:gotop() // no arquivo indexado
GOTO vREG
CASE nKey == K_ENTER .OR. nKey == K_a .OR. nKey == K_A
nCOLNUM:=OTBR:COLPOS
DO CASE
ENDCASE
IF TIPO="DIVERSOS"
DO WHILE .T.
vNOME=NOME
vTELEFONE1=TELEFONE1
vCELULAR=CELULAR
vTIPO=TIPO
vTELEFONE2=TELEFONE2
vENDERECO=ENDERECO
vBAIRRO=BAIRRO
vCIDADE=CIDADE
vCEP=CEP
vUF=UF
SET CURSOR ON
SETCOLOR( "N/W,N*/RG,N/W* , , N*/W" )
IF nCOLNUM==1
@ ROW(),COL() GET vNOME PICT"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
READ
ENDIF
IF nCOLNUM==2
LINHA=ROW()
COLUNA=COL()
@ ROW(),COL() GET vTELEFONE1 PICT"@R (99) 9999-9999"
READ
ENDIF
IF nCOLNUM==3
@ ROW(),COL() GET vCELULAR PICT"@R (99) 9999-9999"
READ
ENDIF
IF nCOLNUM==4
@ ROW(),COL() GET vTIPO PICT"!!!!!!!!!!!"
READ
ENDIF
IF nCOLNUM==5
@ ROW(),COL() GET vTELEFONE2 PICT"@R (99) 9999-9999"
READ
ENDIF
IF nCOLNUM==6
@ ROW(),COL() GET vENDERECO
READ
ENDIF
IF nCOLNUM==7
@ ROW(),COL() GET vBAIRRO
READ
ENDIF
IF nCOLNUM==8
@ ROW(),COL() GET vCIDADE
READ
ENDIF
IF nCOLNUM==9
@ ROW(),COL() GET vUF
READ
ENDIF
IF nCOLNUM==10
@ ROW(),COL() GET vCEP
READ
ENDIF
SET CONFIRM OFF
SETCOLOR( "N*/W,W+/BG" )
IF !LASTKEY() = 27
SELE AGENDA
TRAVAREG()
REPL NOME WITH vNOME
REPL TELEFONE1 WITH vTELEFONE1
REPL CELULAR WITH vCELULAR
REPL TIPO WITH vTIPO
REPL TELEFONE2 WITH vTELEFONE2
REPL ENDERECO WITH vENDERECO
REPL BAIRRO WITH vBAIRRO
REPL CIDADE WITH vCIDADE
REPL CEP WITH VCEP
REPL UF WITH vUF
LIBERAREG()
ENDIF
EXIT
ENDDO
ELSE
Msginfo("Não é permitido a Alteração por esse processo, Favor entrar no cadastro de origem.","Aviso do Sistema")
ENDIF
SET ORDER TO 2
OTBR:refreshall()
CASE nKey == K_C .OR. nKey == K_c
SELE AGENDA
SET ORDER TO 2
APPE BLAN
TRAVAREG()
REPL TIPO WITH "DIVERSOS"
LIBERAREG()
OTBR:refreshall()
Otbr:gotop() // no arquivo indexado
vCONTINUA="S"
LOOP
CASE nKey == K_F .OR. nKey == K_f
vVOLTAR=SPACE(1)
IExitRequested := .T.
CASE nKey == K_DEL
IF TIPO="DIVERSOS"
IF !Msgyesno("Deseja Realmente Excluir esse Registro ?","Aviso do Sistema")
LOOP
ENDIF
TRAVAREG()
DELE
LIBERAREG()
OTBR:refreshall()
Otbr:gotop() // no arquivo indexado
ELSE
Msginfo("Não é permitido a Alteração por esse processo, Favor entrar no cadastro de origem","Aviso do Sistema")
ENDIF
CASE nKey == K_F1
IF INDEXORD()==2
SET ORDER TO 7
ELSEIF INDEXORD()==7
SET ORDER TO 2
ENDIF
oTbr:refreshall()
CASE nKey == K_F2
aBusca := savenv( 01, 00, 23, 79 )
chave:= Space(30)
SETCOLOR( "N*/W,B/W" )
aWin := Win( 10, 15, 13, 62, "Busca por Nome",WT_VERDE2BRANCO,WD_VERDE2BRANCO)
CLEAR TYPEAHEAD
@ 12, 18 say "Nome.:" get CHAVE pict"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" when DwnMsg( "Informe o Nome para uma pesquisar")
READ
RstEnv(aBusca)
SETCOLOR( "N*/W,W+/B" )
set softseek on
seek chave
set softseek off
oTbr:refreshall()
CASE nKey == K_DOWN
oTbr:down()
CASE nKey == K_UP
oTbr:up()
CASE nKey == K_PGDN
oTbr:pageDown()
CASE nKey == K_PGUP
oTbr:pageUp()
CASE nKey == K_CTRL_PGUP
oTbr:goTop()
CASE nKey == K_CTRL_PGDN
oTbr:goBottom()
CASE nKey == K_RIGHT
oTbr:right()
CASE nKey == K_LEFT
oTbr:left()
CASE nKey == K_HOME
oTbr:home()
CASE nKey == K_END
oTbr:end()
CASE nKey == K_CTRL_LEFT
oTbr:panLeft()
CASE nKey == K_CTRL_RIGHT
oTbr:panRight()
CASE nKey == K_CTRL_HOME
oTbr:panHome()
CASE nKey == K_CTRL_END
oTbr:panEnd()
CASE nKey == K_ESC
vVOLTAR="S"
OTBR:refreshall()
Otbr:gotop() // no arquivo indexado
IExitRequested := .T.
ENDCASE
ENDDO
RETURN NIL
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Valeu
Aproveitei seu codigo, mas o que eu queria mesmo e deixar de uma cor só todos as colunas do browse em que estiver o cursor (selecionado), mas resilvi usando isso
while .t.
objbrowse:ForceStable()
objbrowse:colorRect({objbrowse:rowPos, objbrowse:freeze-1, objbrowse:rowPos, objbrowse:colCount}, IIF(QTATU>0,{7,2},{6,13}) )
objbrowse:hilite()
objbrowse:RefreshCurrent()
SetInkeyAfterBlock({|nkey| AfterInkeyMt2( nkey ) })
RefreshHXB(objBrowse, nWin, nHScrollBar) //20040704
RefreshVXB(objBrowse, nWin, nVScrollBar) //2040704
if (objbrowse:applykey(inkey(0))== -1)
exit
endif
enddo
ai funcionou.
Valeu
ps. eu uso o tBrowse conforme o Clipper 5.3.
Aproveitei seu codigo, mas o que eu queria mesmo e deixar de uma cor só todos as colunas do browse em que estiver o cursor (selecionado), mas resilvi usando isso
while .t.
objbrowse:ForceStable()
objbrowse:colorRect({objbrowse:rowPos, objbrowse:freeze-1, objbrowse:rowPos, objbrowse:colCount}, IIF(QTATU>0,{7,2},{6,13}) )
objbrowse:hilite()
objbrowse:RefreshCurrent()
SetInkeyAfterBlock({|nkey| AfterInkeyMt2( nkey ) })
RefreshHXB(objBrowse, nWin, nHScrollBar) //20040704
RefreshVXB(objBrowse, nWin, nVScrollBar) //2040704
if (objbrowse:applykey(inkey(0))== -1)
exit
endif
enddo
ai funcionou.
Valeu
ps. eu uso o tBrowse conforme o Clipper 5.3.
Eduardo Mendes
eduardo@conesnet.com.br
xharbour 1.0.0 + gtwvw + dbfcdx + xdev + sqlib + hwgui (printdos e msgs)
clipper 5.2e + exospace
eduardo@conesnet.com.br
xharbour 1.0.0 + gtwvw + dbfcdx + xdev + sqlib + hwgui (printdos e msgs)
clipper 5.2e + exospace
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Tche, anteriormente vc não tinha dito que era onde passava o cursor..mas tudo bem.......se resolveu é a conta....Aproveitei seu codigo, mas o que eu queria mesmo e deixar de uma cor só todos as colunas do browse em que estiver o cursor (selecionado)
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
