Curso Delphi – Criando uma Aplicação do Início ao fim - Parte 4
Formulário Modelo
Neste artigo irei criar um formulário que servirá como padrão, ou seja, iremos
herdar deste formulário, para criarmos os formulários de cadastro de cliente e produto,
para que não precisemos fazer vários formulários diferentes, isto serve também para o
usuário se identificar melhor com o layout do formulário.
Crie um novo formulário em File, New, Form – Delphi e salve-o com UfrmModelo
e mude a propriedade name para frmModelo. Coloque um componente panel da paleta
standard e apague o conteúdo da propredade caption e mude a propriedade align para
altop. Adicione ao panel sete componentes Bitbtn da paleta additional. Coloque um
componente ImageList da paleta Win32 e dê dois clique sobre o mesmo e tecle no
botão Add e coloque algumas figuras a sua escolha da pasta C:\Program Files\Common
Files\CodeGear Shared\Images\GlyFX\Icons\XP\BMP\16x16 Coloque agora no formulário
um DataSource da paleta DataAccess e mude a propriedade name para DTS, logo
depois Coloque o componente BalloonHint da paleta Additional e por fim um ActionList
da paleta Standard. Selecione o componente ActionList e mude a propriedade images
para ImageList1, dê dois clique no ActionList e tecle na setinha para baixo do lado do
botão
New Action e abrirá a seguinte tela:
Escolha New Standard Action ou tecle Ctrl+Ins, na tela que se abre escolha os itens
selecionados na tela a seguir:
Selecione os itens marcados dentro do dataset. Qual é a idéia aqui? A idéia e fazer o
controle dos botões direto no ActionList, assim ele irá controlar os botões, ou seja, se o
usuário clicar no botão novo ele desabilita automaticamente o botões excluir, os
botões funcionaram de acordo com o estado da tabela. Assim que selecionar os itens
clique em Ok e selecione a primeira ação e mude as seguintes propriedades:
Selecione o primeiro botão e mude as seguintes propriedades:
O formulário deverá ficar assim:
Vamos agora implementar os botões, dê dois clique no componente ActionList e
selecione a ação AC_Novo e dê dois clique sobre ela e abrirá o editor de código do
Delphi, coloque o seguinte código a seguir:
procedure TfrmModelo.AC_NovoExecute(Sender: TObject);
begin
DTS.DataSet.Append;
end;
Na ação AC_Alterar coloque o seguinte código:
procedure TfrmModelo.AC_AlterarExecute(Sender: TObject);
begin
DTS.DataSet.Edit;
end;
Na ação AC_Excluir coloque o seguinte código:
procedure TfrmModelo.AC_ExcluirExecute(Sender: TObject);
begin
if not DTS.DataSet.IsEmpty then
begin
DTS.DataSet.Delete;
if DTS.DataSet is TClientDataSet then
TClientDataSet(DTS.DataSet).ApplyUpdates(0);
end;
end;
Nesta ação excluir verificamos se o registro existe através da propriedade IsEmpty,
logo depois apagamos o mesmo pelo delete e logo depois gravamos no banco a
exclusão usando o método ApplyUpdates.
Na ação AC_Cancelar coloque o seguinte código:
procedure TfrmModelo.AC_CancelarExecute(Sender: TObject);
begin
TClientDataSet(DTS.DataSet).CancelUpdates;
end;
Na ação AC_Gravar coloque o seguinte código:
procedure TfrmModelo.AC_GravarExecute(Sender: TObject);
begin
TClientDataSet(DTS.DataSet).ApplyUpdates(0);
end;
Crie duas novas ações no actionList e dê o nome de Pesquisa e Sair, Implemente o
último botão com a ação sair , colocando assim:
procedure TfrmModelo.AC_SairExecute(Sender: TObject);
begin
Close;
end;
A ação do botão pesquisar implementaremos futuramente.
Vamos imaginar uma situação, o usuário está digitando um novo registro, de repende
ele deseja fechar o formulário sem antes salvar ou cancelar, nós não deixaremos que
isso aconteça, para isso selecione o frmModelo e no evento onClose coloque o
seguinte código:
procedure TfrmModelo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if dts.state in [dsEdit, dsInsert] then
begin
Action:= caNone;
ShowMessage('É necessário Você Salvar ou Cancelar. ');
frmModelo.SetFocus;
end;
end;
Neste código estou verificando se o Dataset está em estado de edição ou inserção,
caso ele esteja, eu não permito que o usuário feche o formulário.
Na próximo artigo, estarei falando sobre o formulário de cadastro de cliente e
formulário. Abraço e até lá.
Rubens Antunes - Autor do Livro: Delphi – Faça Uma Aplicação Comercial