AJUDA - Estou apanhando do TBrowse

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

sidneyfachini
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 04 Mar 2014 11:08
Localização: Rio do Sul/SC

AJUDA - Estou apanhando do TBrowse

Mensagem por sidneyfachini »

Bom dia pessoal,
Estou trocando meu velho amigo DBEdit pelo TBrowse e estou com algumas dúvidas.
No meu sisteminha, quando o usuário tecla F3 no TBrowse eu crio um índice e ordeno o DBF pelo campo em que ele está no momento e depois mostro no TBrowse. Ex. Se o usuário estiver na coluna CODIGO ele ordena pelo CODIGO e mostra no TBrowse... e assim com as demais colunas.
Queria saber se tem como destacar o título do Tbrowse na coluna que está ordenada. Ex. Se está ordenado pelo CODIGO destacar com uma cor diferente o título Código. E assim cada vez que o usuário teclar F3 nas outras colunas.
Já li muita coisa. Já vi muitos códigos, mas como estou começando não estou conseguindo fazer.

Meu código está assim:

// Chama a função do TBrowse no programa principal
FazTBrowse( TBrowse )

// Função que faz o TBrowse

Código: Selecionar todos

Static Function FazTBrowse( TBrowse, Funcao )
LOCAL nBrowse, nCont, nKey

   nBrowse := TBrowseDB(11, 01, 22, 78)
   nBrowse:HeadSep   := "Ä"
   nBrowse:FootSep   := ""
   nBrowse:ColSep    := " ³ "
   nBrowse:ColorSpec := C_FUND_ATR+","+C_ENTR_ATR
   For nCont := 1 to Len(TBrowse)
       nBrowse:AddColumn(TBrowse[nCont])
   Next
   nBrowse:RefreshAll()
   While .t.
      While .not. nBrowse:Stable()
         nBrowse:Stabilize()
      Enddo
      nKey := Inkey(0)

      Do Case
        Case nKey == K_UP         ; nBrowse:Up()       ; LOOP
        Case nKey == K_DOWN       ; nBrowse:Down()     ; LOOP
        Case nKey == K_LEFT       ; nBrowse:Left()     ; LOOP
        Case nKey == K_RIGHT      ; nBrowse:Right()    ; LOOP
        Case nKey == K_HOME       ; nBrowse:Home()     ; LOOP
        Case nKey == K_END        ; nBrowse:End()      ; LOOP
        Case nKey == K_PGUP       ; nBrowse:PageUp()   ; LOOP
        Case nKey == K_PGDN       ; nBrowse:PageDown() ; LOOP
        Case nKey == K_CTRL_PGUP  ; nBrowse:GoTop()    ; LOOP
        Case nKey == K_CTRL_PGDN  ; nBrowse:GoBottom() ; LOOP
        Case nKey == K_CTRL_HOME  ; nBrowse:PanHome()  ; LOOP
        Case nKey == K_CTRL_END   ; nBrowse:PanEnd()   ; LOOP
        Case nKey == K_CTRL_LEFT  ; nBrowse:PanLeft()  ; LOOP
        Case nKey == K_CTRL_RIGHT ; nBrowse:PanRight() ; LOOP
        Case nKey == K_ESC
           RestScreen(00, 00, 24, 79, mTelaCheia)
           Exit
        Case nKey == -2
           Campo := nBrowse:ColPos
           TBOrdenar("ESTOQUE", Campo)
           nBrowse:RefreshAll()
           LOOP
        Case nKey == -3
        Case nKey == -4
        Case nKey == -5
        Case nKey == -7
        EndCase
   Enddo
Return NIL
Editado pela última vez por Toledo em 17 Abr 2016 08:28, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

AJUDA - Estou apanhando do TBrowse

Mensagem por alxsts »

Olá!

Infelizmente em Clipper não é possível pintar as cores dos cabeçalhos de coluna do objeto TBrowse.

O que é possível é alterar o texto do cabeçalho da coluna (pegar a coluna em questão com o método :getColumn() e tratar). Talvez acrescentar um asterisco ao título da coluna pela qual o browser estiver ordenado. Isto daria um trabalho adicional, que seria desmarcar a coluna com asterisco quando o usuário escolher outra coluna para ordenação.

Outra coisa: criar índice no momento em que o usuário pressionar F3 poderá degradar a performance, dependendo da quantidade de registros existente. O ideal seria permitir ordenar por colunas que já tenham índices.

