cor no tbrowse
Moderador: Moderadores
cor no tbrowse
Compilei teu exemplo, mas deu erro, não pude testar.
Mas, pelo que entendi, a questão é só a colorspec, correto? Não bastaria acrescer esta parte na minha função? Por que isso não está funcionando?
Chegou o livro que vc me indicou, comecei a ler, mas ainda não cheguei nesta parte.
Quintas, realmente seria melhor do jeito que vc mencionou, mas ainda não sei como faria isso.
Mas, pelo que entendi, a questão é só a colorspec, correto? Não bastaria acrescer esta parte na minha função? Por que isso não está funcionando?
Chegou o livro que vc me indicou, comecei a ler, mas ainda não cheguei nesta parte.
Quintas, realmente seria melhor do jeito que vc mencionou, mas ainda não sei como faria isso.
Inacio de Carvalho Neto
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
cor no tbrowse
Olá!
Criei um exemplo completo e funcional, atendendo a tua necessidade e que funciona no meu ambiente, conforme print da tela. Se você simplesmente compilar e executar no teu ambiente, não vai funcionar. Pelo menos alterou a string de conexão? Criou as tabelas conforme script que anexei?
Como sempre, econômico ao fornecer informações vitais... que erro? Onde? Na compilação? Na execução?cjp escreveu:Compilei teu exemplo, mas deu erro, não pude testar.
Criei um exemplo completo e funcional, atendendo a tua necessidade e que funciona no meu ambiente, conforme print da tela. Se você simplesmente compilar e executar no teu ambiente, não vai funcionar. Pelo menos alterou a string de conexão? Criou as tabelas conforme script que anexei?
Sim, foi exatamente isto que indiquei:cjp escreveu:Mas, pelo que entendi, a questão é só a colorspec, correto? Não bastaria acrescer esta parte na minha função?
alxsts escreveu:Estude, adapte à tua necessidade e informe se funcionou.
Como vou saber?cjp escreveu:Por que isso não está funcionando?
Espero que te ajude. Ensina muito sobre get system, codeblock e tbrowse.cjp escreveu:Chegou o livro que vc me indicou, comecei a ler, mas ainda não cheguei nesta parte.
Então faça como ele indicou. Boa sorte!cjp escreveu:Quintas, realmente seria melhor do jeito que vc mencionou, mas ainda não sei como faria isso.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
cor no tbrowse
Desculpe a falt de informações.Como sempre, econômico ao fornecer informações vitais... que erro? Onde? Na compilação? Na execução?
Criei um exemplo completo e funcional, atendendo a tua necessidade e que funciona no meu ambiente, conforme print da tela. Se você simplesmente compilar e executar no teu ambiente, não vai funcionar. Pelo menos alterou a string de conexão? Criou as tabelas conforme script que anexei?
Erro na execução (segue em anexo).
Alterei a string de conexão e criei as tabelas sim.
Quero deixar claro que eu quis dizer que o modo do Quintas é melhor do que o meu modo de fazer o tbrowse. Não estava comparando com o teu exemplo.Então faça como ele indicou. Boa sorte!
Inacio de Carvalho Neto
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
cor no tbrowse
Olá!
adUseClient é uma constante manifesta, definida no arquivo Ado.ch:
Como sabemos, constantes manifestas são diretivas utilizadas pelo pré-processador.
Se você consegue compilar, é porque o arquivo Ado.ch existe no teu ambiente. Verifique se nele consta
Boa sorte!
adUseClient é uma constante manifesta, definida no arquivo Ado.ch:
Código: Selecionar todos
#DEFINE adUseClient 3As diretivas de pré-processador são case-sensitive, ou seja adUseClient é diferente de aduseclient. Provavelmente você alterou a linha 52 do fonte que postei e escreveu adUseClient de forma diferente. Tem que estar exatamente como está no arquivo Ado.ch, ou seja, a linha 52 deve estar assim:Wikipedia escreveu: Qual a função do pré-processador?
O pré-processador é um programa que faz alguns processamentos simples antes do compilador. Ele é executado automaticamente todas as vezes que seu programa é compilado, e os comandos a serem executados são dados através de diretivas do pré-processador.
Código: Selecionar todos
oCn:CursorLocation := adUseClientCódigo: Selecionar todos
#DEFINE adUseClient 3[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
cor no tbrowse
Então, na primeira vez que tentei compilar, deu falta do Ado.ch. Achei ele numa versão anterior que tinha aqui, copiei na pasta, e compilou. Não mexi em nada nele (nem saberia).
Agora fui verificar, e tem sim #DEFINE adUseClient 3 nele.
Também não alterei oCn:CursorLocation := adUseClient do teu exemplo. Só mexi nele na string de conexão.
Agora fui verificar, e tem sim #DEFINE adUseClient 3 nele.
Também não alterei oCn:CursorLocation := adUseClient do teu exemplo. Só mexi nele na string de conexão.
Inacio de Carvalho Neto
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
cor no tbrowse
Olá!
Bom... aí foge ao meu alcance para ajudar. Alguma coisa errada tem. Talvez esteja pegando de outro lugar. Verifique. Coloque no teu fonte o próprio #define:
Bom... aí foge ao meu alcance para ajudar. Alguma coisa errada tem. Talvez esteja pegando de outro lugar. Verifique. Coloque no teu fonte o próprio #define:
Código: Selecionar todos
#define adUseClient 3[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
cor no tbrowse
Então, realmente o problema era na minha Ado.ch aqui. Resolvi este e outros erros que apareceram depois da mesma forma.
Enfim, tua função funcionou perfeitamente aqui.
Agora preciso fazer funcionar na minha função.
Primeiro, testei colocar esta parte na minha função (já tinha feito isso antes):
Mas continua não funcionando.
Afora isto, a única parte que eu identifiquei na tua função que pode ter alguma coisa a ver com a cor é esta:
Realmente tem a ver? Não achei nenhuma chamada a ela.
Teria alguma outra parte?
Enfim, tua função funcionou perfeitamente aqui.
Agora preciso fazer funcionar na minha função.
Primeiro, testei colocar esta parte na minha função (já tinha feito isso antes):
Código: Selecionar todos
// Paint TBrowse current line...
oTbr:ColorRect( { oTbr:RowPos, oTbr:LeftVisible, oTbr:RowPos, oTbr:RightVisible }, { 2, 1 } )
// ... and current cell in different colors
If oTbr:colPos == 3 .And. At( "TOTAL ", Upper( Eval( oTBr:getColumn( 3 ):block ) ) ) > 0
oTbr:ColorRect( { oTbr:rowPos, oTbr:colPos, oTbr:rowPos, oTbr:colPos }, { 6, 6 } )
Else
oTbr:ColorRect( { oTbr:rowPos, oTbr:colPos, oTbr:rowPos, oTbr:colPos }, { 3, 2 } )
Endif
oTbr:refreshCurrent()
Afora isto, a única parte que eu identifiquei na tua função que pode ter alguma coisa a ver com a cor é esta:
Código: Selecionar todos
STATIC FUNCTION Rgb( r, g, b )
RETURN ( r + ( g * 256 ) + ( b * 256 * 256 ) )
Teria alguma outra parte?
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
cor no tbrowse
Tem um erro grave aí, ou mais.....
Seus erros nunca se limitam a parte que mostra....
Está explícito aí o erro.
Pinta as cores.... depois manda repintar com refreshCurrent().... aí não tem cor que se mantenha.
Além disso.... como diz o comentário no fonte, isso é referente a pintar a linha atual e coluna atual, não pra definir a cor das colunas.
Seus erros nunca se limitam a parte que mostra....
Código: Selecionar todos
// Paint TBrowse current line...
oTbr:ColorRect( { oTbr:RowPos, oTbr:LeftVisible, oTbr:RowPos, oTbr:RightVisible }, { 2, 1 } )
// ... and current cell in different colors
If oTbr:colPos == 3 .And. At( "TOTAL ", Upper( Eval( oTBr:getColumn( 3 ):block ) ) ) > 0
oTbr:ColorRect( { oTbr:rowPos, oTbr:colPos, oTbr:rowPos, oTbr:colPos }, { 6, 6 } )
Else
oTbr:ColorRect( { oTbr:rowPos, oTbr:colPos, oTbr:rowPos, oTbr:colPos }, { 3, 2 } )
Endif
oTbr:refreshCurrent()
Pinta as cores.... depois manda repintar com refreshCurrent().... aí não tem cor que se mantenha.
Além disso.... como diz o comentário no fonte, isso é referente a pintar a linha atual e coluna atual, não pra definir a cor das colunas.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
cor no tbrowse
No final de tudo, tá querendo deixar genérico o que não é genérico, e tá complicando cada vez mais a rotina que deveria ser genérica.
o tbrowse é: o browse e as colunas
ou vai mexer no browse, ou nas colunas, e não no resto (geralmente).
o tbrowse é: o browse e as colunas
ou vai mexer no browse, ou nas colunas, e não no resto (geralmente).
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
cor no tbrowse
No meu browse genérico passo 1 array, e a rotina de funções, e coisas extras quando precisa.
o array tem as colunas, com título, conteúdo e COR.
O browse genérico apenas faz uso disso.
Já te falei isso da outra vez.
o array tem as colunas, com título, conteúdo e COR.
O browse genérico apenas faz uso disso.
Já te falei isso da outra vez.
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/
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/
cor no tbrowse
Eu não sabia que o refreshcurrent() iria repintar. Como não entendo de tbrowse, apenas copiei o que estava no modelo do alxsts.Está explícito aí o erro.
Pinta as cores.... depois manda repintar com refreshCurrent().... aí não tem cor que se mantenha.
Além disso.... como diz o comentário no fonte, isso é referente a pintar a linha atual e coluna atual, não pra definir a cor das colunas.
O que vc me sugere? Eu não sei fazer diferente. Um exemplo que vc me deu no passado de tbrowse genérico não funcionou aqui. Então, estou fazendo o que consigo dentro dos meus limitados conhecimentos.No final de tudo, tá querendo deixar genérico o que não é genérico, e tá complicando cada vez mais a rotina que deveria ser genérica.
o tbrowse é: o browse e as colunas
ou vai mexer no browse, ou nas colunas, e não no resto (geralmente).
Inacio de Carvalho Neto
cor no tbrowse
Ah, esqueci na resposta anterior: tirei o oTBrowse:refreshCurrent() pra testar, mas continua não funcionando.
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
cor no tbrowse
Primeiro crie um pra uma situação.
Veja as partes comuns que mudam de um pra outro, e coloque como parâmetro.
Um array com título das colunas, conteúdo e cor, e mais uma variável pra função de usuário.
Isso resolve a maioria dos casos.
Veja as partes comuns que mudam de um pra outro, e coloque como parâmetro.
Um array com título das colunas, conteúdo e cor, e mais uma variável pra função de usuário.
Isso resolve a maioria dos casos.
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/
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/
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
cor no tbrowse
Olá!
É difícil consertar código com problema sem ver o código... acho que deveria mostrar o que está fazendo, se possível, postando a função completa.
Não, não tem nada a ver. Pode deletar estas linhas. Eram de outro fonte e ficaram neste, indevidamente.cjp escreveu:Afora isto, a única parte que eu identifiquei na tua função que pode ter alguma coisa a ver com a cor é esta:
Não... não tem erro aí. A linha do refreshCurrent() tem que ser mantida, pela seguinte razão: após a estabilização ( forceStable() ), o colorBlock da linha corrente é alterado. Para que ela seja repintada, com o novo colorBlock, é preciso invocar o método refreshCurrent().JoséQuintas escreveu:Está explícito aí o erro. Pinta as cores.... depois manda repintar com refreshCurrent().... aí não tem cor que se mantenha.
Quando escreve isto, o que não está funcionando? Somente as cores ou algo específico da tua rotina?cjp escreveu:mas continua não funcionando
É difícil consertar código com problema sem ver o código... acho que deveria mostrar o que está fazendo, se possível, postando a função completa.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
cor no tbrowse
ColorRect() altera as cores, então refreshCurrent() tem que vir antes de alterar as cores.alxsts escreveu: A linha do refreshCurrent() tem que ser mantida
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/
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/
