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