Fórum calculos em dois edits #456032
20/09/2013
0
pontos positivo:
if (Key = #13)then
begin
if(Edit1.Text <> '\')then
begin
Key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
soma:= StrToFloat(Edit1.Text);
EdtSubTotalSoma.Text:=FloatToStr(soma);
EdtTotal.Text :=FloatToStr(soma);
end
else
MessageDlg('Obrigatório Preenchimento\', mtWarning,
[mbOk], 0);
end
e
pontos negativos:
if (Key = #13)then
begin
if(Edit12.Text <> '\')then
begin
Key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
soma:= soma - StrToFloat(Edit12.Text);
EdtTotal.Text :=FloatToStr(soma);
end
else
MessageDlg('Obrigatório Preenchimento\', mtWarning,
[mbOk], 0);
end
até aí tudo bem, só que estou precisando fazer uns calculos e não estou conseguindo que é quando eu digitar um numero em um edit ele tem que valer outro em outro edit por ex:
se um militar tiver um curso de 100 horas e eu digitar 100 num edit tem que aparecer 1,0 no outro edit de cursos, pois a cada 100 horas aula vale um ponto, vc entederam? alguém pode me ajudar nessa?
Paulo
Curtir tópico
+ 0Posts
20/09/2013
Marcos Saffran
o outro edit tem que ser um edit ou pode ser um label, já que será um campo calculado.
de qualquer maneira, a minha sugestão é que no evento onexit do primeiro edit você execute o cálculo automaticamente.
Gostei + 0
20/09/2013
Paulo
o outro edit tem que ser um edit ou pode ser um label, já que será um campo calculado.
de qualquer maneira, a minha sugestão é que no evento onexit do primeiro edit você execute o cálculo automaticamente.
Sou novo nessa área e o problema é como fazer esse calculo no 1º edit para aparecer a pontuação no 2º edit.
Gostei + 0
20/09/2013
Marcos Saffran
no evento OnExit do primeiro edit insira o seguinte código:
var
calc : (aqui você define como será a sua variárivel (integer, floart, double);
begin
calc := (StrToInt(Edit1.Text) / 100); ( valor que você escolhe, aqui considerei a variável com Integer (inteiro)).
Edit2.Text := IntToStr(calc); o IntToStr é se o valor for integer, senão escolha a conversão que você usar.
end;
Isso pode ser feito diretamente, sem a variável 'calc', mas fica complicado explicar isso.
Espero ter ajudado,
até mais.
Marcos A Saffran.
Gostei + 0
21/09/2013
Paulo
no evento OnExit do primeiro edit insira o seguinte código:
var
calc : (aqui você define como será a sua variárivel (integer, floart, double);
begin
calc := (StrToInt(Edit1.Text) / 100); ( valor que você escolhe, aqui considerei a variável com Integer (inteiro)).
Edit2.Text := IntToStr(calc); o IntToStr é se o valor for integer, senão escolha a conversão que você usar.
end;
Isso pode ser feito diretamente, sem a variável 'calc', mas fica complicado explicar isso.
Espero ter ajudado,
até mais.
Marcos A Saffran.
Esta´dando certo para alguns campos, por ex:
não estou conseguindo transformar os campos: (Curso superior e medalha) nos numeros corretos, pois curso superior e medalha, cada um vale 3,00 pontos e na minha transformação está saindo o valor: 3,000000000021 e queria que fechasse em 3,0.
olha só o ex: das duas transformações :
CURSO SUPERIOR
procedure TFrmPrincipal.Edit31Exit(Sender: TObject);
begin
calc := (StrToFloat(Edit31.Text) / 0.333333333331); // ESTA CONTAGEM AQUI NÃO ESTÁ DANDO CERTO
Edit12.Text := FloatToStr(calc);
end;
MEDALHA
procedure TFrmPrincipal.Edit21Exit(Sender: TObject);
begin
calc := (StrToFloat(Edit21.Text) / 0.333333333331); // ESTA CONTAGEM AQUI NÃO ESTÁ DANDO CERTO
Edit5.Text := FloatToStr(calc);
end;
Gostei + 0
22/09/2013
Marcos Saffran
CURSO SUPERIOR
procedure TFrmPrincipal.Edit31Exit(Sender: TObject);
begin
calc := RoundTo((StrToFloat(Edit31.Text) / 0.333333333331), -1); // ESTA CONTAGEM AQUI NÃO ESTÁ DANDO CERTO
Edit12.Text := FloatToStr(calc);
end;
MEDALHA
procedure TFrmPrincipal.Edit21Exit(Sender: TObject);
begin
calc := RoundTo((StrToFloat(Edit21.Text) / 0.333333333331), -1); // ESTA CONTAGEM AQUI NÃO ESTÁ DANDO CERTO
Edit5.Text := FloatToStr(calc);
end;
essa função verifiquei no seguinte artigo:
https://www.devmedia.com.br/rotinas-de-arredondamento-round-roundto-simpleroundto-setroundmode-e-getroundmode/21114
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)