Habitue-se a postar código fonte dentro das tags code. Marque o código fonte em sua mensagem e clique no botão mostrado abaixo, localizado na página usada para postar mensagens.
Toolbar
Toolbar
Capturar.PNG (6.44 KiB) Exibido 4191 vezes
Editado
Evite abrir mais de um tópico com dúvidas sobre o mesmo assunto, como fez em Me ajudem - Dúvida com o TBrowse no Clipper
[]´s
Alexandre Santos (AlxSts)
sidneyfachini
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 04 Mar 2014 11:08
Localização: Rio do Sul/SC

AJUDA - Estou apanhando do TBrowse

Mensagem por sidneyfachini »

Entendi.
Desculpa aí por não usar o Code. Como sou novo aqui, não tinha percebido, mas vou usar nas próximas postagens.
Você tem razão quando diz que vai dar um trabalhão acrescentar algum caracter no título. Aí eu pensei... será que dá para eu colocar um cor na coluna que está ordenada? Aí quando fosse ordenada outra coluna seria só limpar o TBrowse e colorir a nova coluna escolhida. Tem como?
Abraço
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

AJUDA - Estou apanhando do TBrowse

Mensagem por alxsts »

Olá!

Sim, é possível fazer isto, usando o método :getColumn(), trocando a cor de exibição dos dados da coluna atual sempre que o usuário desejar ordenar por esta coluna. Mas isto não eliminaria o trabalho de restaurar a cor da coluna anteriormente usada para ordenação. Ou seja, dá no mesmo que acrescentar um carácter ao título da coluna...
[]´s
Alexandre Santos (AlxSts)
sidneyfachini
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 04 Mar 2014 11:08
Localização: Rio do Sul/SC

AJUDA - Estou apanhando do TBrowse

Mensagem por sidneyfachini »

Certo.
E vc tem alguma sugestão para me dar. Não sei mais o q fazer.
Como posso fazer para destacar a coluna que está ordenada.
E para piorar não conheço muito o TBrowse, então se vc puder explicar com exemplo me ajudaria muito.
Abraço
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

AJUDA - Estou apanhando do TBrowse

Mensagem por alxsts »

Olá!

Creio que é só escolher entre alterar o cabeçalho ou a cor. O trabalho é praticamente o mesmo. Tentarei achar tempo amanhã ou depois para construir um exemplo.
[]´s
Alexandre Santos (AlxSts)
sidneyfachini
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 04 Mar 2014 11:08
Localização: Rio do Sul/SC

AJUDA - Estou apanhando do TBrowse

Mensagem por sidneyfachini »

Po.... valeu mesmo... nem sei como agradecer a ajuda.
Se for no cabeçalho seria melhor, pois meu usuário não sentiria tanto a mudança. Sabe como é né.
Grande abraço
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

AJUDA - Estou apanhando do TBrowse

Mensagem por Toledo »

sidneyfachini escreveu:// Chama a função do TBrowse no programa principal
FazTBrowse( TBrowse )
Amigo, o que tem na matriz TBrowse?

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
sidneyfachini
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 04 Mar 2014 11:08
Localização: Rio do Sul/SC

AJUDA - Estou apanhando do TBrowse

Mensagem por sidneyfachini »

Bom dia, Toledo.

Meu código está assim:

Código: Selecionar todos

.
.
.
Private TituT004[11]
TituT004[1] = "C¢digo"
TituT004[2] = "Descri‡Æo"
TituT004[3] = "Grupo"
TituT004[4] = "Fornecedor"
TituT004[5] = "Quantidade"
TituT004[6] = "MED"
TituT004[7] = "Pre‡o de Custo (NFe)"
TituT004[8] = "Pre‡o de Venda"
TituT004[9] = "Cor/Tam/Mat"
TituT004[10] = "Status"
TituT004[11] = "Última Compra"

Private Pictu004[11]
Pictu004[1] = "@K!"
Pictu004[2] = "@K!"
Pictu004[3] = "@K!"
Pictu004[4] = "@K!"
Pictu004[5] = "@E 99999"
Pictu004[6] = "@K!"
Pictu004[7] = "@E 9,999.99"
Pictu004[8] = "@E 9,999.99"
Pictu004[9] = "@K!"
Pictu004[10] = "@K!"
Pictu004[11] = ""

