Ola a todos
Estou tentando fazer uma pesquisa em um GET a medida que o usuário vai digitando, porém ao retornar da funcao de verificação ele perde a coluna (ou seja a posicao do cursor que ele estava anteriormente), indo parar no inicio do campo. Tentei enviar um KEYBOARD CHR(6) - Tecla END mas nao funciona se alguem tiver alguma sugestao agradeco
veja o exemplo das intrucoes:
LINHA ONDE CHAMA A FUNCAO ...
REDEFINE GET oOBS2D VAR xobs2 ID 4002 OF oshwobs MEMO ON CHANGE Tamobs(oOBS2D,@oSayob2,500,@oshwobs) UPDATE
TRECHO DA FUNCAO QUE EXECUTA E RETORNA
Local nTama := Len(oOBS2D:cText())
sayob2 := ALLTRIM(STR(fixobs - nTama)) + " caracteres"
formobs:update()
formobs:refresh()
...
oOBS2D:setfocus()
KEYBOARD CHR(6)
Posição do cursor
Moderador: Moderadores
-
gbetorodrigues
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 08 Out 2010 09:51
- Localização: Rio de Janeiro / RJ
-
gbetorodrigues
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 08 Out 2010 09:51
- Localização: Rio de Janeiro / RJ
Re: Posição do cursor
Ainda estou testando as dicas (ainda nao funcionou), estou fazendo algumas mudancas na rotina que é executada (antes do retorno). Obrigado a todos.
-
gbetorodrigues
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 08 Out 2010 09:51
- Localização: Rio de Janeiro / RJ
-
gbetorodrigues
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 08 Out 2010 09:51
- Localização: Rio de Janeiro / RJ
Re: Posição do cursor
Observe as funcoes:
Quando eu faço com um GET VALID funciona, mas ao mudar para ON CNANGE , parece que o cursor se perde.
Quando eu faço com um GET VALID funciona, mas ao mudar para ON CNANGE , parece que o cursor se perde.
Código: Selecionar todos
FUNCTION OBSLAUDO1()
sayob2 := ALLTRIM(STR(600-LEN(xobs2))) + " caracteres"
DEFINE DIALOG oshwobs RESOURCE "OBSLAUDO"
REDEFINE GET oOBS1A VAR xobs1 ID 4001 OF oshwobs MEMO UPDATE
REDEFINE GET oOBS1B VAR xobstit2 ID 4007 OF oshwobs UPDATE
REDEFINE GET oOBS1C VAR xendweb ID 4008 OF oshwobs UPDATE
REDEFINE SAY oSayob2 VAR sayob2 ID 4010 OF oshwobs UPDATE
REDEFINE GET oOBS2D VAR xobs2 ID 4002 OF oshwobs MEMO ON CHANGE Tamobs(oOBS2D,@oSayob2,(800-LEN(xobs2)),@oshwobs,@sayob2) UPDATE
REDEFINE GET oOBS3E VAR xobs3 ID 4003 OF oshwobs MEMO UPDATE
REDEFINE BUTTON obtobs ID 100 OF oshwobs ACTION oshwobs:End()
ACTIVATE DIALOG oshwobs CENTERED
RETURN NIL
*******************************************
FUNCTION Tamobs(oOBS2D,oSayob2,fixobs,formobs,sayob2)
LOCAL CHRLF := chr(10)+chr(13)//, sitobs := .T.
Local nTama := Len(oOBS2D:cText())
sayob2 := ALLTRIM(STR(fixobs-nTama)) + " caracteres"
If nTama > fixobs
MsgAlert("Tamanho máximo permitido !","Aviso !")
//sitobs := .F.
Endif
formobs:update()
formobs:refresh()
oOBS2D:Goend()
RETURN NIL
*********************************************
Editado pela última vez por Toledo em 04 Nov 2010 17:06, 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
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
-
gbetorodrigues
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 08 Out 2010 09:51
- Localização: Rio de Janeiro / RJ
Re: Posição do cursor
Na linha onde se lê: ...800-LEN( ... deve mudar para 600
foi um esquecimento. (São 600 caracteres no máximo onde o usuário deve utilizar ).
foi um esquecimento. (São 600 caracteres no máximo onde o usuário deve utilizar ).
Re: Posição do cursor
Boa Tarde..
Veja se é isso que vc. tá querendo...
onde oget[8] é o get onde o cursor retorna, altere o SetPos(0) para a posição que vc. quer que retorne..
Abraços..
Veja se é isso que vc. tá querendo...
Código: Selecionar todos
oget[8]:SetPos(0)Abraços..
Luiz Arruda-Corumba - MS
FiveWin 9.04
[x]Harbour
PellesC
xDev
BCC
Ws
[blue]Retorne avisando se a Dica Funcionou[/blue]
email: ico.corumba@gmail.com
FiveWin 9.04
[x]Harbour
PellesC
xDev
BCC
Ws
[blue]Retorne avisando se a Dica Funcionou[/blue]
email: ico.corumba@gmail.com