Olá!
  Sou estudante do curso de Sistemas de Informação e começamos a utilizar o 
Delphi na faculdade.
  O nosso primeiro trabalho é montar um sistema, usando LISTA LINEAR, que 
calcula o índice de massa corporal.
  Como estamos usando Record pra entrar com dados de várias pessoas,  preciso 
criar uma validação pra que quanto entrar com um nome já  cadastrado, apareça a 
mensagem "Nome já cadastrado".
  Alguém poderia me explicar como fazer isso, por favor.
  Segue abaixo o código do meu trabalho.
  Desde já agradeço a ajuda de todos.
  Abraços
  
  unit imc;
  
  interface
  
  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, Buttons, ExtCtrls, jpeg;
  
  const
      Min=1;
      Max=10;
  
  type
    TForm1 = class(TForm)
      Lbnome: TLabel;
      Lbpeso: TLabel;
      Lbaltura: TLabel;
      Lbimc: TLabel;
      Lbdiagnostico: TLabel;
      LbResImc: TLabel;
      LbResDiag: TLabel;
      EdNome: TEdit;
      EdPeso: TEdit;
      EdAltura: TEdit;
      Label1: TLabel;
      LbTrabalho: TLabel;
      LbTrabalho2: TLabel;
      LbAntonio: TLabel;
      LbPeriodo: TLabel;
      ImTitulo: TImage;
      GroupBox1: TGroupBox;
      ListReg: TListBox;
      GroupBox2: TGroupBox;
      BtInserir: TBitBtn;
      BtLocalizar: TBitBtn;
      BtAltera: TBitBtn;
      BtExcluir: TBitBtn;
      BtListar: TBitBtn;
      BtSair: TBitBtn;
      procedure FormCreate(Sender: TObject);
      procedure BtInserirClick(Sender: TObject);
      procedure BtsairClick(Sender: TObject);
      procedure BtcalcularClick(Sender: TObject);
      procedure BtlistarClick(Sender: TObject);
      procedure BtLocalizarClick(Sender: TObject);
      procedure BtExcluirClick(Sender: TObject);
      procedure BtAlteraClick(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;
  
  ///////// Início da Declaração da Estrutura de Dados
      Ptr   = Integer;
      TipoPessoa = Record
                 Nome             : String;
                Peso,Altura,Imc : Real;
                Diagnostico     : String;
              End;
  
      ListaPessoa = Record
                     ItemPessoa   : array [Min..Max] of TipoPessoa;
                    Primeiro : Ptr;
                    Ultimo   : Ptr;
                  end;
  ///////// Início da Declaração da Estrutura de Dados
  
  var
    Form1  : TForm1;
    L      : ListaPessoa;
    Pessoa : TipoPessoa;
    Aux    : Integer;
  
  implementation
  
  {$R *.dfm}
  
  
  //////////////////////////////////////////
  Procedure FLVazia(var Lista:ListaPessoa);
  //////////////////////////////////////////
  Begin
    Lista.Primeiro := Min;
    Lista.Ultimo   := Lista.Primeiro;
  end;
  
  
  /////////////////////////////////////////////
  procedure TForm1.FormCreate(Sender: TObject);
  /////////////////////////////////////////////
  begin
     FLVazia(L);
  end;
  
  
  //////////////////////////////////////////////////
  procedure Insere(x:TipoPessoa; var Lista:ListaPessoa);
  //////////////////////////////////////////////////
  begin
      if Lista.Ultimo > Max then
          showmessage('Erro: Lista Cheia!!!')
      else
      begin
          Lista.ItemPessoa[Lista.Ultimo] := x;
          Lista.Ultimo := Lista.Ultimo + 1;
      end;
  end;
  
  
  //////////////////////////////////////////////////////////
  Function Localiza (Y:String; Lista:ListaPessoa) : integer;
  //////////////////////////////////////////////////////////
  
  var
          i:integer;
  
  Begin
          for i := Lista.Primeiro to Lista.Ultimo -1 do begin
            if y=Lista.ItemPessoa[i].Nome then begin
            Localiza:=i;
            exit;
          end;
          Localiza := 0;
         end;
  end;
  
  
  //////////////////////////////////////////////////
  Function Vazia (var Lista:ListaPessoa): boolean;
  //////////////////////////////////////////////////
  
  begin
    Vazia := Lista.Primeiro = Lista.Ultimo;
  end;
  
  
  /////////////////////////////////////////////////////////////////////
  procedure Remove (P: Ptr; var Lista: ListaPessoa; var y: TipoPessoa);
  /////////////////////////////////////////////////////////////////////
  begin
      if (Vazia(Lista)) or (p >= Lista.Ultimo) then
          Showmessage ('Lista vazia ou pessoa não cadastrada!')
      else begin
          y := Lista.ItemPessoa[p];
          Lista.Ultimo := Lista.Ultimo - 1;
          for Aux := P to Lista.Ultimo -1 do
              Lista.ItemPessoa[Aux] := Lista.ItemPessoa[Aux+1]
      end;
  end;
  
  //////////////////////////////////////////////
  procedure TForm1.BtsairClick(Sender: TObject);
  //////////////////////////////////////////////
  begin
     Close
  end;
  
  
  /////////////////////////////////////////////////
  procedure TForm1.BtInserirClick(Sender: TObject);
  /////////////////////////////////////////////////
  var
  a:integer;
  
  begin
  Pessoa.Nome:=EdNome.text;
  Pessoa.Peso:=strtofloat(EdPeso.text);
  Pessoa.Altura:=strtofloat(EdAltura.text);
  Insere(Pessoa,L);
  Listreg.Items.Add('Nome: '+Pessoa.Nome);
  Listreg.Items.Add('Peso: '+FloatToStr(Pessoa.Peso)+' Kg.');
  Listreg.Items.Add('Altura: '+FloatToStr(Pessoa.Altura)+' M');
  Listreg.Items.Add('IMC: '+FormatFloat('0.00',Pessoa.Imc));
  Listreg.Items.Add('Diagnóstico: '+Pessoa.Diagnostico);
  Listreg.Items.Add('-----------------------------------------------');
  Ednome.Clear;
  Edpeso.Clear;
  Edaltura.Clear;
  LbResImc.Caption:='';
  LbResDiag.Caption:='';
  Ednome.SetFocus;
  
  end;
  
  
  ///////////////////////////////////////////////
  procedure TForm1.BtLocalizarClick(Sender: TObject);
  ///////////////////////////////////////////////
    var Busca:String;
  begin
          Busca:=InputBox('Localiza','digite o nome da pessoa:','');
          Aux:=Localiza(Busca,l);
          if Aux <> 0 then
          Begin
                ListReg.Clear;
                 ListReg.Items.Add('Nome: '+L.ItemPessoa[Aux].Nome);
                 ListReg.Items.Add('Peso: 
'+FloatToStr(L.ItemPessoa[Aux].Peso)+' Kg.');
                 ListReg.Items.Add('Altura: 
'+FloatToStr(L.ItemPessoa[Aux].Altura)+'  M.');
                 ListReg.Items.Add('IMC: 
'+FormatFloat('0.00',L.ItemPessoa[Aux].Imc));
                 ListReg.Items.Add('Diagnóstico: 
'+L.ItemPessoa[Aux].Diagnostico);
         end
         else
            ShowMessage('Pessoa não encontrada');
  
  end;
  
  
  //////////////////////////////////////////////////
  procedure TForm1.BtcalcularClick(Sender: TObject);
  //////////////////////////////////////////////////
  begin
      
Pessoa.Imc:=strtofloat(EdPeso.text)/(strtofloat(EdAltura.text)*strtofloat(EdAltura.text));
      Lbresimc.Caption:=FormatFloat('0.00',Pessoa.Imc);
      if Pessoa.Imc < 20 then
          Begin
          LbResDiag.Caption:='Desnutrição';
          Pessoa.Diagnostico:=LbResDiag.Caption;
          End
      else
          if (Pessoa.Imc>=20) and (Pessoa.Imc<=25) then
          Begin
          LbResDiag.Caption:='Ideal';
          Pessoa.Diagnostico:=LbResDiag.Caption;
          End
      else
          if (Pessoa.Imc>=25) and (Pessoa.Imc<=30) then
          Begin
          LbResDiag.Caption:='Excesso de Peso';
          Pessoa.Diagnostico:=LbResDiag.Caption;
          End
  
      else
          if (Pessoa.Imc>=30) and (Pessoa.Imc<=35) then
          Begin
          LbResDiag.Caption:='Obesidade';
          Pessoa.Diagnostico:=LbResDiag.Caption;
          End
      else
          if Pessoa.Imc > 35 then
          Begin
          LbResDiag.Caption:='Obesidade Mórbita';
          Pessoa.Diagnostico:=LbResDiag.Caption;
          End
  end;
  
  /////////////////////////////////////////////////
  procedure TForm1.BtExcluirClick(Sender: TObject);
  /////////////////////////////////////////////////
  Var
  Busca : string;
  x     : TipoPessoa;
  begin
       Busca         :=  InputBox('Excluir','Digite o nome da pessoa a ser 
excluída:','');
      Aux           := Localiza(Busca,L);
      x.Nome        := L.ItemPessoa[Aux].Nome;
      x.Peso        := L.ItemPessoa[Aux].Peso;
      x.Altura      := L.ItemPessoa[Aux].Altura;
      x.Imc         := L.ItemPessoa[Aux].Imc;
      x.Diagnostico := L.ItemPessoa[Aux].Diagnostico;
      Remove (Aux,L,x);
      ListReg.Clear;
      ListReg.Items.Add('Nome: '+x.nome);
      ListReg.Items.Add('Peso: '+floattostr(x.Peso)+' Kg');
      ListReg.Items.Add('Altura: '+floattostr(x.Altura)+' M.');
      ListReg.Items.Add('IMC: '+FormatFloat('0.00',x.Imc));
      ListReg.Items.Add('Diagnóstico: '+x.Diagnostico);
      if Aux <> 0 then
          showmessage ('Pessoa exclída com sucesso!')
      else
          showmessage ('Impossível excluir! Aluno não encontrado!');
      ListReg.Clear;
      EdNome.Clear;
      EdPeso.Clear;
      EdAltura.Clear;
  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('Nome: '+L.ItemPessoa[i].Nome);
      ListReg.Items.Add('Peso: '+FloatToStr(L.ItemPessoa[i].Peso)+' Kg.');
      ListReg.Items.Add('Altura: '+FloatToStr(L.ItemPessoa[i].Altura)+' M');
      ListReg.Items.Add('IMC: '+FormatFloat('0.00',L.ItemPessoa[i].Imc));
      ListReg.Items.Add('Diagnóstico: '+L.ItemPessoa[i].Diagnostico);
      ListReg.Items.Add('-----------------------------------------------');
    end;
  end;
  
  ////////////////////////////////////////////////
  procedure TForm1.BtAlteraClick(Sender: TObject);
  ////////////////////////////////////////////////
    var Busca:String;
  begin
          Busca:=InputBox('Alteração','digite o nome da pessoa:','');
          Aux:=Localiza(Busca,l);
          if Aux <> 0 then
          Begin
                L.ItemPessoa[Aux].Nome := EdNome.Text;
                 L.ItemPessoa[Aux].Peso := StrToFloat(EdPeso.Text);
                 L.ItemPessoa[Aux].Altura := StrToFloat(EdAltura.text);
         end
         else
            ShowMessage('Pessoa não encontrada');
  
  
  end;
  
  end.
  
  


  :: Toninho Destéfani - [EMAIL PROTECTED] ::







                
---------------------------------
 Yahoo! Messenger com voz - Instale agora e faça ligações de graça. 

[As partes desta mensagem que não continham texto foram removidas]






-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a