Private TBrowse[11]
TBrowse[1]  := TBColumnNew(TituT004[1],{||ESTOQUE->CODIGO})
TBrowse[2]  := TBColumnNew(TituT004[2],{||SubStr(ESTOQUE->DESCRICAO, 1, 50)})
TBrowse[3]  := TBColumnNew(TituT004[3],{||ESTOQUE->NOME})
TBrowse[4]  := TBColumnNew(TituT004[4],{||SubStr(ESTOQUE->FORNEC_PRE, 1, 40)})
TBrowse[5]  := TBColumnNew(TituT004[5],{||ESTOQUE->QTD_ATUAL})
TBrowse[6]  := TBColumnNew(TituT004[6],{||ESTOQUE->MEDIDA})
TBrowse[7]  := TBColumnNew(TituT004[7],{||ESTOQUE->CUSTOCOMPR})
TBrowse[8]  := TBColumnNew(TituT004[8],{||ESTOQUE->PRECO})
TBrowse[9]  := TBColumnNew(TituT004[9],{||ESTOQUE->ADICIONAL2})
TBrowse[10] := TBColumnNew(TituT004[10],{||SubStr(ESTOQUE->ADICIONAL1, 1, 15)})
TBrowse[11] := TBColumnNew(TituT004[11],{||ESTOQUE->ULT_COMPRA})

FazTBrowse( TBrowse )

Return

Static Function FazTBrowse( TBrowse, Funcao )

LOCAL nBrowse, nCont, nKey

   nBrowse := TBrowseDB(11, 01, 22, 78)
   nBrowse:HeadSep   := "Ä"
   nBrowse:FootSep   := ""
   nBrowse:ColSep    := " ³ "
   nBrowse:ColorSpec := C_FUND_ATR+","+C_ENTR_ATR

   For nCont := 1 to Len(TBrowse)
      nBrowse:AddColumn(TBrowse[nCont])
   Next

   nBrowse:RefreshAll()

   While .t.
      While .not. nBrowse:Stable()
         nBrowse:Stabilize()
      Enddo
      If nBrowse:HitTop
         @ 23, 01 Say "| In¡cio |" Color C_TEXT_ATR
      ElseIf nBrowse:HitBottom()
         @ 23, 01 Say "| Fim |"    Color C_TEXT_ATR
      Else
         @ 23, 01 Say "          " Color C_MOLD_ATR
      EndIf
      nKey := Inkey(0)

      Do Case
        Case nKey == K_UP         ; nBrowse:Up()       ; LOOP
        Case nKey == K_DOWN       ; nBrowse:Down()     ; LOOP
        Case nKey == K_LEFT       ; nBrowse:Left()     ; LOOP
        Case nKey == K_RIGHT      ; nBrowse:Right()    ; LOOP
        Case nKey == K_HOME       ; nBrowse:Home()     ; LOOP
        Case nKey == K_END        ; nBrowse:End()      ; LOOP
        Case nKey == K_PGUP       ; nBrowse:PageUp()   ; LOOP
        Case nKey == K_PGDN       ; nBrowse:PageDown() ; LOOP
        Case nKey == K_CTRL_PGUP  ; nBrowse:GoTop()    ; LOOP
        Case nKey == K_CTRL_PGDN  ; nBrowse:GoBottom() ; LOOP
        Case nKey == K_CTRL_HOME  ; nBrowse:PanHome()  ; LOOP
        Case nKey == K_CTRL_END   ; nBrowse:PanEnd()   ; LOOP
        Case nKey == K_CTRL_LEFT  ; nBrowse:PanLeft()  ; LOOP
        Case nKey == K_CTRL_RIGHT ; nBrowse:PanRight() ; LOOP
        Case nKey == K_ESC
              DbCloseArea()
              RestScreen(00, 00, 24, 79, mTelaCheia)
              Exit
        Case nKey == -2
           Campo := nBrowse:ColPos
           TBOrdenar("ESTOQUE", Campo)  // Aqui é chamo uma função simples para criar o índice pela coluna do TBrowse
           nBrowse:GoTop()
           nBrowse:RefreshAll()
           LOOP
        Case nKey == -3
        Case nKey == 13
           Clear Typeahead
           Set Cursor On
           DetalhaReg()
           Set Cursor Off
           Clear Typeahead
           nBrowse:RefreshAll()
           LOOP
        EndCase
   Enddo
Return NIL

Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

AJUDA - Estou apanhando do TBrowse

Mensagem por Toledo »

Veja este exemplo:

Código: Selecionar todos

