Fórum Dúvida num evento onKeyPress #225211
11/04/2004
0
Estou usando o seguinte exemplo no evento onKeyPress de um Edit:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// #8 is Backspace
if not (Key in [8, ´0´..´9´]) then begin
ShowMessage(´Nada de letras, digite somente números!´);
// Discard the key
Key := 0;
end;
end;
Com isto, estou obrigando o usuário a digitar somente números no Edit! Se ele tentar digitar uma letra, a mensagem acima será disparada. Até aqui, está tudo certo! Estou querendo apenas mudar um pouquinho. Da forma que está, quando o usuário digitar o último número (sétimo dígito) e tentar digitar o oitavo usando uma letra, a mensagem acima ainda será disparada! Então, quero que a mensagem acima não apareça mais, depois que o usuário digitar o sétimo número! Logicamente, ele não conseguirá digitar o oitavo número, porque deixei a propriedade MaxLength igual a 7. Repetindo a minha dúvida: Como faço para que a mensagem acima não apareça mais, depois que o usuário digitar o sétimo número? Se alguém puder me ajudar agradeço!
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// #8 is Backspace
if not (Key in [8, ´0´..´9´]) then begin
ShowMessage(´Nada de letras, digite somente números!´);
// Discard the key
Key := 0;
end;
end;
Com isto, estou obrigando o usuário a digitar somente números no Edit! Se ele tentar digitar uma letra, a mensagem acima será disparada. Até aqui, está tudo certo! Estou querendo apenas mudar um pouquinho. Da forma que está, quando o usuário digitar o último número (sétimo dígito) e tentar digitar o oitavo usando uma letra, a mensagem acima ainda será disparada! Então, quero que a mensagem acima não apareça mais, depois que o usuário digitar o sétimo número! Logicamente, ele não conseguirá digitar o oitavo número, porque deixei a propriedade MaxLength igual a 7. Repetindo a minha dúvida: Como faço para que a mensagem acima não apareça mais, depois que o usuário digitar o sétimo número? Se alguém puder me ajudar agradeço!
Ginosam
Curtir tópico
+ 0
Responder
Posts
11/04/2004
Edilcimar
Coloque
If length(Edit1.Text) > 7 then
faça algo
If length(Edit1.Text) > 7 then
faça algo
Responder
Gostei + 0
11/04/2004
Rômulo Barros
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin // #8 is Backspace if((not(Key in [8, ´0´..´9´]))And(Length(Edit1.text) < 7)) then begin ShowMessage(´Nada de letras, digite somente números!´); // Discard the key Key := 0; end; end;
:twisted:
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)