Carregar Dbedit executando uma funcao !!!
Moderador: Moderadores
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Carregar Dbedit executando uma funcao !!!
Olá..
No meu dbedit a tecla F5 serve para executar a funcao de pesquisa de nome..
O meu cliente quer que quando entra no dbedit ele já execute automaticamente a pesquisa por nome...
Já tentei de diversas formas e nao consegui..
Estava precisando mudar a cursor para a direita (sair do campo codigo e ir para o nome) consegui colocando
keyboard chr(4).
DBEDIT(aCoord[1],aCoord[2]+1,aCoord[3]-2,aCoord[4]-1,aCampo,"TECLAPESQ",,aTitulo,"Í"," ¦ ")
mas se coloco
keyboard chr(-4)
DBEDIT(aCoord[1],aCoord[2]+1,aCoord[3]-2,aCoord[4]-1,aCampo,"TECLAPESQ",,aTitulo,"Í"," ¦ ")
ou
keyboard chr(K_F5)
DBEDIT(aCoord[1],aCoord[2]+1,aCoord[3]-2,aCoord[4]-1,aCampo,"TECLAPESQ",,aTitulo,"Í"," ¦ ")
Não surte nenhum efeito...
Tentei tb..
keyboard chr(4) + chr(-4)
DBEDIT(aCoord[1],aCoord[2]+1,aCoord[3]-2,aCoord[4]-1,aCampo,"TECLAPESQ",,aTitulo,"Í"," ¦ ")
Também não dá nada..
não executa a função da tecla F5, mas quando entra no dbedit e pressiona F5 funciona...
Alguem sabe se é possivel fazer isso ??
No meu dbedit a tecla F5 serve para executar a funcao de pesquisa de nome..
O meu cliente quer que quando entra no dbedit ele já execute automaticamente a pesquisa por nome...
Já tentei de diversas formas e nao consegui..
Estava precisando mudar a cursor para a direita (sair do campo codigo e ir para o nome) consegui colocando
keyboard chr(4).
DBEDIT(aCoord[1],aCoord[2]+1,aCoord[3]-2,aCoord[4]-1,aCampo,"TECLAPESQ",,aTitulo,"Í"," ¦ ")
mas se coloco
keyboard chr(-4)
DBEDIT(aCoord[1],aCoord[2]+1,aCoord[3]-2,aCoord[4]-1,aCampo,"TECLAPESQ",,aTitulo,"Í"," ¦ ")
ou
keyboard chr(K_F5)
DBEDIT(aCoord[1],aCoord[2]+1,aCoord[3]-2,aCoord[4]-1,aCampo,"TECLAPESQ",,aTitulo,"Í"," ¦ ")
Não surte nenhum efeito...
Tentei tb..
keyboard chr(4) + chr(-4)
DBEDIT(aCoord[1],aCoord[2]+1,aCoord[3]-2,aCoord[4]-1,aCampo,"TECLAPESQ",,aTitulo,"Í"," ¦ ")
Também não dá nada..
não executa a função da tecla F5, mas quando entra no dbedit e pressiona F5 funciona...
Alguem sabe se é possivel fazer isso ??
"Eu e minha casa servimos ao Senhor e você
"
Re: Carregar Dbedit executando uma funcao !!!
Ola Rubens,
Coloque ai o codigo da função "TECLAPESQ", pois pelo que vc indicou acima deveria funcionar normalmente.
Ate+,
Coloque ai o codigo da função "TECLAPESQ", pois pelo que vc indicou acima deveria funcionar normalmente.
Ate+,
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Re: Carregar Dbedit executando uma funcao !!!
Este é o código da funcao "TECLAPESQ"
----------------------------------------------
Nota de Moderação: Mensagem foi editada para colocar o BBCode
Código: Selecionar todos
FUNCTION TECLAPESQ(nMod)
LOCAL GETLIST := {}, nRecno
IF nMod=4
IF LASTKEY() == 13
cVar := aCampo[1]
cVar := &cVar.
SETCURSOR(0) ; RETURN(0)
ELSEIF LASTKEY() == K_INS
EVAL(bExecuta)
SETCURSOR(0)
ELSEIF LASTKEY() == 27
IF(VALTYPE(&(aCampo[1])) == "N",cVar := 0,cVar := SPACE(LEN(&(aCampo[1]))))
SETCURSOR(0) ; RETURN(0)
ELSEIF LASTKEY() == K_F2
nRecno := RECNO() ; cSalvTela := SAVESCREEN(24,00,24,79) ; nOrd := INDEXORD()
DBSETORDER(nOrdPes1)
COR("MENU") ; @ 24,00 CLEAR TO 24,79
cPer := IF(VALTYPE(&(aCampo[nF2])) == "C",SPACE(LEN(&(aCampo[nF2]))),0)
@ 24,10 SAY aTitulo[nF2] + ": " GET cPer PICTURE aPict[nF2] VALID IF(aPict[nF2] == "999999",ZERO(@cPer,6),.T. == .T.)
nOldCursor := SETCURSOR(2)
READ
IF EMPTY(cPer)
RESTSCREEN(24,00,24,79,cSalvTela) ; DBSETORDER(nOrd) ; SETCURSOR(0)
RETURN(1)
ENDIF
IF lZero ; cPer := STRZERO(VAL(cPer),LEN(cPer)) ; ENDIF
cPer:= IF(VALTYPE(cPer) == "C",ALLTRIM(cPer),cPer)
SETCURSOR(nOldCursor)
COR("MENU") ; @ 24,00 CLEAR TO 4,79
DBGOTOP()
IF !DBSEEK(cPer,.T.) ; BEEP() ; MENSAGEM("Desculpe, "+aTitulo[nF2]+" n„o encontrado !",3) ; DBGOTO(nRecno) ; RESTSCREEN(24,00,24,79,cSalvTela) ; SETCURSOR(0) ; ENDIF
RESTSCREEN(24,00,24,79,cSalvTela) ; DBSETORDER(nOrd)
SETCURSOR(0) ; RETURN(2)
ELSEIF LASTKEY() == K_F5
IF llF5
nRecno := RECNO() ; cSalvTela := SAVESCREEN(24,00,24,79) ; nOrd := INDEXORD()
DBSETORDER(nOrdPes2)
COR("MENU") ; @ 24,00 CLEAR TO 24,79
cPer := SPACE(LEN(&(aCampo[nF5])))
@ 24,10 SAY aTitulo[nF5] + ": " GET cPer PICTURE aPict[nF5] VALID IF(aPict[nF5] == "999999",ZERO(@cPer,6),.T. == .T.)
nOldCursor := SETCURSOR(2)
READ
cPer:= ALLTRIM(cPer)
SETCURSOR(nOldCursor)
COR("MENU") ; @ 24,00 CLEAR TO 4,79
IF EMPTY(cPer)
RESTSCREEN(24,00,24,79,cSalvTela) ; DBSETORDER(nOrd) ; SETCURSOR(0)
RETURN(1)
ENDIF
cPer := cEspaco+cPer
DBGOTOP()
IF !DBSEEK(cPer,.T.) ; BEEP() ; MENSAGEM("Desculpe, "+aTitulo[nF5]+" n„o encontrado !",3) ; DBGOTO(nRecno) ; RESTSCREEN(24,00,24,79,cSalvTela) ; SETCURSOR(0) ; ENDIF
RESTSCREEN(24,00,24,79,cSalvTela) ; DBSETORDER(nOrd)
SETCURSOR(0) ; RETURN(2)
ENDIF
ENDIF
RETURN(1)
ELSEIF nMod=1
BEEP()
MENSAGEM("In¡cio da Consulta !",3)
SETCURSOR(0) ; RETURN(1)
ELSEIF nMod=2
BEEP()
MENSAGEM("Fim da Consulta !",3)
SETCURSOR(0) ; RETURN(1)
ELSEIF nMod=3
BEEP()
BEEP()
MENSAGEM("N„o h dados cadastrados para consulta !",4)
SETCURSOR(0) ; RETURN(0)
ENDIF
RETURN(1)Nota de Moderação: Mensagem foi editada para colocar o BBCode
Código: Selecionar todos
no fonte acima.
[/color]"Eu e minha casa servimos ao Senhor e você
"
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Re: Carregar Dbedit executando uma funcao !!!
Realmente estranho...
Criei um teste
use clientes
keyboard chr(4)+chr(13)
dbedit()
e quando exectuto, funciona... ele muda para a coluna da direita e sai do programa com o enter... mas aí no dbedit que estou usando nao acontece nda somente muda para a coluna da direita
Rubens
Criei um teste
use clientes
keyboard chr(4)+chr(13)
dbedit()
e quando exectuto, funciona... ele muda para a coluna da direita e sai do programa com o enter... mas aí no dbedit que estou usando nao acontece nda somente muda para a coluna da direita
Rubens
"Eu e minha casa servimos ao Senhor e você
"
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Carregar Dbedit executando uma funcao !!!
Oi Rubens, talvez este tópico te ajude a implementar o que você está querendo: viewtopic.php?f=1&t=5901&p=26233#p26233
Eu acostumo utilizar TBROWSEs e no GET onde é geralmente inserido o código, coloco uma função validadora e faço com que a exibição daquele código seja mascarado através de função retornando a descrição daquele código. Essa validação pode ser feita através o KEYBOARD.
Eu acostumo utilizar TBROWSEs e no GET onde é geralmente inserido o código, coloco uma função validadora e faço com que a exibição daquele código seja mascarado através de função retornando a descrição daquele código. Essa validação pode ser feita através o KEYBOARD.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Re: Carregar Dbedit executando uma funcao !!!
Caro Rubens, ao postar trechos de codigo fonte, use as tags CODE antes do inicio do codigo e apos o termino para que possamos ver a endentacao do seu codigo. Clique na barra disponivel durante a ediçao da mensagm
Mais analisando o codigo postado, tente adequa-lo a este modelo.
No codigo abaixo:
Ate+
Mais analisando o codigo postado, tente adequa-lo a este modelo.
Código: Selecionar todos
FUNCTION TECLAPESQ
LOCAL GETLIST := {}, nRecno
do case
case modo = 1 .or. modo = 2
*aqui avisa sobre inicio e fim dos dados
case lastkey()=K_ENTER
*aqui seu codigo...
case lastkey()=K_INS
*aqui seu codigo...
case lastkey()=K_F5
*aqui seu codigo...
otherwise
return 1
endcase
Não entendi o pq do uso do IF em destaque, será q não é ai o problema?IF llF5
nRecno := RECNO() ; cSalvTela := SAVESCREEN(24,00,24,79) ; nOrd := INDEXORD()
DBSETORDER(nOrdPes2)
COR("MENU") ; @ 24,00 CLEAR TO 24,79
cPer := SPACE(LEN(&(aCampo[nF5])))
@ 24,10 SAY aTitulo[nF5] + ": " GET cPer PICTURE aPict[nF5] VALID IF(aPict[nF5] == "999999",ZERO(@cPer,6),.T. == .T.)
nOldCursor := SETCURSOR(2)
READ
cPer:= ALLTRIM(cPer)
SETCURSOR(nOldCursor)
COR("MENU") ; @ 24,00 CLEAR TO 4,79
IF EMPTY(cPer)
RESTSCREEN(24,00,24,79,cSalvTela) ; DBSETORDER(nOrd) ; SETCURSOR(0)
RETURN(1)
ENDIF
cPer := cEspaco+cPer
DBGOTOP()
IF !DBSEEK(cPer,.T.) ; BEEP() ; MENSAGEM("Desculpe, "+aTitulo[nF5]+" n„o encontrado !",3) ; DBGOTO(nRecno) ; RESTSCREEN(24,00,24,79,cSalvTela) ; SETCURSOR(0) ; ENDIF
RESTSCREEN(24,00,24,79,cSalvTela) ; DBSETORDER(nOrd)
SETCURSOR(0) ; RETURN(2)
ENDIF
ENDIF
return 1
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Re: Carregar Dbedit executando uma funcao !!!
Blz..
Pablo...
Realmente o que voce citou ao colega esta certo... mas veja bem.. a parte de retorno pesquisa está tudo ok.. O cliente entra na tela de venda e tem um get que pede o codigo do produto... se ele der ENTER, no campo vazio.. automaticamente é chamada a funcao pesqpro() que exibe um dbedit com os produtos cadastrados.. nesse dbedit tenho duas teclas de funcoes F2 e F5 - F2 pesquisa código F5 pesquisa nome... daí o cliente é um distribuidor atacadista, e os pedido facilmente chegam a 50 itens... então toda vez que entra na tela de pesquisa ele tem que pressionar F5 para pesquisar o produto.. imagina que canseira... o que ele me pediu é que atalhasse esse F5, ou seja quando ele pressionasse enter no campo código abriria o debedit já acionando a funcao F5.. imaginei que resolveria isso colocando um keyboard chr(-4) ou keyboard chr(K_F5) antes de chamar a funcao dbedit().. mas não tá funcionando... interessante é que se coloco keyboard chr(4) ele move o cursor para a direita mas não aciona a função.. Porquê
O keyboard simula uma seta para a direita, mas nao simula um F5
:%
Pablo...
Realmente o que voce citou ao colega esta certo... mas veja bem.. a parte de retorno pesquisa está tudo ok.. O cliente entra na tela de venda e tem um get que pede o codigo do produto... se ele der ENTER, no campo vazio.. automaticamente é chamada a funcao pesqpro() que exibe um dbedit com os produtos cadastrados.. nesse dbedit tenho duas teclas de funcoes F2 e F5 - F2 pesquisa código F5 pesquisa nome... daí o cliente é um distribuidor atacadista, e os pedido facilmente chegam a 50 itens... então toda vez que entra na tela de pesquisa ele tem que pressionar F5 para pesquisar o produto.. imagina que canseira... o que ele me pediu é que atalhasse esse F5, ou seja quando ele pressionasse enter no campo código abriria o debedit já acionando a funcao F5.. imaginei que resolveria isso colocando um keyboard chr(-4) ou keyboard chr(K_F5) antes de chamar a funcao dbedit().. mas não tá funcionando... interessante é que se coloco keyboard chr(4) ele move o cursor para a direita mas não aciona a função.. Porquê
O keyboard simula uma seta para a direita, mas nao simula um F5
:%
"Eu e minha casa servimos ao Senhor e você
"
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Re: Carregar Dbedit executando uma funcao !!!
Certo ...
Andril... me desculpem realmente nao sabia usar estes codigos dentro da mensagem..
Seguinte... como expliquei na mensagem que acabei de postar... a questao de usar o if ou do case, nao vai fazer diferença, porque aí tá funcionando... se eu entrar na consutla e pressionar F5 ela vai ser executada... O problema etá que o dbedit nao esta simulando o pressionamento da tecla F5 é como se nao tivesse nada no keyboard !!!
O If é porque a rotina é usada pelo sistema inteiro... eu posso controloar isso quando envio a funcao dbedit()... dentro da FUNCAO TECLAPESQ vai ser verificado se foi pressionado lF5 - .t.
Mas como já disse aí tá funcionando... o que esta acontecendo é que o dbedit() não está executando o que está armazenado no keybooard..
Rubens
Andril... me desculpem realmente nao sabia usar estes codigos dentro da mensagem..
Seguinte... como expliquei na mensagem que acabei de postar... a questao de usar o if ou do case, nao vai fazer diferença, porque aí tá funcionando... se eu entrar na consutla e pressionar F5 ela vai ser executada... O problema etá que o dbedit nao esta simulando o pressionamento da tecla F5 é como se nao tivesse nada no keyboard !!!
O If é porque a rotina é usada pelo sistema inteiro... eu posso controloar isso quando envio a funcao dbedit()... dentro da FUNCAO TECLAPESQ vai ser verificado se foi pressionado lF5 - .t.
Mas como já disse aí tá funcionando... o que esta acontecendo é que o dbedit() não está executando o que está armazenado no keybooard..
Rubens
"Eu e minha casa servimos ao Senhor e você
"
Re: Carregar Dbedit executando uma funcao !!!
Rubens,
Faça um teste, no inicio da sua funcao coloque:
Se reconhecer, o erro pode esta na estrutura usada no dbedit.
Qdo postei com DO CASE não quiz dizer que o problema era no comando,
somente usei como similar ao seu IF. Queria que vc notasse que na minha
estrutura nao usei o modo de exceção de teclas, como vc utiliza no
IF acima que pedi anulação.
Verifique tbem se vc não esta usando a F5 em alguma SET KEY, ok.
Ate+,
Faça um teste, no inicio da sua funcao coloque:
Código: Selecionar todos
FUNCTION TECLAPESQ(nMod)
LOCAL GETLIST := {}, nRecno
? lastkey()
wait"veja aqui se o seu dbedit reconhece a tecla"
IF nMod=4 //**anule este IF para ver se funciona
...
Qdo postei com DO CASE não quiz dizer que o problema era no comando,
somente usei como similar ao seu IF. Queria que vc notasse que na minha
estrutura nao usei o modo de exceção de teclas, como vc utiliza no
IF acima que pedi anulação.
Verifique tbem se vc não esta usando a F5 em alguma SET KEY, ok.
Ate+,
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Carregar Dbedit executando uma funcao !!!
Rubens, acho que se a questão é manter o DBEDIT e essa função de controle da mesma, você poderia inserir logo no começo da sua função TECLAPESQ a seguinte instrução:
Ou ainda então, modifique em todas as instâncias de dentro da função TECLAPESQ que menciona LASTKEY() por:
Acredito que não é possível reproduzir a tecla F5 através do KEYBOARD, embora com a função KEYSEND() da CT.LIB funciona. Veja este exemplo:
Código: Selecionar todos
FUNCTION TECLAPESQ(nMod)
LOCAL GETLIST := {}, nRecno
IF UPPER(GETACTIVE():NAME)="NOME_DA_VARIAVEL_QUE_PRECISA_F5" // irá devolver o nome da variável ativa
coloque aqui o chamado ou da rotina que faz o F5
ENDIF
Código: Selecionar todos
nKey:=LASTKEY()
IF nKey == 13
cVar := aCampo[1]
cVar := &cVar.
SETCURSOR(0) ; RETURN(0)
ELSEIF nKey == K_INS
// ..//..
// E mantenha esta instrução no inicio da função:
IF UPPER(GETACTIVE():NAME)="NOME_DA_VARIAVEL_QUE_PRECISA_F5" // irá devolver o nome da variável ativa
nKey:=-4
nMode:=4
// daí com isto irá entrar na condicional como se o usuário tivesse pressionado F5
ENDIF
Código: Selecionar todos
#include "ctscan.ch"
KEYBOARD CHR(-4)
? INKEY(0)
keysend(KS_F5)
? INKEY(0)
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Re: Carregar Dbedit executando uma funcao !!!
Pessoal.. depois de fazer vários testes consegui... resolver com o seguinte:
Estava verificando
Tive que altera para
Estranho... não.. deveria reconhecer que foi pressionado F5.. estranho é que se não colocar o keyboard e pressionar F5 ele reconhece que pressionou o F5... vai enteder...
Bom o importante é que funcionou....
Obrigado a todos que me ajudaram...
Rubens
Estava verificando
Código: Selecionar todos
ELSEIF LASTKEY() == K_F5
Código: Selecionar todos
ELSEIF LASTKEY() == K_F5 .or. LASTKEY() == 252
Bom o importante é que funcionou....
Obrigado a todos que me ajudaram...
Rubens
"Eu e minha casa servimos ao Senhor e você
"
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Carregar Dbedit executando uma funcao !!!
Acho que é como mencionei na minha msg anterior, com o KEYBOARD não dá para reproduzir o F5, tal é assim que você achou outra simulção 252 (que não é para tecla alguma) e funcionou. Então está bom ! O importante é que você achou uma forma.Estranho... não.. deveria reconhecer que foi pressionado F5.. estranho é que se não colocar o keyboard e pressionar F5 ele reconhece que pressionou o F5... vai enteder...
Só para desencargo, Rubens experimenta com KEYSEND() para ver se funcionaria...
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Carregar Dbedit executando uma funcao !!!
Se você Rubens, já usa o F5 para abrir a rotina de pesquisa no seu DBEDIT, deve ser porque está usando uma função para controlar o dbedit(), creio eu.
Se for isso, tente o seguinte:
De qualquer forma vai precisar de uma tecla para disparar a função de pesquisa, porém, faça do seguinte modo:
ao invés de:
tente:
Deste modo, como particularmente faço, ao se teclar qualquer tecla numérica, ou alfabética, vc já direciona o fluxo.
Se for numérica, abre o indice por código, se for alfabética, abre indice por descrição.
Em seguida, abre o get correspondente e tchau pardal !!! Fica quase que automático.
Se for isso, tente o seguinte:
De qualquer forma vai precisar de uma tecla para disparar a função de pesquisa, porém, faça do seguinte modo:
ao invés de:
Código: Selecionar todos
case lastkey() = K_F5
pesquisa()Código: Selecionar todos
...
case modo = 4
do case
case isalpha(Chr(lastkey())) .OR. lastkey() > 48 .AND. lastkey() < 58
if (lastkey() > 48 .AND. lastkey() < 58)
ordsetfocus("indcli01")
ord:= 1
else
ordsetfocus("indcli03")
ord:= 3
endif
Keyboard Upper(Chr(lastkey()))
Se for numérica, abre o indice por código, se for alfabética, abre indice por descrição.
Em seguida, abre o get correspondente e tchau pardal !!! Fica quase que automático.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Re: Carregar Dbedit executando uma funcao !!!
So um detalhe que os amigos esqueceram, chr(-4) se torna um caractere sempre entre 0 e 255, logo, valores negativos ou maiores do que este são transformados em relativos dentro destes limites, as teclas de valores negativos nao podem ser simuladas apenas pela keyboard, para isto precisará de outras rotinas que façam este efeito.
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Re: Carregar Dbedit executando uma funcao !!!
Alamino..
Na verdade pretento realmente fazer o que voce mencionou... criar a pesquisa sem que seja pressionada uma tecla qualquer para isso e coloca-la por letra a letra.. o negócio realmente é tempo.. nas pesquisas que fiz no forum antes de abrir o topico tem muitas instruções de como faze-lo.. Agora quanto ao que o Pablo postou vou fazer um teste sim e posto o resultado...Sobre o valores que o vagner comentou eu cheguei ao 252 porque fui depurando e coincidencia ou nao dentro do 0 ao 255 sempre me retornava 252...
Mas voces na acham intrigante que quando realmente pressiona F5 é reconhecido e quando vem via comando keyboard não...
Porque se fizer um teste usando o lastkey() vai resultar 252..
É ruim usar recursos porque "funcionou" e não porque a gente entendeu ou dominou o que aconteceu.. se precisar usar pra outra coisa voce não vai confiar 100% e isso te deixa na mão depois..
Já que o próprio NG informa que o número da tecla F5 é -4 e não 252...
Rubens
Na verdade pretento realmente fazer o que voce mencionou... criar a pesquisa sem que seja pressionada uma tecla qualquer para isso e coloca-la por letra a letra.. o negócio realmente é tempo.. nas pesquisas que fiz no forum antes de abrir o topico tem muitas instruções de como faze-lo.. Agora quanto ao que o Pablo postou vou fazer um teste sim e posto o resultado...Sobre o valores que o vagner comentou eu cheguei ao 252 porque fui depurando e coincidencia ou nao dentro do 0 ao 255 sempre me retornava 252...
Mas voces na acham intrigante que quando realmente pressiona F5 é reconhecido e quando vem via comando keyboard não...
Porque se fizer um teste usando o lastkey() vai resultar 252..
É ruim usar recursos porque "funcionou" e não porque a gente entendeu ou dominou o que aconteceu.. se precisar usar pra outra coisa voce não vai confiar 100% e isso te deixa na mão depois..
Já que o próprio NG informa que o número da tecla F5 é -4 e não 252...
Rubens
"Eu e minha casa servimos ao Senhor e você
"
