Como não tenho experência nenhuma em programação, gostaria de pedir a ajuda de vocês.
Criei uma Procedure pra listar os registros cadastrados, mas ao clicar no botâo LISTAR não acontece. Vocês poderiam me ajudar a descobrir porque não tá funcionando essa Procedure?
Pergunta
acdestefani
Olá!
Como não tenho experência nenhuma em programação, gostaria de pedir a ajuda de vocês.
Criei uma Procedure pra listar os registros cadastrados, mas ao clicar no botâo LISTAR não acontece. Vocês poderiam me ajudar a descobrir porque não tá funcionando essa Procedure?
Abaixo segue o código do meu sistema.
unit imc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
Min=1;
Max=2;
type
TForm1 = class(TForm)
titulo: TLabel;
Lbnome: TLabel;
Lbpeso: TLabel;
Lbaltura: TLabel;
Lbimc: TLabel;
Lbresultado: TLabel;
LbResImc: TLabel;
Btincluir: TButton;
Btlocalizar: TButton;
Btalterar: TButton;
Btexcluir: TButton;
Btlistar: TButton;
Btsair: TButton;
Listreg: TListBox;
LbResRes: TLabel;
EdNome: TEdit;
EdPeso: TEdit;
EdAltura: TEdit;
procedure FormCreate(Sender: TObject);
procedure BtincluirClick(Sender: TObject);
procedure BtsairClick(Sender: TObject);
procedure BtcalcularClick(Sender: TObject);
procedure BtlistarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
Ptr = Integer;
Ficha = Record
Nome : String;
Peso,Altura,Imc : Real;
Condicao : String;
End;
ListaPessoas = Record
Pessoa : array [Min..Max] of Ficha;
Primeiro : Ptr;
Ultimo : Ptr;
end;
var
Form1 : TForm1;
L : ListaPessoas;
F : Ficha;
Aux : Integer;
implementation
{$R *.dfm}
Procedure FlVazia(var Lista:ListaPessoas);
Begin
Lista.Primeiro := Min;
Lista.Ultimo := Lista.Primeiro;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Flvazia(L);
end;
procedure Inclui(x:Ficha; var Lista:ListaPessoas);
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:ListaPessoas): boolean;
begin
Vazia := Lista.Primeiro = Lista.Ultimo;
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(FloatToStr(F.Imc));
Listreg.Items.Add(F.Condicao);
Listreg.Items.Add('');
Ednome.Clear;
Edpeso.Clear;
Edaltura.Clear;
LbResImc.Caption:='';
LbResRes.Caption:='';
Ednome.SetFocus;
end;
procedure TForm1.BtsairClick(Sender: TObject);
begin
Close
end;
procedure TForm1.BtcalcularClick(Sender: TObject);
begin
F.Imc:=strtofloat(EdPeso.text)/(strtofloat(EdAltura.text)*strtofloat(EdAltura.text));
Lbresimc.Caption:=floattostr(F.Imc);
if F.Imc < 20 then
Lbresres.Caption:='IDEAL'
else
if (F.Imc>=20) and (F.Imc<=25) then
Lbresres.Caption:='IDEAL'
else
if (F.Imc>=25) and (F.Imc<=30) then
Lbresres.Caption:='EXCESSO DE PESO'
else
if (F.Imc>=30) and (F.Imc<=35) then
Lbresres.Caption:='OBESIDADE'
else
if F.Imc > 35 then
Lbresres.Caption:='OBESIDADE MÓRBITA'
end;
procedure TForm1.BtlistarClick(Sender: TObject);
var
i:integer;
begin
listreg.clear;
for i:=L.Primeiro to L.Ultimo-1 do
begin
Listreg.Items.Add(L.Pessoa.Nome);
Listreg.Items.Add(FloatToStr(L.pessoa.Peso));
Listreg.Items.Add(FloatToStr(L.pessoa.Altura));
Listreg.Items.Add(FloatToStr(L.pessoa.Imc));
Listreg.Items.Add(L.pessoa.Condicao);
Listreg.Items.Add('');
end;
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.