Dúvida num evento onKeyPress
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
Curtidas 0
Respostas
Edilcimar
11/04/2004
Coloque
If length(Edit1.Text) > 7 then
faça algo
If length(Edit1.Text) > 7 then
faça algo
GOSTEI 0
Rômulo Barros
11/04/2004
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:
GOSTEI 0