Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Na Procedure Do Botão Listar


acdestefani

Pergunta

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

  • 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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...