• 0
Sign in to follow this  
acdestefani

Calcular Automaticamente Um Campo

Question

Olá!!!

Estou cursando a faculdade de Sistema de Informação e estamos começando a utilizar o Delphi.

Estou fazendo um trabalho em Delphi onde tenho que calcular o índice de massa corporal (IMC - peso/(altura*altura) da pessoa cadastrada.

Gostaria que ao digitar os campos peso e altura, o campo IMC fosse calculado e preenchido automaticamente. Alguém poderia me explicar como fazer isso.

Abaixo segue o código do programa, caso precisem dar uma olhada.

Desde já agradeçco a grande ajuda.

Obrigado!!!

unit imc;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

const

min=1;

max=10;

type

TForm1 = class(TForm)

titulo: TLabel;

Lbnome: TLabel;

Lbpeso: TLabel;

Lbaltura: TLabel;

Lbimc: TLabel;

Lbresultado: TLabel;

Edpeso: TEdit;

Ednome: TEdit;

Edaltura: TEdit;

Lbresimc: TLabel;

Lbresresultado: TLabel;

Btincluir: TButton;

Btlocalizar: TButton;

Btalterar: TButton;

Btexcluir: TButton;

Btlistar: TButton;

Btsair: TButton;

Listreg: TListBox;

procedure FormCreate(Sender: TObject);

procedure BtincluirClick(Sender: TObject);

procedure BtsairClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

type

ptr=integer;

ficha=record

nome: string;

peso,altura,imc: real;

condicao: string;

end;

lista_pessoas=record

pessoa: array [min..max] of ficha;

primeiro:ptr;

ultimo:ptr;

end;

var

Form1: TForm1;

l:lista_pessoas;

f:ficha;

implementation

{$R *.dfm}

Procedure flvazia(var lista:lista_pessoas);

Begin

lista.primeiro:=min;

lista.ultimo:=lista.primeiro;

end;

procedure inclui(x:ficha; var lista:lista_pessoas);

begin

if lista.ultimo>max then

showmessage('Erro: Lista Cheia')

else

begin

lista.pessoa[lista.ultimo]:=x;

lista.ultimo:=lista.ultimo + 1;

end;

end;

Function vazia (var lista:lista_pessoas): boolean;

begin

vazia:=lista.primeiro=lista.ultimo;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Flvazia(L);

end;

procedure TForm1.BtincluirClick(Sender: TObject);

begin

f.nome:=Ednome.text;

f.peso:=strtofloat(Edpeso.text);

f.altura:=strtofloat(Edaltura.text);

Listreg.Items.Add(f.Nome);

Listreg.Items.Add(FloatToStr(f.peso));

Listreg.Items.Add(FloatToStr(f.altura));

Listreg.Items.Add('');

Ednome.SetFocus;

Ednome.Clear;

Edpeso.clear;

Edaltura.Clear;

end;

procedure TForm1.BtsairClick(Sender: TObject);

begin

close

end;

end.

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Alo acdes

ai vai alguma coisa

var

A,B,C,D : Currency;

begin

A:=StrToCurr(Edit1.Text);

B:=StrToCurr(Edit2.Text);

C:=StrToCurr(Edit3.Text);

try

D:=A/(B*C);

finally

DBEdit1.Text:=CurrToStr(D);

end;

end;

este simples espero que ajude

rolleyes.gif Luiz

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this