Você já deve ter visto muitos artigos sobre criação de formulários de cadastro, com herança, com as operações de navegação, incluir, excluir, salvar e cancelar. Em aplicações MDI, os formularios filhos são criados dentro de um formulário pai e podemos abrir varios formulários ao mesmo tempo.

Agora imagine ter no seu formulário pai uma barra de ferramentas com as operações de navegação, incluir, excluir, salvar e cancelar, que controle estas operações nos formulários filhos.

É isto que este artigo se propõe ensinar você a criar uma barra desta.

Abra o Delphi.

Aqui utilizarei a versão 7 do Delphi, nesta versão ao abrir o Delphi, ele já traz uma nova aplicação.

Vamos alterar algumas propriedades de nosso formulário: Name para FrmPai e FormStyle para fsMDIForm, WindowState para wsMaximized.

Coloque no formulário um componente ImageList da palheta Win32.

De um duplo-clique sobre o ImageList e clique no botão Add, as imagens no Delphi ficam no seguinte caminho: C:\Arquivos de programas ou Program Files\Arquivos comuns ou Common Files\Borland Shared\Images\Buttons. Selecione o arquivo de imagem DOCSINGL e clique em Abrir, Ao ser questionado se deseja separar o Bitmap em 2, clique em Yes. Será inserido uma segunda imagem, mais apagada, selecione-a e clique em Delete.

Repita o procedimento adicionando os arquivos de imagem: FLOPPY, TRASH e UNDO, ARROW1U, ARROW1D, ARROW1L e ARROW1R respectivamente, veja a imagem abaixo:

 
 
Clique em OK, altere a propriedade Name do ImageList para ImLst.

Coloque no formulário um componente ActionList da palheta Standard. Altere sua propriedade Image para ImLst e Name para ActLst.

De um duplo-clique sobre o ActionList, será aberta a janela Editing FrmPai.ActLst, Na parte superior da janela há um botão com uma seta, clique na seta e depois em New Standard Action ou tecle Ctrl + Ins. Será aberta a janela Standard Action Classes, role a barra de rolagem até aparecer a classe Dataset. Mantenha a tecla Ctrl pressionada e clique em TDataSetFirst, depois em TDataSetPrior, depois em TDataSetNext, depois em TDataSetLast, depois em TDatasetInsert, depois em TDatasetDelete, depois em TDatasetPost e por último clique em TDatasetCancel, para encerrar clique em OK.

Será exibida novamente a janela Editing FrmPai.ActLst, mas note que agora em Categories temos a categoria Dataset, clique sobre ela, em Actions é exibido as oito Ações que selecionamos, o que temos de fazer agora é personalizar cada uma destas ações. Selecione a acão DataSetFirst1 e vamos alterar algumas propriedades:

Caption: F2 Primeiro

ImageIndex: 4
ShortCut: F2
Name: DstPrimeiro

Selecione a acão DataSetPrior1 e vamos alterar algumas propriedades:

Caption: F3 Anterior
ImageIndex: 6
ShortCut: F3
Name: DstAnterior

Selecione a acão DataSetNext1 e vamos alterar algumas propriedades:

Caption: F4 Próximo
ImageIndex: 7
ShortCut: F4
Name: DstProximo

Selecione a acão DataSetLast1 e vamos alterar algumas propriedades:

Caption: F5 Último
ImageIndex: 5
ShortCut: F5
Name: DstUltimo

Selecione a acão DatasetInsert1 e vamos alterar algumas propriedades:

Caption: F6 Novo
ImageIndex: 0
ShortCut: F6
Name: DstNovo

Selecione a acão DataSetDelete1 e vamos alterar algumas propriedades:

Caption: F7 Excluir
ImageIndex: 2
ShortCut: F7
Name: DstExcluir

Selecione a acão DataSetPost1 e vamos alterar algumas propriedades:

Caption: F8 Salvar
ImageIndex: 1
ShortCut: F8
Name: DstSalvar


Selecione a acão DataSetCancel1 e vamos alterar algumas propriedades:

Caption: F9 Cancelar
ImageIndex: 3
ShortCut: F9
Name: DstCancelar

Após as configurações a janela Editing FrmPai.ActLst, deve estar como a figura abaixo:

 
 
