acdestefani Postado Março 18, 2006 Denunciar Share Postado Março 18, 2006 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;interfaceuses 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);beginf.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 closeend;end. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 LuizAraujo Postado Março 21, 2006 Denunciar Share Postado Março 21, 2006 Alo acdesai vai alguma coisavarA,B,C,D : Currency;beginA:=StrToCurr(Edit1.Text);B:=StrToCurr(Edit2.Text);C:=StrToCurr(Edit3.Text);tryD:=A/(B*C);finallyDBEdit1.Text:=CurrToStr(D);end;end;este simples espero que ajude Luiz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 acdestefani Postado Março 24, 2006 Autor Denunciar Share Postado Março 24, 2006 Valeu LuizAraujo!Luito obrigado pela grande ajuda.Abraçcos Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
acdestefani
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.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.