Clipper On Line • Ver Tópico - colocar picture para digitar somente minuscula...tem como?

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

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

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

Mensagempor scom » 21 Mar 2007 22:20

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
scom
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 133
Data de registro: 15 Nov 2004 09:49
Cidade/Estado: Dourados/MS
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor Pablo César » 22 Mar 2007 07:43

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

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Mensagempor Toledo » 22 Mar 2007 13:39

Robson, veja este exemplo:

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

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Mensagempor Pablo César » 22 Mar 2007 13:52

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

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Mensagempor Toledo » 22 Mar 2007 14:37

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

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

http://www.pctoledo.com.br/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:
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:

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

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Mensagempor Pablo César » 22 Mar 2007 17:40

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

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Mensagempor Augusto » 22 Mar 2007 19:30

Toledo escreveu:Neste GetSys foi incluído na linha 291 o seguinte código:
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:
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
Avatar de usuário

Augusto
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 465
Data de registro: 26 Ago 2003 17:50
Cidade/Estado: Maricá/RJ
Curtiu: 3 vezes
Mens.Curtidas: 1 vez

Mensagempor diogenes_varela » 22 Mar 2007 19:50

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

diogenes_varela
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 206
Data de registro: 04 Nov 2006 19:33
Cidade/Estado: Brasília - DF
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Mensagempor Augusto » 22 Mar 2007 20:02

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

Augusto
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 465
Data de registro: 26 Ago 2003 17:50
Cidade/Estado: Maricá/RJ
Curtiu: 3 vezes
Mens.Curtidas: 1 vez

Mensagempor Toledo » 22 Mar 2007 22:14

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

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

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

Mensagempor scom » 23 Mar 2007 08:39

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
Data de registro: 15 Nov 2004 09:49
Cidade/Estado: Dourados/MS
Curtiu: 0 vez
Mens.Curtidas: 0 vez

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

Mensagempor scom » 23 Mar 2007 08:59

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
Data de registro: 15 Nov 2004 09:49
Cidade/Estado: Dourados/MS
Curtiu: 0 vez
Mens.Curtidas: 0 vez

PROBLEMA RESOLVIDO.

Mensagempor scom » 23 Mar 2007 09:11

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
scom
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 133
Data de registro: 15 Nov 2004 09:49
Cidade/Estado: Dourados/MS
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor Toledo » 23 Mar 2007 09:16

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

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Mensagempor diogenes_varela » 23 Mar 2007 13:48

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

diogenes_varela
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 206
Data de registro: 04 Nov 2006 19:33
Cidade/Estado: Brasília - DF
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Próximo



Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


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