colocar picture para digitar somente minuscula...tem como?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

colocar picture para digitar somente minuscula...tem como?

Mensagem por scom »

ola amigos...


tem como colocar no picture do get para digitar somente letras minusculas?

atenciosament
Robson
S COM INFORMÁTICA
CLIPPER 5.3 / FIVEWIN 2.0 / BLINKER 7
XHARBOUR/ BCC582
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Tem duas maneiras de fazer:

1. Alterando o GETSYS.PRG, que faz parte do CLIPPER. Altere e compile junto com a sua aplicação. (É a minha preferida).

2. No seu GET coloque o WHEN com uma função que retorne .T. Nessa função você colocará dentro de um DO WHILE, um NK:=INKEY(0) e analisará todas a teclas pressionasdas, colocando as teclas ENTER, ESC, PAGE_DOWN, SETA_PRA_CIMA, etc... como teclas de saída. Você definirá quais seriam as teclas de edição e que serão aceitas, e irá CONCATENAR numa variavel (digamos VGSTR) e fora DO WHILE, você fará um KEYBOARD VGSTR, isto se não for uma das teclas de saída. Esta opção é a mais trabalhosa em fazer.

Te aconselho fazer um GETSYS, personalizado. Mas atenção, você terá que tratar cada caso de edição de cada variável. Porque sinão vai colocar todas elas no mesmo saco, e não creio que sejam TODAS as variáveis que receberão o mesmo tratamento. Para isso, faça um DO CASE que ponha os nomes de cada varável.

Eu mencionnei a opção 2, porque é para você sentir que todas as teclas (ou pelo menos quase) é possivel programá-las. E sabe como é, a gente ensina a pescar mas não entrega o peixe de bandeja. Se tiveres alguma dúvida, poderei te orientar melhor. Mas tudo através do FORUM, por favor.

Um clip-abraço :)Pos
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem por Toledo »

Robson, veja este exemplo:

Código: Selecionar todos

LOCAL GetList := {}
cls
cEmail=SPAC(40)
@ 10,10 SAY "Endereco de E-mail:" GET cEmail VALID { |oGet| L_OWER(oGet,cEmail) }
READ
RETU

FUNC L_OWER(oGet,v_email)
oGet:buffer := LOWER(v_email)
oGet:assign()
retu .T. 
Neste exemplo não importa a se o usuário digitar maiúscula, quando ele pressionar o Enter o conteúdo do GET é alterado para minúsculo.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Legal também essa sua solução TOLEDO. Porém tem dois inconvenientes. Imagino que o colega Robson precise de que determinado variável do GET seja para fins de endereços de emails, endrereços de sites, outra outra finalidade específica. O seu exemplo, mostra como transformar o conetúdo da variável após escrita. O interessante seria que mostrasse conforme está digitando em minúsculas e impedindo digitar outros caracteres que não são aceitos nos endereços de emails (%&*,etc..). Daí seria conveniente aperfeiçoar um GETSYS para tal aplicação.

Não é Robson ? Se serviu, beleza, senão estamos a disposição.

Um clip-abraço :)Pos
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem por Toledo »

Ok, então vamos alterar o GetSys...

Segue abaixo um link para baixar o GetSys já alterado para aceitar picture minúscula:

https://pctoledo.org/download/get ... uscula.zip

Para usar este GetSys alterado, basta compilar o arquivo acima com os parâmetros /M/N/W e depois linkar junto com os OBJs do seu programa.

Neste GetSys foi incluído na linha 291 o seguinte código:

Código: Selecionar todos

IF AT("@M",oGet:picture)>0
   cKey := LOWER( cKey )
ENDIF
Então, quando você colocar na PICTURE a expressão "@M", o GET só vai aceitar letras minúsculas... veja um exemplo:

Código: Selecionar todos

cEmail=SPAC(40)
cNome=SPAC(40)
@ 10,10 SAY "Endereco de E-mail:" GET cEmail PICT "@M"
@ 12,10 SAY "Nome:" GET cNome PICT "@!"
READ
Lembre-se que o GetSys.prg acima tem que se linkado junto com os OBJs do seu programa.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Gostei TOLEDO !. Eu tinha feito de uma outra forma muito elaborada. Não com isto, estou dizendo que é melhor a minha. A sua é mais simples e mais UNIVERSAL. Pois com ela, você criou um novo PICTURE. Achei sensacional !. Porém como eu disse, na minha 1ª explicação o meu GETSYS teria que ser declarados todos os nomes (de forma FIXA) das variáveis que eu queria tratar e para as não claro, existe o tão usados os comando como: ELSE, OTHERWISE...

Acho que valeu sua indicação, mestre !. Ao menos para mim, valeu !. E você Robson ? Atendeu ao esperado ?

