Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JR01

Como fazer para usuário não digitar ponto no edit.text

Recommended Posts

Ola! meu nome é JR
Amigos do forum, sou novo por aqui, essa minha primeira vez postando, para solicitar a judas dos
colegas.
Estou fazendo um programa em delphi, para calculo de circuito eletrônico.
Onde estou tendo dificuldade para fazer o tratamento de exceção, usando um btn1, três edt

O primeiro edt1, vai receber um valor qualquer de um capacitor
O primeiro edt2, vai receber um valor qualquer de uma indutáncia
O edt3 vai receber o resultado
Tenho uma const declarada com valor de 6,28

procedure TForm1.Button1Click(Sender: TObject);
const a = 6.28;
Var b,c,d: real;

begin


b:= strTofloat (edit1.text);
c:= strTofloat (edit2.text);
d:= b*c*a;
edit3.Text:= floatTostr (d);


end;

procedure TForm1.Button2Click(Sender: TObject);
begin

close;


end;

end.

O programa roda legalsinho, só que guando digito ponto ao envez de virgula, ele me retorna erro,
se eu digito virgula ele me retorna os valores certinhos.
Como faço para fazer esse tratamento, tenho pouca esperiencia com programação, mas não me
falta força de vontade.

Se algum dos amigos estiver comproblema de calculo com circuito, ou solução de correção
em um circuitos eletrico fique a vontade.

Desde jà agradeço aos colegas, trabalho com eletrônica desde 1976.

http://forum.imasters.com.br/public/style_emoticons/default/blush.gif JR

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para fazer com que o edit so aceite numeros reais

 

no evento "OnKeyPress" do seu edit coloque este códido

 

if (not((key in ['0' .. '9']) or (key = DecimalSeparator))) then
        key := char(0);

Você pode definir um separador decimal diferente da virgula se quiser utilizando :

 

DecimalSeparator := '.'; (eu ate aconselho a fazer isso, pois assim o Delphi não utiliza o padrão do sistema, que é diferente em varias regiões do mundo)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com certeza, isso é uma boa tambeim.

JR01, você pode colocar tudo isso em uma rotina e utilizar em outros edits..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o amigo quiser tratar excessões ao invés da forma como os dados são digitados na tela, deve usar o Try Except ou o Try Finally para tratamento de excessões. Exemplo:

 

     try        
        b:= strTofloat (edit1.text);
        c:= strTofloat (edit2.text);
        d:= b*c*a;
        edit3.Text:= floatTostr (d);
     except
        Showmessage('Ops... ocorreu um erro numa das operações entre o try e o except.');
        <comandos que devem ser executados em caso de erros, como a mensagem acima>
     end;

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.