Clipper On Line • Ver Tópico - Browse com ADO

Browse com ADO

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Browse com ADO

Mensagempor JoséQuintas » 07 Set 2020 14:47

E não é que achei SET CURSOR OFF em fontes meus, fontes do Linux, e fontes de terceiros.
Aqui são meus fontes, não tem a ver com o problema do post, apenas mostrando que também tem nos meus fontes.

cursor.png


E no meu aplicativo, \INTEGRA\ onde mais tem é justamente no tbrowse.
Já aproveitei e retirei TODOS os SET CURSOR OFF
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14689
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 864 vezes

Browse com ADO

Mensagempor JoséQuintas » 07 Set 2020 15:11

No Harbour também, mas é no browse e não no tbrowse.

cursor.png


Só comentário:
O browse em meus fontes, é o mesmo do Harbour, são "originais de fábrica".

No final, o post serviu pra descobrir um fonte que virou lixo no meu aplicativo.
É que deixei de usar DBF, então tanto faz o original ou o alterado pra bloquear registro.

Só vou manter o fonte do tbrowse, porque o meu tem opção a mais, que enviei pro Harbour, e tá lá pendente pra merge há mais de 1 ano.

março/2019

https://github.com/harbour/core/pull/185

Só adicionaram o label de "melhoria", "enhancement", e está esperando o clique de alguém pra confirmar.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14689
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 864 vezes

Browse com ADO

Mensagempor Vlademiro » 07 Set 2020 15:20

Existe a possibilidade de ir retirando as rotinas até o cursor aparecer ? Assim pelo menos dá pra saber onde está ocorrendo. Se vc isolar a função que está causando isso já é um bom começo. Depois é descobrir a causa mas em um contexto menor.

Esses erros seguem um padrão. Primeiro tem que descobrir onde ele ocorreu, depois descobrir a causa.
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 674
Data de registro: 11 Jul 2005 02:46
Curtiu: 14 vezes
Mens.Curtidas: 50 vezes

Browse com ADO

Mensagempor JoséQuintas » 07 Set 2020 17:57

Tem outra coisa que lembrei:
Já usou tbrowse em outros lugares do aplicativo.
Some em outros ou somente nesse?
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14689
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 864 vezes

Browse com ADO

Mensagempor cjp » 07 Set 2020 18:09

Já procurei em todos os fontes, não tem nenhum SET CURSOR OFF.
Também não uso essa GUI mencionada.
O que mais estranho é que o browse já está iniciando sem o cursor. Então, não deve ser nenhuma função chamada dentro dele.
Eu uso esse mesmo tbrowse para várias funções, e o problema ocorre em todas elas.
Vou tentar fazer um novo tbrowse para uma só função, só com o que precisa essa, vamos ver assim volta a exibir o cursor. Já posto o resultado.
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1138
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 6 vezes
Mens.Curtidas: 10 vezes

Browse com ADO

Mensagempor Vlademiro » 07 Set 2020 18:11

Porque vc não vai testando a existência do cursor em vários pontos até ele sumir ?
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 674
Data de registro: 11 Jul 2005 02:46
Curtiu: 14 vezes
Mens.Curtidas: 50 vezes

Browse com ADO

Mensagempor cjp » 07 Set 2020 18:39

Fiz um novo tbrowse para apenas uma função.
Como esperado, funcionou o cursor.
Então, de fato, deve ter algum problema no meu tbrowse anterior impedindo o cursor. O problema é descobrir onde está o problema.
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1138
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 6 vezes
Mens.Curtidas: 10 vezes

Browse com ADO

Mensagempor cjp » 07 Set 2020 19:12

Porque vc não vai testando a existência do cursor em vários pontos até ele sumir ?


Então, o problema é que o tbrowse já aparece sem o cursor. Ou seja, ele some logo no início, na maioria das vezes. Tem situações em que o cursor aparece, mas não tem um padrão, não dá pra saber quando aparece, quando não.

Outra coisa que notei: eventualmente, quando teclo setas pra cima ou pra baixo, o cursor aparece, mas logo some de novo.
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1138
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 6 vezes
Mens.Curtidas: 10 vezes

Browse com ADO

Mensagempor JoséQuintas » 07 Set 2020 19:40

cjp escreveu:Então, o problema é que o tbrowse já aparece sem o cursor. Ou seja, ele some logo no início, na maioria das vezes. Tem situações em que o cursor aparece, mas não tem um padrão, não dá pra saber quando aparece, quando não.


Opa.
"ele some logo no início, na maioria das vezes"

Isso pode significar que ele some após determinada ação.

Vamos lá... não altere nada.
Entre no aplicativo e abra o browse, veja se o cursor está lá.
Esse é o primeiro ponto.
Repita até mais de uma vez.
Se ele sempre aparece, então é uma chamada a alguma coisa que faz sumir.

Uma coisa é abrir o browse ANTES do problema, e outra coisa é abrir depois do problema, que já vai estar sem cursor.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14689
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 864 vezes

