Lixo no GET

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Lixo no GET

Mensagem por Netavin »

Boa tarde amigos do Fórum.
Possuo uma rotina que localiza o nome enquanto se digita. É uma rotina aproveitada daqui mesmo do COL e adaptada ao meu sistema.
Ocorre que antes que eu comece digitar, aparece um caractere abelhudo "ú" e a rotina fica sem efeito.
Alguém poderia dar uma dica de como eliminar essa "traça" , por favor ?

Forte abraço a todos!

Netavin.
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: LIXO NO GET

Mensagem por alaminojunior »

Acho que tem a ver com a página de códigos utilizada.
Poste o trecho pra gente ver se descobre o que pode ser.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: LIXO NO GET

Mensagem por sygecom »

É assim no chute não é facil, post parte do codigo que envolva o erro e vamos tentar achar esse abelhudo que nem você disse.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Re: LIXO NO GET

Mensagem por Netavin »

Boa noite a todos!
Eis a rotina a que me referi no post anterior...

Código: Selecionar todos

#include "inkey.ch"
FUNCTION BUSCANO()
LOCAL tam, buf, get, pos, lin, col, tec, n_nsx
N_NSX := INDEXORD()
DBSETORDER(1) 
get := GETACTIVE()
lin := get:row
col := get:col
buf := get:VarGet()
tam := LEN(buf)
pos := 1
Set cursor on
DO WHILE .T.
   SETPOS(lin, col)
   DISPOUT(buf)
   SETPOS(lin, col - 1 + pos)
   tec := INKEY(0)
   IF tec >= 32 .AND. tec <= 255
      TEC := ASC( UPPER( CHR( TEC )))
      buf := LEFT(buf, pos - 1) + CHR(tec) + SUBS(buf, pos + 1)
      IF DBSEEK(LEFT(buf, pos), .T.)
         buf := LEFT(&(INDEXKEY(0)), tam)
      ELSE
         buf := LEFT(buf, pos) + SPACE( TAM - POS)
      ENDIF
      pos := MIN(tam, pos + 1)
   ELSEIF tec == K_LEFT
      pos := MAX(1, pos - 1)
   ELSEIF tec == K_RIGHT
      pos := MIN(tam, pos + 1)
   ELSEIF tec == K_HOME
      pos := 1
   ELSEIF tec == K_END
      pos := MIN(tam, LEN(TRIM(buf)) + 1)
   ELSEIF tec == K_BS
      IF pos > 1
         pos --
         buf := LEFT(buf, pos - 1) + SUBS(buf, pos + 1) + " "
      ENDIF
   ELSE
      KEYB CHR(tec)
      get:VarPut(buf)
      get:UpdateBuffer()
      DBSETORDER( N_NSX )
      RETURN .T.
   ENDIF
ENDDO
... alinha que chama Buscano() é a seguinte:

Código: Selecionar todos

@ 18,07 SAY "Nome        :"   Get fnome PICT "@!" When Buscano() VALID !Empty(fnome)
    READ
Obrigado pela atenção !!!
Um abraço!
Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: LIXO NO GET

Mensagem por sygecom »

Olá Netavin,
Acabei de testar sua função aqui e não veio lixo algum no inicio do GET. se poder produza um pequeno exemplo que eu possa simular o erro aqui.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Re: LIXO NO GET

Mensagem por Netavin »

Olá, bom dia !
caro amigo Syge, hoje o problema não ocorreu. É cabuloso né !! Acho que assim sendo, deve ser algum "efeito colateral" do uso de alguma outra rotina usada antes dessa.Que acha ?

Obrigado e um forte abraço!

Netavin.
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: LIXO NO GET

Mensagem por sygecom »

O Negocio é tentar limpar esse GET, antes fo READ ou dar um CLEAR GETS antes de chegar no GET FNOME
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: LIXO NO GET

Mensagem por alaminojunior »

Para entrar neste get, é preciso teclar alguma combinação de teclas antes ?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: LIXO NO GET

Mensagem por asimoes »

Olá Netavin,

Você pode testar o seguinte:

Quando o get ficar ativo.

FUNCTION BUSCANO()
LOCAL tam, buf, get, pos, lin, col, tec, n_nsx
N_NSX := INDEXORD()
DBSETORDER(1)
get := GETACTIVE()
lin := get:row
col := get:col
buf := get:VarGet()

O teste:

if buf == "ú" //(o caracter abelhudo)
altd() //para debugar , não esqueça de marcar o /b na compilação.
//se parar aqui você saberá que vem de fora, ai neste caso use o clear gets.
endif

Você pode testar esta instrução em outros techos da função.

[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Re: LIXO NO GET

Mensagem por Netavin »

... boa tarde amigos !
Caro Alamino, não tem tecla de atalho. A função é chamada na linha do Get.
.
.
Caro Asimões, vou fazer este teste...

Grato a todos !

[]´s

Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Re: LIXO NO GET

Mensagem por Netavin »

Bom dia a todos !

Problema resolvido! É uma caixa de surpresa mesmo, não ?
Alguém aí imaginou que era só desabiliar o mouse para consertar esse problema ??
Mas isso não está certo !!! Tem que haver outra saída.

Um abraço !

Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
momente
Usuário Nível 3
Usuário Nível 3
Mensagens: 496
Registrado em: 03 Mar 2005 11:53
Localização: São Carlos-SP
Contato:

Re: LIXO NO GET

Mensagem por momente »

Amigos,

Voltando a este tópico, gostaria de saber se existe alguma maneira mais simples de evitar que o mouse jogue alguma sujeira no get, sem ter que desabilita-lo, notei que quando um get esta aguardando alguma entrada e o mouse for tocado, o get é carregado com esta sujeira "Ú".

Valeu!
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: LIXO NO GET

Mensagem por Itamar M. Lins Jr. »

Get ou Inkey() ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
momente
Usuário Nível 3
Usuário Nível 3
Mensagens: 496
Registrado em: 03 Mar 2005 11:53
Localização: São Carlos-SP
Contato:

Re: LIXO NO GET

Mensagem por momente »

Itamar,

Quando meu sistema entra em um get esperando a entrada de alguma informação do teclado, se tocar no mouse o get é carregado como o caracter "Ú", para não acontecer é necessário desabilitar o mouse, mas gostaria de saber se isso tem como ser feito de outra maneira. Outra coisa isso ocorre apenas no xharbour 1.2.1

Valeu!
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Re: LIXO NO GET

Mensagem por Netavin »

tarde pa tudo !

Caro momente, não é so no 1.2. Pois o meu é 1.0.0

Abraço!

Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Responder