Fórum Duvida no Edit #184648
27/09/2003
0
Sou novato em Delphi e gostaria de saber como configurar o Edit para receber somente numeros com ponto flutuante.
Muito Obribado
LDionysio
Muito Obribado
LDionysio
Luiz Dionysio
Curtir tópico
+ 0
Responder
Posts
27/09/2003
Cebikyn
Ponha no [b:d5e7fa4989]OnKeyPress[/b:d5e7fa4989] do seu edit:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key in [´,´,´.´] then Key:=DecimalSeparator; if not (key in [´0´..´9´,DecimalSeparator,8]) then begin Key:=0; Beep; end; end;
Responder
Gostei + 0
27/09/2003
Henry
Deus do vinho, tente assim:
Coloque um objeto Edit no form e no seu evento OnKeypress escreva o seguinte código:
if not(key in [´0´..´9´,´.´,´,´,#8,13]) then
key := 0;
if key in [´,´,´.´] then
key := DecimalSeparator;
if key = DecimalSeparator then
if pos(key,TEdit(Sender).Text) <> 0 then
key := 0;
Explicando o código
if not(key in [´0´..´9´,´.´,´,´,8,13]) then
key := 0;
No código acima, se algum número, ponto, vírgula, BackSpace ou Enter for digitado, então pode passar normalmente, caso contrário a tecla pressionada é ignorada.
if key in [´,´,´.´] then,br> key := DecimalSeparator;
No código acima, se digitado ponto ou vírgula, assume como separador decimal.
if key = DecimalSeparator then
if pos(key,TEdit(Sender).Text) <> 0 then
key := 0;
No código acima, o separador decimal só pode ser digitado uma única vez, na tentativa de uma segunda digitação ignora-se o símbolo.
Espero ter ajudado, Henry.
Coloque um objeto Edit no form e no seu evento OnKeypress escreva o seguinte código:
if not(key in [´0´..´9´,´.´,´,´,#8,13]) then
key := 0;
if key in [´,´,´.´] then
key := DecimalSeparator;
if key = DecimalSeparator then
if pos(key,TEdit(Sender).Text) <> 0 then
key := 0;
Explicando o código
if not(key in [´0´..´9´,´.´,´,´,8,13]) then
key := 0;
No código acima, se algum número, ponto, vírgula, BackSpace ou Enter for digitado, então pode passar normalmente, caso contrário a tecla pressionada é ignorada.
if key in [´,´,´.´] then,br> key := DecimalSeparator;
No código acima, se digitado ponto ou vírgula, assume como separador decimal.
if key = DecimalSeparator then
if pos(key,TEdit(Sender).Text) <> 0 then
key := 0;
No código acima, o separador decimal só pode ser digitado uma única vez, na tentativa de uma segunda digitação ignora-se o símbolo.
Espero ter ajudado, Henry.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)