Browse com ADO

Mensagempor cjp » 07 Set 2020 23:34

Não te entendi bem. Como quer que eu abra o browse antes do problema? Eu disse que ele já está abrindo sem o cursor, na maioria das vezes. E eu não sei quando vai abrir com ou sem o cursor.
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1138
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 6 vezes
Mens.Curtidas: 10 vezes

Browse com ADO

Mensagempor JoséQuintas » 08 Set 2020 00:24

Entrando no aplicativo do zero, indo até a rotina, aparece cursor ou não?
Ou até isso é só de vez em quando?
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14689
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 864 vezes

Browse com ADO

Mensagempor cjp » 08 Set 2020 01:41

Ah, sim. No meu aplicativo o cursor está normal. É só no tbrowse que o cursor some.
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1138
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 6 vezes
Mens.Curtidas: 10 vezes

Browse com ADO

Mensagempor JoséQuintas » 08 Set 2020 07:51

cjp escreveu:Ah, sim. No meu aplicativo o cursor está normal. É só no tbrowse que o cursor some.


Eu quis dizer o seguinte:

você disse que tem horas que o cursor some do tbrowse
Se você entrar no aplicativo, do zero, e ir até o tbrowse, ao abrir o tbrowse pela primeira vez:

a) cursor sempre aparece
b) cursor sempre some
c) tem hora que sim e hora que não

Esse é o ponto de partida pra procurar problema, como ele aparece inicialmente.
E se antes era igual ou não.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14689
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 864 vezes

Browse com ADO

Mensagempor cjp » 08 Set 2020 09:11

Ah, entendi.
Fiz o teste algumas vezes. Em todas, até agora, o cursor não apareceu, já na primeira tentativa. E foi só no tbrowse, pois fora dele o cursor apareceu normalmente.
Uma única exceção: em uma única função que chama o mesmo tbrowse, o cursor quase sempre aparece. Nos testes que fiz agora, ele apareceu sempre, mas somente nessa função.
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1138
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 6 vezes
Mens.Curtidas: 10 vezes

Browse com ADO

Mensagempor JoséQuintas » 08 Set 2020 21:46

Pelo menos agora tem uma referência.

Uma chamada que quase sempre funciona, e outra que quase sempre não funciona.
O que elas tem de diferente?
Chamadas por SET KEY, ou num prompt, ou misturadas com tbrowse?

Lembro daquele fonte que precisou ajuda, onde misturava o tbrowse com rotina de menu.

Eu tenho dois tipos de tbrowse, que agora reduzi pra ... sei lá... um e meio...

Um deles é um tbrowse passando coordenadas, que só tem o tbrowse.
Esse é usado, por exemplo, em telas compostas, como em pedidos/produtos de pedido, onde pode sofrer alteração

O outro é pra pesquisas em geral, abre na tela inteira, coloca ícones, etc.
Este cuida apenas da tela, e chama o anterior.

Então, não tem comportamento diferente, é sempre igual.
O normal do tbrowse é passar função de usuário, e essa função de usuário é que desvia pra outras rotinas.
Desta forma o funcionamento fica sempre igual.

Até uma coisa interessante no Harbour é que o tbrowse tem um SetKey(), onde a gente pode programar teclas pra serem acionadas no tbrowse.
A idéia do tbrowse é justamente adicionar opções, sem ter que ficar criando várias e várias rotinas.
E com isso, vai ter o mesmo comportamento no aplicativo inteiro.

Outra coisa boa no Harbour é o tbrowse aceitar codeblock como função de usuário.
Isso permite criar uma função que pode ser STATIC, o que facilita pra não ter que ficar inventando nomes.

Acho que cheguei a criar um "esqueleto" pra isso naquela rotina do post que mencionei.
Algo como MeuBrowse( linha, coluna, linha, coluna, { || FuncaoDeUsuario() } )

Então, de um modo geral é chamar a rotina de tbrowse e passar a função.
Depois, na função, trata o que precisar.

STATIC FUNCTION FuncaoDeUsuario()

IF LastKey() == K_INS
   RotinaInclusao()
ELSEIF LastKey() == K_DEL
   RotinaExclusao()
ELSEIF LastKey() == K_ENTER
   RotinaSelecao()
ENDIF
RETURN NIL


Dessa forma, não precisa ficar mexendo na rotina de tbrowse, basta passar a função de usuário com adicionais.
E o mais importante: o comportamento do tbrowse vai ser sempre o mesmo.

Se começa a fazer rotinas de tbrowse variadas, cada uma com suas exceções/diferenças... com certeza vai acabar com comportamentos diferentes.
Na função de usuário acima, por exemplo, se chega em alguma rotina sem cursor, coloca nessa função de usuário o SET CURSOR ON.
Isso vai fazer com que qualquer rotina chamada tenha cursor.

Agora verifique as suas duas rotinas, e veja se consegue descobrir algum detalhe diferente, alguma mistura de tbrowse com outras coisas.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14689
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 864 vezes

Anterior Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro