Bom dia pessoal.
Minha dúvida é essa, estou começando e já consegui fazer alguns DIALOG, muito interessantes, mas que fazer para que dentro de cadastro qualquer eu consiga mudar de um campo para outro teclando [EN TER] ou [SETAS] e não só o [TAB].
Obrigado amigos.
Geraldo Barbosa
Que fazer para GET'S aceitar [ENTER] e não só [TAB]
Moderador: Moderadores
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Voce esta acompanhando as aulas que estou postando?
Apesar de meu pequeno espaço de tempo livre vou divulgando as aulas conforme o que vou passando ao converter meu sistema.
Quanto a sua pergunta. Voce esta usando o WorkShop ou não.
Caso esteja será necessário apenas ordenar os controles pela opção Options/Set Order.
O problema com o ENTER ocorre quando montamos um DIALOGo e não REDEFINEmos os controles, sendo que o foco ficará sempre no ultimo controle posicionado no mesmo.
Ao redefinir os controles e zeras as variaveis o ENTER funciona normalmente.
Caso não esteja usando WorkShop, use o parâmetro ON CHANGE e coloque o seguinte:
Ou seja, deve-se perder o foco do GET em que o cursor está e dizer qual o próximo GET que receberá o cursor.
Isto é muito util quando temos controles em várias abas de FOLDERs e queremos passar para a próxima aba sem usar o mouse.
Neste caso o oGetAtual esta posicionado na aba 1 do FOLDER oFld e oGetProximo esta posicionado na aba 2.
Com o parâmetro ON CHANGE ao usar o ENTER o foco de oGetAtual é retirado, a função SetOption do objeto oFld recebe o parâmetro 2 que indica o numero da aba e então oGetProximo recebe o foco.
Agora quando usamos COMBOBOXes nos DIALOGos não conseguimos dar ENTER para o próximo controle pois no mesmo ON CHANGE não funciona, então usamos:
Agora com estes dicas voce provavelmente terá mais trabalho.
@braços :?)
Voce esta acompanhando as aulas que estou postando?
Apesar de meu pequeno espaço de tempo livre vou divulgando as aulas conforme o que vou passando ao converter meu sistema.
Quanto a sua pergunta. Voce esta usando o WorkShop ou não.
Caso esteja será necessário apenas ordenar os controles pela opção Options/Set Order.
O problema com o ENTER ocorre quando montamos um DIALOGo e não REDEFINEmos os controles, sendo que o foco ficará sempre no ultimo controle posicionado no mesmo.
Ao redefinir os controles e zeras as variaveis o ENTER funciona normalmente.
Caso não esteja usando WorkShop, use o parâmetro ON CHANGE e coloque o seguinte:
Código: Selecionar todos
... ON CHANGE (oGetAtual:LostFocus(oGetAtual),;
oGetProximo:SetFocus())
Isto é muito util quando temos controles em várias abas de FOLDERs e queremos passar para a próxima aba sem usar o mouse.
Código: Selecionar todos
REDEFINE GET oGet16 VAR M->VARIAVEL PICTURE "@!" ID 118 ;
OF oFld:aDialogs[01] ;
ON CHANGE (oGetAtual:LostFocus(oGetAtual),;
oFld:SetOption(2),;
oGetProximo:SetFocus())
Com o parâmetro ON CHANGE ao usar o ENTER o foco de oGetAtual é retirado, a função SetOption do objeto oFld recebe o parâmetro 2 que indica o numero da aba e então oGetProximo recebe o foco.
Agora quando usamos COMBOBOXes nos DIALOGos não conseguimos dar ENTER para o próximo controle pois no mesmo ON CHANGE não funciona, então usamos:
Código: Selecionar todos
REDEFINE COMBOBOX oCbx7 VAR M->AVALIACAO ;
ITEMS { "OTIMO", "BOM", "REGULAR", "RUIM", "PESSIMO" } ;
ID 213 OF oFld:aDialogs[02]
oCbx7:bKeyDown := {|nKey,nFlags|if(nKey==VK_RETURN,;
(oCbx7:LostFocus(oCbx7),oFld:SetOption(2),oGet214:SetFocus()),),nil}
@braços :?)
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinhos
Existe um outro detalhe que deixei passar:
Quando usamos os controles GET dentro de um controle FOLDER o ENTER funciona ShowDeBola pulando de controle em controle, menos no COMBOBOX que deve ser usado com explicado no POST anterior.
Quando usamos os controles GET diretamente dentro de DIALOGs criadas no WorkShop o ENTER não funciona a menos que marquemos o WANT RETURN nas propriedades do controle GET.
Para isto basta escolher o controle GET, clicar duas vezes e marcar WANT RETURN.
@braços :?)
Existe um outro detalhe que deixei passar:
Quando usamos os controles GET dentro de um controle FOLDER o ENTER funciona ShowDeBola pulando de controle em controle, menos no COMBOBOX que deve ser usado com explicado no POST anterior.
Quando usamos os controles GET diretamente dentro de DIALOGs criadas no WorkShop o ENTER não funciona a menos que marquemos o WANT RETURN nas propriedades do controle GET.
Para isto basta escolher o controle GET, clicar duas vezes e marcar WANT RETURN.
@braços :?)
