Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
acdestefani

Ajuda Na Procedure Do Botão Listar

Question

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.

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

1) Observe que o código do botão incluir (abaixo) não está chamando a sua procedure Inclui, logo sua lista não está sendo populada.

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;

[]s

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  

Cloud Computing


  • Forum Statistics

    • Total Topics
      148143
    • Total Posts
      643466
×
×
  • Create New...