JR01 0 Denunciar post Postado Agosto 17, 2009 Ola! meu nome é JRAmigos do forum, sou novo por aqui, essa minha primeira vez postando, para solicitar a judas doscolegas.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 capacitorO primeiro edt2, vai receber um valor qualquer de uma indutánciaO edt3 vai receber o resultadoTenho uma const declarada com valor de 6,28procedure 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);beginclose; 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 mefalta força de vontade.Se algum dos amigos estiver comproblema de calculo com circuito, ou solução de correçãoem 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
Raficcha 1 Denunciar post Postado Agosto 17, 2009 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
bdexterholland 0 Denunciar post Postado Agosto 17, 2009 Uma coisa que pode ser feita também é: Também no onkeypress... if key = '.' then key := ',';assim, se ele digitar o ponto, o programa insere uma vírgula... :D Compartilhar este post Link para o post Compartilhar em outros sites
Raficcha 1 Denunciar post Postado Agosto 17, 2009 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
Chrnos 30 Denunciar post Postado Agosto 17, 2009 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