Private TituT004[11]
TituT004[1] = "C¢digo*"  //marcar coluna do indice inicial com um *
TituT004[2] = "Descri‡Æo"
TituT004[3] = "Grupo"
TituT004[4] = "Fornecedor"
TituT004[5] = "Quantidade"
TituT004[6] = "MED"
TituT004[7] = "Pre‡o de Custo (NFe)"
TituT004[8] = "Pre‡o de Venda"
TituT004[9] = "Cor/Tam/Mat"
TituT004[10] = "Status"
TituT004[11] = "Última Compra"

Private Pictu004[11]
Pictu004[1] = "@K!"
Pictu004[2] = "@K!"
Pictu004[3] = "@K!"
Pictu004[4] = "@K!"
Pictu004[5] = "@E 99999"
Pictu004[6] = "@K!"
Pictu004[7] = "@E 9,999.99"
Pictu004[8] = "@E 9,999.99"
Pictu004[9] = "@K!"
Pictu004[10] = "@K!"
Pictu004[11] = ""

Private TBrowse[11]
TBrowse[1]  := TBColumnNew(TituT004[1],{||ESTOQUE->CODIGO})
TBrowse[2]  := TBColumnNew(TituT004[2],{||SubStr(ESTOQUE->DESCRICAO, 1, 50)})
TBrowse[3]  := TBColumnNew(TituT004[3],{||ESTOQUE->NOME})
TBrowse[4]  := TBColumnNew(TituT004[4],{||SubStr(ESTOQUE->FORNEC_PRE, 1, 40)})
TBrowse[5]  := TBColumnNew(TituT004[5],{||ESTOQUE->QTD_ATUAL})
TBrowse[6]  := TBColumnNew(TituT004[6],{||ESTOQUE->MEDIDA})
TBrowse[7]  := TBColumnNew(TituT004[7],{||ESTOQUE->CUSTOCOMPR})
TBrowse[8]  := TBColumnNew(TituT004[8],{||ESTOQUE->PRECO})
TBrowse[9]  := TBColumnNew(TituT004[9],{||ESTOQUE->ADICIONAL2})
TBrowse[10] := TBColumnNew(TituT004[10],{||SubStr(ESTOQUE->ADICIONAL1, 1, 15)})
TBrowse[11] := TBColumnNew(TituT004[11],{||ESTOQUE->ULT_COMPRA})

FazTBrowse( TBrowse )

Return

Static Function FazTBrowse( TBrowse, Funcao )

Private nBrowse, nCont, nKey

   nBrowse := TBrowseDB(11, 01, 22, 78)
   nBrowse:HeadSep   := "Ä"
   nBrowse:FootSep   := ""
   nBrowse:ColSep    := " ³ "
   nBrowse:ColorSpec := C_FUND_ATR+","+C_ENTR_ATR

   For nCont := 1 to Len(TBrowse)
      nBrowse:AddColumn(TBrowse[nCont])
   Next

   nBrowse:RefreshAll()

   While .t.
      While .not. nBrowse:Stable()
         nBrowse:Stabilize()
      Enddo
      If nBrowse:HitTop
         @ 23, 01 Say "| In¡cio |" Color C_TEXT_ATR
      ElseIf nBrowse:HitBottom()
         @ 23, 01 Say "| Fim |"    Color C_TEXT_ATR
      Else
         @ 23, 01 Say "          " Color C_MOLD_ATR
      EndIf
      nKey := Inkey(0)

      Do Case
        Case nKey == K_UP         ; nBrowse:Up()       ; LOOP
        Case nKey == K_DOWN       ; nBrowse:Down()     ; LOOP
        Case nKey == K_LEFT       ; nBrowse:Left()     ; LOOP
        Case nKey == K_RIGHT      ; nBrowse:Right()    ; LOOP
        Case nKey == K_HOME       ; nBrowse:Home()     ; LOOP
        Case nKey == K_END        ; nBrowse:End()      ; LOOP
        Case nKey == K_PGUP       ; nBrowse:PageUp()   ; LOOP
        Case nKey == K_PGDN       ; nBrowse:PageDown() ; LOOP
        Case nKey == K_CTRL_PGUP  ; nBrowse:GoTop()    ; LOOP
        Case nKey == K_CTRL_PGDN  ; nBrowse:GoBottom() ; LOOP
        Case nKey == K_CTRL_HOME  ; nBrowse:PanHome()  ; LOOP
        Case nKey == K_CTRL_END   ; nBrowse:PanEnd()   ; LOOP
        Case nKey == K_CTRL_LEFT  ; nBrowse:PanLeft()  ; LOOP
        Case nKey == K_CTRL_RIGHT ; nBrowse:PanRight() ; LOOP
        Case nKey == K_ESC
              DbCloseArea()
              RestScreen(00, 00, 24, 79, mTelaCheia)
              Exit
        Case nKey == -2
           Campo := nBrowse:ColPos
           TBOrdenar("ESTOQUE", Campo)  // Aqui é chamo uma função simples para criar o índice pela coluna do TBrowse
           nBrowse:GoTop()
           nBrowse:RefreshAll()
           LOOP
        Case nKey == -3
        Case nKey == 13
           Clear Typeahead
           Set Cursor On
           DetalhaReg()
           Set Cursor Off
           Clear Typeahead
           nBrowse:RefreshAll()
           LOOP
        EndCase
   Enddo