Um clip-abraço :)Pos
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem por Augusto »

Toledo escreveu:Neste GetSys foi incluído na linha 291 o seguinte código:

Código: Selecionar todos

IF AT("@M",oGet:picture)>0
   cKey := LOWER( cKey )
ENDIF
Então, quando você colocar na PICTURE a expressão "@M", o GET só vai aceitar letras minúsculas...
Beleza pura... Sendo assim, embora exista a máscara "!" tbm podemos tbm criar um GET que só aceite MAIÚSCULAS... tipo:

Código: Selecionar todos

IF AT("@U",oGet:picture)>0
   cKey := UPPER( cKey )
ENDIF
Estou errado Toledo ??
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
diogenes_varela
Usuário Nível 3
Usuário Nível 3
Mensagens: 206
Registrado em: 04 Nov 2006 19:33
Localização: Brasília - DF

Mensagem por diogenes_varela »

Como eu sempre prefiro o caminho mais curto, usaria o comando para desativar Caps Lock (largamente debatido aqui) ou simplesmente criaria uma nova variável convertendo o que foi digitado para minúsculo.

Essa é a intenção do colega, pois deseja captar o e-mail.

@ 10,10 GET vEmail
READ

mEmail = LOWER(vEmail)


Simples assim.
Os computadores não sabem o que fazem. Nós, na maioria das vezes, também não...

E disse ao Programador: "Todos os teus programas terão erros e irás corrigi-los até ao fim dos teus dias". Gen. 1:9
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem por Augusto »

Diogenes.... Acho q vc não leu o tópico todo... se leu... não entendeu...
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem por Toledo »

Augusto, com este exemplo dá para criar outras mascaras que não existe no Clipper... é isto ai!

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

VOCÊS SÃO DEMAIS....SHOW DE BOLA.

Mensagem por scom »

RAPAZIADA...AQUI SIM TEM O PESSOAL QUE MANJA.


MUITO OBRIGADO A TODOS PELA AJUDA....VCS SÃO SHOW DE BOLA.

REALMENTE ACHO QUE A DO TOLEDO VAI FICAR BELEZA.


OBRIGADO DE CORAÇÃO A TODOS VCS.

ROBSON
S COM INFORMÁTICA
CLIPPER 5.3 / FIVEWIN 2.0 / BLINKER 7
XHARBOUR/ BCC582
scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

deu certo...so que ta dando um erro.

Mensagem por scom »

ficou beleza....era isso que eu queria...

só que onde tem os gets que não tem PICTURE da o seguinte erro:

argument erro: AT

ai coloquei PICTURE @! nao deu mais erro...só que no meu sistema inteiro a maioria dos meus gets não tem PICTURE....e agora como corrigir isso.

atenciosamente

Robson
S COM INFORMÁTICA
CLIPPER 5.3 / FIVEWIN 2.0 / BLINKER 7
XHARBOUR/ BCC582
scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

PROBLEMA RESOLVIDO.

Mensagem por scom »

OLA AMIGOS....DESCULPE MAS CONSEGUI RESOLVER O PROBLEMA.

COLOQUEI ASSIM

IF !EMPTY(oGet:picture)

IF AT("@M",oGet:picture)>0
cKey := LOWER(cKey)
ENDIF

ENDIF

Atë a proxima.
S COM INFORMÁTICA
CLIPPER 5.3 / FIVEWIN 2.0 / BLINKER 7
XHARBOUR/ BCC582
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem por Toledo »

Robson, to vendo que você pegou o espirito da idéia... vou corrigir o arquivo que está no link acima. Valeu pelo complemento.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
diogenes_varela
Usuário Nível 3
Usuário Nível 3
Mensagens: 206
Registrado em: 04 Nov 2006 19:33
Localização: Brasília - DF

Mensagem por diogenes_varela »

Augusto escreveu:Diogenes.... Acho q vc não leu o tópico todo... se leu... não entendeu...
Acho que você não leu a minha resposta, se leu, não entendeu. Mas eu explico:

1. Se o colega deseja que os caracteres sejam "obrigatoriamente" digitados em minúsculo, a minha sugestão foi: usar o comando para desativar Caps Lock;

2. Se o colega deseja que os caracteres sejam "armazenados" em minúsculos, o usuário digita da maneira que bem entender, e tudo o que foi digitado será automaticamente transformado e armazenado em minúsculos.

===============================

Sugestões bem mais complicadas foram enviadas.
Explique-me, por favor, o motivo da sua fúria...
Os computadores não sabem o que fazem. Nós, na maioria das vezes, também não...

E disse ao Programador: "Todos os teus programas terão erros e irás corrigi-los até ao fim dos teus dias". Gen. 1:9
Responder