problema com mascaras
23/12/2005
0
1º - eu tenho uma function que é o seguinte :
Código:
function TFrmimpexp.verificaCampos: Boolean;
begin
if Edtcodigo.Text = ´´ then
begin
Application.MessageBox(´O Código não pode ficar em branco!´, ´Atenção´, MB_OK);
Edtcodigo.setfocus;
FSAIR := TRUE;
verificaCampos := False;
end
else if EdtTelefone.Text = ´´ then
begin
Application.MessageBox(´O Telefone não pode ficar em branco!´, ´Atenção´, MB_OK);
EdtTelefone.setfocus;
FSAIR := TRUE;
verificaCampos := False;
end
else
verificaCampos := True;
FSAIR := False;
end;
e quando clico no botao salvar eu mando ver se o verificacampos esta true ai ele salva.... se nao da o erro na tela....
porem como eu poderia validar o campo EdtTelefone pois a mascara do edit esta da seguinte forma !\(99\) 9999-9999;1;_ ou seja ele preenchendo ou nao ele deixa passar... e se eu colocar 0 no lugar de 9 ele vai dar a mensagem de invalid input values......
alguem poderia me ajudar, como eu devo fazer pra que se o cara nao digitar nada ele acuse que é invalido o numero do telefone... e se digitar pela metade tambem ....
grato
Código:
function TFrmimpexp.verificaCampos: Boolean;
begin
if Edtcodigo.Text = ´´ then
begin
Application.MessageBox(´O Código não pode ficar em branco!´, ´Atenção´, MB_OK);
Edtcodigo.setfocus;
FSAIR := TRUE;
verificaCampos := False;
end
else if EdtTelefone.Text = ´´ then
begin
Application.MessageBox(´O Telefone não pode ficar em branco!´, ´Atenção´, MB_OK);
EdtTelefone.setfocus;
FSAIR := TRUE;
verificaCampos := False;
end
else
verificaCampos := True;
FSAIR := False;
end;
e quando clico no botao salvar eu mando ver se o verificacampos esta true ai ele salva.... se nao da o erro na tela....
porem como eu poderia validar o campo EdtTelefone pois a mascara do edit esta da seguinte forma !\(99\) 9999-9999;1;_ ou seja ele preenchendo ou nao ele deixa passar... e se eu colocar 0 no lugar de 9 ele vai dar a mensagem de invalid input values......
alguem poderia me ajudar, como eu devo fazer pra que se o cara nao digitar nada ele acuse que é invalido o numero do telefone... e se digitar pela metade tambem ....
grato
Fernando_cunha
Curtir tópico
+ 0
Responder
Posts
23/12/2005
Eixox
Estimado amigo,
O lance das máscaras é o seguinte - quando o valor colocado para representar a máscara for 9 então o parâmetro é opcional. Veja:
máscara = 999 é valido: -01, 0--, ---, -1-, 1--, 1-1 e etc.
Quando você usa Zero (0) na máscara, o campo é obrigatório.
máscara = 000 é válido: 111, 012, 876 qualquer coisa diferente disso dá erro.
A máscara deve ser então ao invés disso: !\(99\) 9999-9999;1;_ use
!\(00\) 0000-0000;1;_ - o Um no final quer dizer que ele tem que salvar o formato da máscara.
Qualquer coisa digitada pela metade usando os zeros dará uma exceção.
Agora meu amigo, número de telefone é uma coisa muito relativa - se o cara disser que não tem telefone, o usuário deverá preencher tudo zero. Isso não é uma coisa legal. Número de telefone nunca deve ser forçado num sistema, até porque nem todo mundo no século XXI tem telefone.
Abraços - Espero ter ajudado.
O lance das máscaras é o seguinte - quando o valor colocado para representar a máscara for 9 então o parâmetro é opcional. Veja:
máscara = 999 é valido: -01, 0--, ---, -1-, 1--, 1-1 e etc.
Quando você usa Zero (0) na máscara, o campo é obrigatório.
máscara = 000 é válido: 111, 012, 876 qualquer coisa diferente disso dá erro.
A máscara deve ser então ao invés disso: !\(99\) 9999-9999;1;_ use
!\(00\) 0000-0000;1;_ - o Um no final quer dizer que ele tem que salvar o formato da máscara.
Qualquer coisa digitada pela metade usando os zeros dará uma exceção.
Agora meu amigo, número de telefone é uma coisa muito relativa - se o cara disser que não tem telefone, o usuário deverá preencher tudo zero. Isso não é uma coisa legal. Número de telefone nunca deve ser forçado num sistema, até porque nem todo mundo no século XXI tem telefone.
Abraços - Espero ter ajudado.
Responder
25/12/2005
Fx|hand
kra... é complicado... mais axo q dah pra intender... faiz um override na classe de verificação do componente... vc vai fazer o seguinte....
antis do Type do formulario.. vc vai ´redeclarar´ o objeto com a função q vc vai usar.....
assim:
bom... até ai tah tudo certo... mais agora vem a parte da rotina de verificação... saca só !!!
só tem um pekeno problema... o Result sempre TEM q ser TRUE, senão ele vai mandar a msg de INVALIDO do proprio componente....
nessa rotina vc pode tratar a string utilizando a Variavel ´VALUE´...... e conseguir tratar a string do jeito q vc kiser....
axo q dah pra intender... flwss !!! feliz natal !
antis do Type do formulario.. vc vai ´redeclarar´ o objeto com a função q vc vai usar.....
assim:
//Aki estou REDECLARANDO a TMaskEdit type TMaskEdit = class(Mask.TMaskEdit) protected //Aki tbm estou redeclarando a função de validar function Validate(const Value: string; var Pos: Integer): Boolean; Override; end;
bom... até ai tah tudo certo... mais agora vem a parte da rotina de verificação... saca só !!!
// A FUNÇÃO function TMaskEdit.Validate(const Value: string; var Pos: Integer): Boolean; begin Result := True; end;
só tem um pekeno problema... o Result sempre TEM q ser TRUE, senão ele vai mandar a msg de INVALIDO do proprio componente....
nessa rotina vc pode tratar a string utilizando a Variavel ´VALUE´...... e conseguir tratar a string do jeito q vc kiser....
axo q dah pra intender... flwss !!! feliz natal !
Responder
Clique aqui para fazer login e interagir na Comunidade :)