DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Criando um formulário padrão de cadastro com teclas de atalho e sem nenhuma linha de código

A herança visual de formulários é um recurso muito utilizado por qualquer programador Delphi, este recurso poupa o programador de ficar construíndo formulários que são sempre iguais, como os de cadastro por exemplo.

Este artigo destina-se tanto a programadores iniciantes, quanto avançados e mostra como criar um formulário padrão de cadastro com teclas de atalho e sem nenhuma linha de código, apenas utilizando componentes nativos do Delphi. 

 
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, mas não é o que queremos, desejamos apenas um novo Form. Por isso, clique em File e depois em Close All, em seguida clique em File/New/Form.

Vamos alterar algumas propriedades de nosso formulário: Name para FrmPai e BorderStyle para BsDialog, Position para poScreenCenter.

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, respectivamente, veja a imagem abaixo:

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

Coloque no formulário um componente ActionList1 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 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 quatro Ações que selecionamos, o que temos de fazer agora é personalizar cada uma destas ações. Selecione a acão DatasetInsert1 e vamos alterar algumas propriedades:

Caption: F2 Novo

ImageIndex: 0

ShortCut: F2

Name: DstNovo

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

Caption: F3 Excluir

ImageIndex: 2

ShortCut: F3

Name: DstExcluir

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

Caption: F4 Salvar

ImageIndex: 1

ShortCut: F4

Name: DstSalvar

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

Caption: F5 Cancelar

ImageIndex: 3

ShortCut: F5

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 quatro BitBtn's da palheta Additional.

Selecione o BitBtn1 e altere as seguintes propriedades:

Action: DstNovo

Name: BtnNovo

Width: 89

Selecione o BitBtn2 e altere as seguintes propriedades:

Action: DstExcluir

Name: BtnExcluir

Width: 89

 
Selecione o BitBtn3 e altere as seguintes propriedades:

Action: DstSalvar

Name: BtnSalvar

Width: 89


Selecione o BitBtn4 e altere as seguintes propriedades:

Action: DstCancelar

Name: BtnCancelar

Width: 89

Crie uma pasta Chamada de Herança e salve este formulário como Upai dentro desta pasta.

Veja na figura abaixo, como ficou o formulário:

 
Vamos agora colocar nosso formulário no repositório de objetos do Delphi, clique com o botão direito sobre o formulário e em seguida em Add to Repository...

Na janela Add to Repository, que foi aberta prencha os campos Title e Descripition com Herança de Formulário, em Page selecione Forms e em Author coloque o seu nome, depois clique em OK.

Feche o nosso formulário através do menu File/Close All.


Utilizando nosso formulário


Clique em File/New/Application, será criado o projeto Project1, o formulário Form1 e a Unit Unit1.

Feche o formulário Form1 e a Unit Unit1, ao ser perguntado se deseja salvar a Unit1, clique em No. Clique em File/New/Other..., selecione a aba Forms, dentro desta aba selecione Herança de Formulário, na parte de baixo marque Inherit, como mostra a figura abaixo:

 
 
 Clique em OK.

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:

 
 
 
 

Tecle F9.


Teste as teclas de atalho, teclando F2, preencha apenas o campo Nome e tecle F4, veja a figura abaixo, os botões F2 Novo e F3 Excluir são habilitados automaticamente, isto é feito pelas Actions de Dataset:

 
Espero que tenham gostado do artigo, até a próxima.
 




    7 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Juan Gonzales Torres
Boa noite

Interessante o uso do actionlist para inserir, exclusão, alteração e cancelamento. Faltando somente o ALTERAÇÃO/EDIÇÃO.

Mas descordo:

1) O uso do clientdaset no formulário e não no DataModule
2) DataType: ftAutoInc - isto deveria estar a cargo da base de dados, visto que em rede poderia ter uma duplicidade de ID.

Atenciosamente


[há +1 ano] - Responder

 

[autor] Eriley Vilagrande Barbosa
Bom dia, obrigado por seus comentários.
 