Feche a janela Editing FrmPai.ActLst.

Coloque no formulário um componente MainMenu da palheta Standard. Altere sua propriedade Name para MmPai.

De um duplo-clique sobre o MmPai, será aberta a janela FrmPai.MmPai.

Na propriedade Caption digite &Cadastro e tecle Enter.

Na janela FrmPai.MmPai, clique em Cadastro e tecle seta para baixo, Na propriedade Caption digite &Clientes e tecle Enter.

Feche a anela FrmPai.MmPai.

Coloque no formulário um componente ToolBar da palheta Win32.

Altere a propriedade Name para TlbPai, Flat para True, Autosize para True, Images para ImLst e ShowCaptions para True.

Clique com o botão direito do mouse sobre a ToolBar e no menu de contexto clique em New Button, repita mais três vezes esta operação.

Clique com o botão direito do mouse sobre a ToolBar e no menu de contexto clique em New Separator.

Clique com o botão direito do mouse sobre a ToolBar e no menu de contexto clique em New Button, repita mais três vezes esta operação.

Selecione o primeiro botão e altere as seguintes propriedades:

Action: DstPrimeiro
Name: TlbBPrimeiro

Selecione o segundo botão e altere as seguintes propriedades:

Action: DstAnterior
Name: TlbBAnterior

Selecione o terceiro botão e altere as seguintes propriedades:

Action: DstProximo
Name: TlbBProximo

Selecione o quarto botão e altere as seguintes propriedades:

Action: DstUltimo
Name: TlbBUltimo

Selecione o quinto botão que é o separador e altere as seguintes propriedades:

Name: TlbBSeparador

Selecione o sexto botão e altere as seguintes propriedades:

Action: DstNovo
Name: TlbBNovo

Selecione o sétimo botão e altere as seguintes propriedades:
Action: DstExcluir
Name: TlbExcluir

Selecione o oitavo botão e altere as seguintes propriedades:

Action: DstSalvar
Name: TlbBSalvar

Selecione o nono botão e altere as seguintes propriedades:

Action: DstCancelar
Name: tlbBCancelar

Sua tela deve estar como a figura abaixo:

 
É hora se salvar nosso projeto, clique em File → Save All, salve a Unit como Uprincipal e o projeto como Pteste.

Clique em File/New/Form.

Altere a propriedade Name para FrmClientes, Caption para Clientes e FormStyle para fsMDIChild, salve este formulário como Uclientes.

Coloque no formulário um componente ClientDataSet da palheta Data Access e altere sua propriedade Name para CdsClientes. De um clique na propriedade FieldDefs e outro clique nas reticências ao lado da propriedade. Será aberta a janela Editing CdsClientes. FieldDefs, clique duas vezes no botão Add New na parte superior da janela.

Selecione cdsClientesField1 e altere as seguintes propriedades:

Name: id
DataType: ftAutoInc

Selecione cdsClientesField2 e altere as seguintes propriedades:

Name: Nome
DataType: ftString
Size: 35

Feche a janela Editing CdsClientes. FieldDefs. Clique com o botão direito do mouse sobre o ClientDataSet e depois em Create Dataset.

Clique novamente com o botão direito do mouse sobre o ClientDataSet e depois em Fields Editor...

Clique com o botão direito do mouse sobre o Fields Editor e depois em Add all fields.

Mantendo a tecla Shift pressionada, clique sobre os campos id e nome, ambos ficaram selecionados, arraste os dois campos para o formulário.

Ajeite os componentes para que fique parecido com a figura abaixo:

 
No evento onClose deste formulário digite:
Action := caFree;
FrmClientes := nil;

Volte ao formulário pai e clique em Project → Options, na janela que se abriu, clique na guia Forms e mova FrmClientes da lista Auto-create forms para a lista Available forms e clique em OK.

Clique em File → Use Unit, selecione Uclientes e clique em OK.

No formulário pai, clique no menu cadastro que criamos e em seguida clique em Clientes, digite o seguinte código:

if frmClientes = nil then
  frmClientes := TfrmClientes.Create(Self);

Salve tudo e tecle F9. Você deverá obter uma tela como a abaixo, ao clicar em Cadastro → Clientes:

 
 
Espero que tenham gostado e até a próxima.