Return NIL

***********************************************
Func TBOrdenar(cAlias, Campo)
*criar o indice
For _c=1 to nBrowse:colCount
  cTit_:=nBrowse:getColumn(_c):heading
  if AT("*",cTit_)>0
    cTit_:=StrTran(cTit_,"*","")
    nBrowse:getColumn(_c):heading:=cTit_
  endif
  if _c==Campo
    nBrowse:getColumn(_c):heading:=cTit_+"*"
  endif
Next
nBrowse:configure()
Return Nil
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
sidneyfachini
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 04 Mar 2014 11:08
Localização: Rio do Sul/SC

AJUDA - Estou apanhando do TBrowse

Mensagem por sidneyfachini »

Boa noite, Toledo.
Você é fera mesmo.
Funcionou certinho. Incrível!!!
Muuuito obrigado mesmo.
Abraço
:{ :-Y
sidneyfachini
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 04 Mar 2014 11:08
Localização: Rio do Sul/SC

AJUDA - Estou apanhando do TBrowse

Mensagem por sidneyfachini »

Olá pessoal.
Agora que vencemos essa etapa, me veio outra dúvida.
Dá para colocar o mouse pra funcionar no TBrowse???
Andei lendo alguma coisa aqui no fórum e tentei fazer funcionar, mas não rolou. Ou funciona o mouse ou o Tbrowse, os dois juntos não deu.
É que acima do TBrowse eu coloquei as opções: F3 - Ordenar F4 - Buscar.
Eu queria saber se dá para fazer funcionar para que o usuário possa teclar ou clicar (isso ajuda muito quando rodamos o sistema em um tablet)
Estou usando a lib CLIPMOUS.LIB
No menu principal do sistema já está funcionando assim:

Código: Selecionar todos

*     My() = Linha
*     Mx() = Coluna
*     Mbout = BotÆo
      @ 24, 00 Say Repl(" ", 69) Color C_TXTN_LST
      Saida := .f.
      Tecla := 0
      While .t.
         Tecla = Inkey()
         If Tecla = 27 // ESC
            Saida := .t.
            Exit
         Endif
         @ 24, 01 Say "("     Color C_TXTN_LST
         @ 24, Col() Say My() Pict "@E 99" Color C_TXTD_LST
         @ 24, Col() Say ","  Color C_TXTN_LST
         @ 24, Col() Say Mx() Pict "@E 99" Color C_TXTD_LST
         @ 24, Col() Say ")"  Color C_TXTN_LST
         If My() >= 2 .and. My() <= 6
            If Mx() >= 1 .and. Mx() <= 12 .and. Mbout() = 2
               Do program1
            ElseIf Mx() >= 14 .and. Mx() <= 24 .and. Mbout() = 2
               Do program2
            ElseIf Mx() >= 26 .and. Mx() <= 36 .and. Mbout() = 2
               Do program3
            Endif
         Endif
         If Tecla = -2  // F3
               Do program1
         ElseIf Tecla = -3  // F4
               Do program2
         ElseIf Tecla = -4  // F5
               Do program3
         ElseIf Tecla = 27  // ESC 
              Saida := .t.
              Exit
         Endif
      Enddo
      If Saida  ; Saida_Sistema() ; Endif
   Enddo
Mas no menu principal não tem TBrowse, por isso deu certo.

O meu programa que mostra o TBrowse está assim:

Código: Selecionar todos

// Mostra o TBrowse
FazTBrowse( TBrowse )
Return

Static Function FazTBrowse( TBrowse, Funcao )

LOCAL nBrowse, nCont, nTecla

   nBrowse := TBrowseDB(11, 01, 22, 78)
   nBrowse:HeadSep   := "Ä"
   nBrowse:FootSep   := ""
   nBrowse:ColSep    := " ³ "
   nBrowse:ColorSpec := C_FUND_ATR+","+C_ENTR_ATR

   For nCont := 1 to Len(TBrowse)
      nBrowse:AddColumn(TBrowse[nCont])
   Next

   nBrowse:GoBottom()
   nBrowse:RefreshAll()

   While .t.

      While .not. nBrowse:Stable()
         nBrowse:Stabilize()
      Enddo

      If nBrowse:HitTop
*         @ 23, 01 Say "| In¡cio |" Color C_TEXT_ATR
      ElseIf nBrowse:HitBottom()
*         @ 23, 01 Say "| Fim |"    Color C_TEXT_ATR
      Else
*         @ 23, 01 Say "          " Color C_MOLD_ATR
      EndIf

      nTecla := Inkey(0)

      Do Case
        Case nTecla == K_UP         ; nBrowse:Up()       ; Loop
        Case nTecla == K_DOWN       ; nBrowse:Down()     ; Loop
        Case nTecla == K_LEFT       ; nBrowse:Left()     ; Loop
        Case nTecla == K_RIGHT      ; nBrowse:Right()    ; Loop
        Case nTecla == K_HOME       ; nBrowse:Home()     ; Loop
        Case nTecla == K_END        ; nBrowse:End()      ; Loop
        Case nTecla == K_PGUP       ; nBrowse:PageUp()   ; Loop
        Case nTecla == K_PGDN       ; nBrowse:PageDown() ; Loop
        Case nTecla == K_CTRL_PGUP  ; nBrowse:GoTop()    ; Loop
        Case nTecla == K_CTRL_PGDN  ; nBrowse:GoBottom() ; Loop
        Case nTecla == K_CTRL_HOME  ; nBrowse:PanHome()  ; Loop
        Case nTecla == K_CTRL_END   ; nBrowse:PanEnd()   ; Loop
        Case nTecla == K_CTRL_LEFT  ; nBrowse:PanLeft()  ; Loop
        Case nTecla == K_CTRL_RIGHT ; nBrowse:PanRight() ; Loop
        Case nTecla == K_ESC
              DbCloseArea()
              Exit
        Case nTecla == -2
           Campo := nBrowse:ColPos
           TBOrdenar("ESTOQUE", Campo)
           nBrowse:GoTop()
           nBrowse:RefreshAll()
           Loop
        Case nTecla == -3
           Campo := nBrowse:ColPos
           TBBuscar("ESTOQUE", Campo)
           nBrowse:RefreshAll()
           Loop
           Endif
        EndCase
   Enddo
Return NIL
Agradeço a ajuda.
Abraço
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

AJUDA - Estou apanhando do TBrowse

Mensagem por JoséQuintas »

No Clipper eu usava uma rotina da superlib.
É detectar pelo Inkey igual teclado.
Cuidado para não usar uma LIB não preparada pra Windows, pode usar 100% de CPU.
Se for Clipper 5.3, acho que não vai precisar de LIB adicional.

Não sei se pensou nisso: já que está reescrevendo o fonte, pode ser interessante testar no Harbour.
Pode facilitar ou não, depende dos fontes, então o único jeito de saber é você testando.
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/
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

AJUDA - Estou apanhando do TBrowse

Mensagem por Claudio Soto »

Para cambiar el color de una columna se puede usar la variable defColor de la clase TBColumn.

oCol := oBrowse:getColumn (nCol)
oCol:defColor := { n1, n2, n3, n4 }

donde n1..n4 son índices al conjunto de colores especificados en
oBrowse:colorSpec

n1..n4 = color dato, highlight,
Header, footer
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

AJUDA - Estou apanhando do TBrowse

Mensagem por JoséQuintas »

Comentários sobre o fonte:

Código: Selecionar todos

    If Tecla = -2 // F3
       Do program1
    ElseIf Tecla = -3 // F4
       Do program2
    ElseIf Tecla = -4 // F5
       Do program3
    ElseIf Tecla = 27 // ESC 
       Saida := .t.
       Exit
    Endif
Ao invés de poluir o fonte com anotações, melhor usar as facilidades que existem na linguagem

Código: Selecionar todos

#include "inkey.ch"
...
    If Tecla = K_F3
       Do program1
    ElseIf Tecla = K_F4
       Do program2
    ElseIf Tecla = K_F5
       Do program3
    ElseIf Tecla = K_ESC
       Saida := .t.
       Exit
    Endif
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/
Responder