Faltando Alteração/Edição, o DataSource possui uma propriedade chamada de AutoEdit, que por padrão já é True, ou seja, ao digitar algo num componente Dataware qualquer, o Dataset entra em modo de edição automaticamente, isto poupa o usuário de clicar em um botão Editar, fazer a alteração e depois clicar em um botão Salvar.
 
Aplicações grandes e reais, não utilizam Data Module, pois, devido ao uso de pacotes são dificeis de gerenciar, toda as empresas que trabalhei até agora não usam Data Module.
 
Estou usando o componente ClientDataset, apenas como tabela em memória, se estivesse usando uma base de dados, com certeza deixaria o auto incremento a cargo do SGBD.
 
Atenciosamente
 
Eriley
[há +1 ano] - Responder
 

Gustavo Vieira Matos
Boa tarde a todos!!!!!!!!!!!!
Muito bom o conteudo foi bom descobri os 'eventos' de banco do actionlist
So descordo da ideia de manter clientdataset na tela
Atenciosamente
Gustavo
[há +1 ano] - Responder
 

[autor] Eriley Vilagrande Barbosa

Obrigado pelo comentário Gustavo, como eu disse anteriormente aplicações grandes e reais, não utilizam Data Module, pois, devido ao uso de pacotes são dificeis de gerenciar, toda as empresas que trabalhei até agora não usam Data Module.

Atenciosamente
 
Eriley
[há +1 ano] - Responder
 

Jaquisson Nunes
Boa noite!

Sou novo no forum e não sei muito bem como e nem onde postar...
Mas vamos ver se vc consegue me dar um help:
Sou iniciante no Delphi e estou com dificuldades em separar os dados de uma linha do ListBox em colunas.
Ex.:
No meu ListBox eu tenho os seguintes dados:
20:05 | segunda-Feira | e:\Arq.rar
17:22 | terça-Feira | C:\Arquivos de progrmas\App2.exe
10:10 | quarta-Feira | e:\Arq.txt
13:30 | quinta-Feira | C:\windows\App3.exe

Gostaria de receber estes dados em 3 variáveis diferentes:
Col1= 20:05
Col2= segunda-Feira
Col3= e:\Arq.rar
e assim por diante, linha a linha.

Tentei trabalhar com alguns dos componentes que possuem grid, pois fica mais "bonitinho", mas não me acertei também. Estes dados eu importo de um txt para o ListBox. Acho que separar isso de um componente que possua GRID é mais fácil, mas não consegui nem importar o arquivo txt (risos).

Se puder me dar uma luz sobre como receber separadamente cada coluna...
Abraço!
[há +1 mês] - Responder

 

Wesley Yamazack
Olá Jaquisson, seja bem vindo ao portal DevMedia!

Para este tipo de dúvida geralmente usamos o Fórum mesmo, veja este no link http://www.devmedia.com.br/forum/delphi,
por lá você encontrará diversos colegas que vão poder lhe ajudar.

Porém nesta tua dúvida eu gostaria de lhe ajudar. Estou finalizando um artigo e amanhã de manha bem cedo(22/03/2012) o mesmo estará no ar, creio que ele irá lhe atender 100%.

Qualquer dúvida você já posta no próprio artigo amanhã.

Peço que você aguarde apenas para terminar o mesmo, ok ?

Obrigado e um abraço.
[há +1 mês] - Responder
 

Wesley Yamazack
Olá Jaquisson Nunes,conforme havia lhe prometido, segue link do artigo para te ajudar : http://www.devmedia.com.br/usando-separador-no-listbox-delphi/23946

Um abraço e qualquer coisa só entrar em contato.
[há +1 mês] - Responder
 



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Eriley Vilagrande Barbosa

É formado em informatica bacharelado pela URCAMP/Bagé, Programador Delphi, Firebird, SQL Server e Oracle.


Space do autor
Estatísticas #
Favorito:
Comentários:
Feedback:
Utilidade:
4   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03