Postagens Recentes
quarta-feira, 23 de outubro de 2013
Programação orientada a objetos - 1º Parte
Olá amigos,
Quero apresentar meu primeiro artigo sobre Programação Orientada à Objetos usando Delphi.
O objetivo deste artigo é mostrar na prática como criar um programa orientado à objeto em Delphi, não apresentar conceitos sobre Orientação à Objetos.
Precisamos desenvolver um programa Orientado a Objeto para cadastrar clientes.
Para cada clientes cadastrado temos o Nome, CPF e a Data de nascimento.
- Crie um novo projeto e salve como POO_Delphi.
- Crie uma nova Unit, salve com o nome uPessoa e coloque o código abaixo:
unit uPessoa;
interface
uses
// Foi declaro esta uses por causa do TDateTime
SysUtils;
type TPessoa = class(TObject)
protected
FNome: string;
FCpf: string;
FDtNasc: TDateTime;
public
property Nome: string read FNome write FNome;
property CPF: string read FCpf write FCpf;
property DtNasc: TDateTime read FDtNasc write FDtNasc;
end;
implementation
{ TPessoa }
end.
- Crie um novo formulário, coloque 2 TGroupBox, três TLabel, dois TEdit, um TListView e um TMaskEdit.
- Em uses (logo depois da interface, inclua a unit uPessoa.
- Altere a propriedade Name e Caption de cada um deles conforme mostrado abaixo:
TGroupBox - gbxCadastro - Cadastro
TGroupBox - gbxConsulta - Consulta
TLabel - lbNome - Nome:
TLabel - lbCPF - CPF:
TLabel - lbDtNasc - Dt. nasc.:
TEdit - eNome
TEdit - eCPF
TButton - btnSalvar - Salvar
TButton - btnRemover - Remover
TMaskEdit - meDtNasc
* Atenção *
TListView - Name: lvConsulta
ReadOnly: True
RowSelect: True
ViewStyle: vsReport
Columns adicione 4 colunas e altere a propriedade Caption de cada uma das colunas.
Código, Nome, CPF e Dt. nasc.
- Declare a procedure e a function na seção private
procedure proGravaRegistro(const Value: TPessoa; ListView: TListView);
function fncGetRegistro(ListView: TListView): TPessoa;
- Implemente a procedure e a function declarada
procedure TfrmMain.proGravaRegistro(const Value: TPessoa; ListView: TListView);
begin
with ListView.Items, Add do
begin
Caption := IntToStr(ListView.Items.Count);
SubItems.Add(Value.Nome);
SubItems.Add(Value.CPF);
SubItems.Add(DateToStr(Value.DtNasc));
end;
end;
function TfrmMain.fncGetRegistro(ListView: TListView): TPessoa;
begin
Result := TPessoa.Create;
if Assigned(lvConsulta.Selected) then
begin
Result.Nome := ListView.Items.Item[ListView.Selected.Index].SubItems[0];
Result.CPF := ListView.Items.Item[ListView.Selected.Index].SubItems[1];
Result.DtNasc := StrToDate(ListView.Items.Item[ListView.Selected.Index].SubItems[2]);
end;
end;
- No evento do OnClick do botão btnSalvar, implemente o seguinte código:
procedure TfrmMain.btnSalvarClick(Sender: TObject);
procedure proConsiste(Value: TCustomEdit; Msg: string);
begin
if Trim(Value.Text) = '' then
begin
ShowMessage(Msg);
Value.SetFocus;
Abort;
end;
end;
var
_rPessoa: TPessoa;
begin
proConsiste(eNome, 'Informe o nome.');
proConsiste(eCPF, 'Informe o CPF.');
proConsiste(meDtNasc, 'Informe a data de nascimento.');
try
StrToDate(meDtNasc.Text);
except
ShowMessage('Data de nascimento não é uma data válida.');
meDtNasc.SetFocus;
Abort;
end;
_rPessoa := TPessoa.Create;
try
_rPessoa.Nome := eNome.Text;
_rPessoa.CPF := eCPF.Text;
_rPessoa.DtNasc := StrToDate(meDtNasc.Text);
proGravaRegistro(_rPessoa, lvConsulta);
ShowMessage('Cadastro realizado com sucesso!');
eNome.Clear;
eCPF.Clear;
meDtNasc.Clear;
finally
_rPessoa.Free;
end;
end;
- No evento OncClick do btnRemover, implemente o seguinte código:
procedure TfrmMain.btnRemoverClick(Sender: TObject);
begin
if not Assigned(lvConsulta.Selected) then
ShowMessage('Selecione um registro.')
else
begin
lvConsulta.Selected.Delete;
eNome.Clear;
eCPF.Clear;
meDtNasc.Clear;
end;
end;
- No evento OnClick do lvConulta, implemente o seguinte código:
procedure TfrmMain.lvConsultaClick(Sender: TObject);
var
_rPessoa: TPessoa;
begin
_rPessoa := fncGetRegistro(lvConsulta);
try
if _rPessoa.Nome <> '' then
begin
eNome.Text := _rPessoa.Nome;
eCPF.Text := _rPessoa.CPF;
meDtNasc.Text := DateToStr(_rPessoa.DtNasc);
end;
finally
_rPessoa.Free;
end;
end;
- Execute o programa que acabamos de desenvolver, preencha os campos e teste as funcionalidades.
Bem pessoal, espero ter colaborado e qualquer dúvida postem aqui que eu responderei o mais rápido possível.
Em breve estarei postando a segunda parte desta série. Aguardem...
Você pode baixar o fonte do programa clicando aqui,
Smiley :)
:D
:)
:[
;)
:D
:O
(6)
(A)
:'(
:|
:o)
8)
(K)
(M)
Assinar:
Postar comentários (Atom)
Visitar o site do autor: SC Software
Nenhum comentário:
Postar um comentário