Dúvida num evento onKeyPress

Delphi

11/04/2004

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!


Ginosam

Ginosam

Curtidas 0

Respostas

Edilcimar

Edilcimar

11/04/2004

Coloque
If length(Edit1.Text) > 7 then
faça algo


GOSTEI 0
Rômulo Barros

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
POSTAR