Clipper On Line • Ver Tópico - Posição do cursor

Posição do cursor

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Posição do cursor

Mensagempor gbetorodrigues » 01 Nov 2010 09:59

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)
gbetorodrigues
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 13
Data de registro: 08 Out 2010 09:51
Cidade/Estado: Rio de Janeiro / RJ
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Posição do cursor

Mensagempor Eric.Developer » 01 Nov 2010 14:53

gbetorodrigues,

Keyboard normalmente não se aplica a ambientes gráfico orientados a eventos, são os eventos que disparam o comportamento.

A classe utilizada pela instrução @... get ... do FiveWin, possui o método oGet:GoHome() para mover para o inicio, mas não a todos os métodos comuns, porém FiveWin também depende da Classe GET nativa do xBase console (Clipper, [x]Harbour), não via herança, ele instancia um objeto do console e guarda na propriedade oGet:oGet do FiveWin, portanto para mover para o fim, experimente:

oSeuGet:oGet:end()

as vezes, poderá se fazer necessário códigos adicionais. No passado precisei mover o cursor, analisando todas as classes envolvidas consegui a solução.
Delphi, SQL, FastReport | Xailer VxH Fivewin Hwgui Minigui [x]Harbour
Contate-me: Desenvolvimentos | Treinamentos | Facebook | Projetos
Download oficial: Xailer + Harbour. Ferramenta profissional e mais completa:
  • GUI, IDE, Form designer, Assistente código, Gerenciador projetos, Debug
  • Gerador relatórios, SQL nativo, DataControls, Editor DBF/SQLite, e muito mais
Avatar de usuário

Eric.Developer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 157
Data de registro: 31 Ago 2010 22:16
Curtiu: 0 vez
Mens.Curtidas: 7 vezes

Re: Posição do cursor

Mensagempor gbetorodrigues » 03 Nov 2010 15:28

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

Usuário Nível 1
 
Mensagens: 13
Data de registro: 08 Out 2010 09:51
Cidade/Estado: Rio de Janeiro / RJ
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Posição do cursor

Mensagempor gbetorodrigues » 03 Nov 2010 15:34

Acabei de efetuar o teste e o 'editbox' some ao passar pela função...
gbetorodrigues
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 13
Data de registro: 08 Out 2010 09:51
Cidade/Estado: Rio de Janeiro / RJ
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Posição do cursor

Mensagempor gbetorodrigues » 03 Nov 2010 15:39

Observe as funcoes:

Quando eu faço com um GET VALID funciona, mas ao mudar para ON CNANGE , parece que o cursor se perde.

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

*********************************************
Nota de Moderação:
Toledo: Mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: Clique aqui
gbetorodrigues
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 13
Data de registro: 08 Out 2010 09:51
Cidade/Estado: Rio de Janeiro / RJ
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Posição do cursor

Mensagempor gbetorodrigues » 03 Nov 2010 15:43

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 ).
gbetorodrigues
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 13
Data de registro: 08 Out 2010 09:51
Cidade/Estado: Rio de Janeiro / RJ
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Posição do cursor

Mensagempor ICO » 06 Jan 2011 14:22

Boa Tarde..

Veja se é isso que vc. tá querendo...

oget[8]:SetPos(0)


onde oget[8] é o get onde o cursor retorna, altere o SetPos(0) para a posição que vc. quer que retorne..

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
Avatar de usuário

ICO
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 45
Data de registro: 01 Ago 2007 15:59
Cidade/Estado: Corumba - MS
Curtiu: 0 vez
Mens.Curtidas: 0 vez




Retornar para FiveWin

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
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro