Anda di halaman 1dari 9

SEQUNCIA PARA MONTAR UM FORMULRIO DE CADASTRO SIMPLES

1- Criar as tabelas no Database Desktop. 1.1 Abra o Database Desktop (Com o Delphi Aberto: Menu Tools/Database Desktop ou Iniciar/Todos os programas/Borland Delphi 7/Database Desktop) 1.2 Com o Database Desktop clique no Menu File/New/Table, escolha a opo Paradox em Table Type e Insira os campos da tabela. 1.3 Aps criar todos os campos necessrios, clique no boto Save As para Salvar a tabela, salvando-a na Pasta Dados. 2- Colocar um novo formulrio no projeto (Menu File/New/Form). 3- Alterar as seguintes propriedades do Formulrio. 3.1 Caption: Cadastro de ...; 3.2 Name: FrmCadastro_...; 3.3 BorderIcons: Clique no sinais de + a esquerda e defina False para biMinimise, False para biMaximize; 3.4 KeyPreview: True; 3.5 Escolha poDesktopCenter (Formulrio no Centro no vdeo). 4- Colocar a tabela no formulrio (Paleta de Componentes/BDE/Table) Clique na tabela e depois clique no formulrio. 5- Definir as propriedades da Tabela Clique na tabela e visualize suas propriedades. 5.1 Database Name: Escolha o Nome do Alis que voc criou para o projeto; 5.2 Name: Tb... (Ex.: TbClientes); 5.3 TableName: Escolha o nome da tabela com o qual voc vai montar o cadastro (Ex.: Se for um cadastro de Clientes, escolha a tabela de Clientes que voc salvou na Pasta Dados); 6- D um duplo Clique na Tabela; 7- Adicione os Campos da Tabela (Boto Direito do Mouse/Add Fields ou Ctrl + A); 8- Depois de todos os campos estarem selecionados, clique no Boto Ok; 9- Com os campos da tabela ainda sendo visualizados, selecione todos eles e arraste para o formulrio; 10- Acerte a ordem dos DbEdit (TabOrder de cada cada componente DbEdit) e a esttica dos mesmos dentro do formulrio. 11- Coloque a mscara em todos os campos que necessitar ou desejar. Ex.: CEP. 11.1 Selecione a Tabela, d um duplo clique na mesma, selecione o campo que deseja colocar a mscara e na propriedade EditMask coloque a mscara. (Exemplo: 99.999999 para CEP). Obs.: No campos do tipo Data (Data de Nascimento, Data de Entrada), alm de colocar a mscara na propriedade EditMask (99/99/9999), dever tambm na propriedade DisplayFormat escrever dd/mm/yyyy ou dd/mm/yy); 12- Se desejar que o campo chave primria da tabela for preenchido automaticamente, selecione o DbEdit que est ligado o campo e altere as seguintes propriedades deste componente:

12.1 Color: Escolha ClBtnFace (cor do formulrio); 12.2 ReadOnly (Somente Leitura): Escolha True; 12.3 TabStop (Passagem do foco pelo DbEdit): Escolha False; 13- Se desejar gerar o valor do campo chave primria automaticamente, ou seja, se o mesmo for um cdigo, por exemplo: 13.1 Clique na tabela, escolha o evento BeforeInsert (Antes de Inserir) e escreva: Nome_da_Tabela.Last; x:= Nome_da_TabelaNome_do_Campo.Value; Obs.: No esquea de declarar a varivel x como privada(uso exclusivo para este formulrio) na parte superior do formulrio, aps a palavra { private declarations} (x: Integer); 13.2 Clique na tabela, escolha o evento AfterInsert (Depois de Inserir) e escreva: Nome_da_TabelaNome_do_Campo.Value:= x + 1; 14- Abrir a Tabela 14.1 Evento OnActivate do formulrio (quando ativar o formulrio), escreva: Nome_da_Tabela.Open; 15- Fechar a Tabela 15.1 Evento OnClose do formulrio (quando fechar o formulrio), escreva: Nome_da_Tabela.Close; 16- Coloque o componente Panel dentro do formulrio (Paleta de Componentes/Standard/Panel), onde em cima do mesmo ser colocado os botes (BitBtn); 17- Dentro da Propriedade Align do Panel escolha AlTop (far com que o mesmo ocupe todo o comprimento na parte superior do formulrio); 18- Coloque agora o componente BitBtn (Paleta do Componentes/Additional/BitBtn), jogando o boto em cima do Panel. Obs.: Antes de trazer os botes para dentro do Panel, selecione o Panel. 19- Altere as seguintes propriedades do componente BitBtn: 19.1 Caption: &Primeiro (lembrando que o & far que a letra posterior a ele fique sublinhada) 19.2 Name: BtnPrimeiro. 19.3 Hint: Primeiro Registro. (Esta propriedade far com que aparea a mensagem Primeiro Registro) quando voc passar o mouse em cima do boto). 19.4 ShowHint: Escolha True. (Esta propriedade confirma a execuo da mensagem colocada na propriedade Hint); 19.5 Glyph: (Este componente permite colocar um desenho dentro do boto). Clique nas reticncias, clique no boto Load, escolha o Caminho: C:\Arquivos de programas\Arquivos comuns\Borland Shared\Images\Buttons e escolha um desenho relacionado com a funo do boto. 20- Coloque mais 07 componentes BitBtn no formulrio, alterando as propriedades mostradas nos itens 16.1, 16.2, 16.3, 16.4 e 16.5 de acordo com a funo de cada boto. (Captions: &Anterior, P&rximo, &ltimo, &Novo, &Excluir, &Salvar, &Cancelar).

21- Selecione o Boto Primeiro e no evento OnClick no mesmo escreva: (Lembre-se de que um duplo clique no boto tem o mesmo resultado do evento OnClick j que este evento o evento principal deste Boto); Nome_da_Tabela.First; BtnPrimeiro.Enabled:= False; BtnAnterior.Enabled:= False; BtnProximo.Enabled:= True; BtnUltimo.Enabled:= True; 22- Selecione o Boto Anterior e no evento OnClick no mesmo escreva: (Lembre-se de que um duplo clique no boto tem o mesmo resultado do evento OnClick j que este evento o evento principal deste Boto); Nome_da_Tabela.Prior; If Nome_da_Tabela.Bof then begin BtnPrimeiro.Enabled:= False; BtnAnterior.Enabled:= False; End; BtnProximo.Enabled:= True; BtnUltimo.Enabled:= True; 23- Selecione o Boto Prximo e no evento OnClick no mesmo escreva: (Lembre-se de que um duplo clique no boto tem o mesmo resultado do evento OnClick j que este evento o evento principal deste Boto); Nome_da_Tabela.Next; BtnPrimeiro.Enabled:= True; BtnAnterior.Enabled:= True; If Nome_da_Tabela.Eof then begin BtnProximo.Enabled:= False; BtnUltimo.Enabled:= False; End; 24- Selecione o Boto ltimo e no evento OnClick no mesmo escreva: (Lembre-se de que um duplo clique no boto tem o mesmo resultado do evento OnClick j que este evento o evento principal deste Boto); Nome_da_Tabela.Last; BtnPrimeiro.Enabled:= True; BtnAnterior.Enabled:= True; BtnProximo.Enabled:= False; BtnUltimo.Enabled:= False; 25- Selecione o Boto Novo e no evento OnClick no mesmo escreva: (Lembre-se de que um duplo clique no boto tem o mesmo resultado do evento OnClick j que este evento o evento principal deste Boto); Nome_da_Tabela.Insert; 26- Selecione o Boto Excluir e no evento OnClick no mesmo escreva: (Lembre-se de que um duplo clique no boto tem o mesmo resultado do evento OnClick j que este evento o evento principal deste Boto); If Nome_da_Tabela.isEmpty then (Verifica se a tabela no est vazia. Begin

MessageDlg(No h registro a ser excludo, MtWarning, [MbOk], 0); Abort; End; If MessageDlg(Confirma a excluso deste registro?, MtConfirmation, [MbYes, MbNo], 0) = MrYes then Begin Nome_da_Tabela.Delete; End; 27- Selecione o Boto Salvar e no evento OnClick no mesmo escreva: (Lembre-se de que um duplo clique no boto tem o mesmo resultado do evento OnClick j que este evento o evento principal deste Boto); If MessageDlg(Confirma todos os dados cadastrais?, MtConfirmation, [MbYes, MbNo], 0) = MrYes then begin Nome_da_Tabela.Post; End; 28- Fazer o foco pular para o primeiro DbEdit do formulrio, aps clicar no boto Novo. 28.1 - Selecione o DbEdit que desejar que o foco caia nele e na propriedade Name altere para DbEdt... (Exemplo: DbEdtNome). Obs. Se no DbEdit da chave primria eu coloquei para gerar o valor automtico, o foco dever cair no DbEdit prximo. 28.2 - Selecione a Tabela e no Evento AfterInsert escreva: DbEdt....SetFocus; (Exemplo: DbEdtNome.SetFocus;) 29- Fazer a Tecla Enter mudar de campo e colocar as teclas F2 para Novo, F3 para Excluir, F4 para Salvar e F5 para Cancelar: Selecione o Formulrio e no evento OnKeyDown escreva: - Fazer a Tecla Enter mudar de campo: If Key = Vk_Return then Begin SelectNext(ActiveControl, True, True); End; - Colocar as teclas F2, F3, F4 e F5: If Nome_da_Tabela.State = DsBrowse then Begin If Key = Vk_F2 then Begin Nome_da_Tabela.Insert; End; If Key = Vk_F3 then begin If Nome_da_Tabela.isEmpty then (Verifica se a tabela no est vazia. Begin MessageDlg(No h registro a ser excludo., MtWarning, [MbOk], 0); Abort; End; If MessageDlg(Confirma a excluso deste registro?, MtConfirmation, [MbYes, MbNo], 0) = MrYes then Begin

Nome_da_Tabela.Delete; End; end; End; If Nome_da_Tabela.State in DsEditModes then Begin If Key = Vk_F4 then Begin If MessageDlg(Confirma todos os dados cadastrais?, MtConfirmation, [MbYes, MbNo], 0) = MrYes then begin Nome_da_Tabela.Post; End; End; If Key = Vk_F5 then Begin Nome_da_Tabela.Cancel; End; End; 30- No permitir salvar sem preencher os campos obrigatrios. 30.1 Selecione os DbEdit dos campos obrigatrios e altere a propriedade Name de cada um; 30.2 Selecione a Tabela e no evento BeforePost (Antes de Salvar), escreva: If DbEdtNome.Text = then Begin MessageDlg(Campo Nome deve ser preenchido., MtWarning, [MbOk], 0); DbEdtNome.SetFocus; (Volta o foco para o DbEdtNome para ser preenchido) Abort; (No permite salvar) End; If DbEdtCPF.Text = . . - then Begin MessageDlg(Campo CPF deve ser preenchido., MtWarning, [MbOk], 0); DbEdtCPF.SetFocus; (Volta o foco para o DbEdtCPF para ser preenchido) Abort; (No permite salvar) End; Obs.: Coloque o tanto que quizer, bastando apenas alterar o nome do DbEdit e, se estiver mscara, alter-la na comparao de acordo com o valor da mesma. Ex.: mscara de CEP: 99.999-999. Comparao: If DbEdtCEP.Text = . - then 31- No permitir que a tabela perca os dados aps salvar. - Selecione a Tabela, evento AfterPost (Aps Salvar) escreva: Nome_da_Tabela.FlushBuffers; 32- Fazer com que emita um mensagem ao fechar o formulrio, caso voc no tenha salvo as alteraes: - Clique no Formulrio, evento OnCloseQuery (Quando fechar o formulrio) escreva: If Nome_da_Tabela.State in DsEditModes then Begin

Application.MessageBox (Salvar Alteraes?, MbIconquestion + Mb_YesNoCancel Of Idyes: Nome_da_Tabela.Post; IdNo: Nome_da_Tabela.Cancel; IdCancel: CanClose:= False; End; End;

Case

Confirmao,

33- Ativar e desativar os botes conforme a necessidade. Se eu inseri algum registro novo e ainda no salvei, os botes Salvar e Cancelar devero estar habilitados, j que eu posso salvar ou cancelar os dados deste novo registro. Os botes Novo e Excluir devero estar desabilitados j que antes de salvar ou cancelar eu no posso Inserir um novo e nem excluir. Se eu alterei algum registro e ainda no salvei, os botes Salvar e Cancelar devero estar habilitados, j que eu posso salvar ou cancelar os dados desta alterao. Os botes Novo e Excluir devero estar desabilitados j que antes de salvar ou cancelar eu no posso Inserir um novo e nem excluir. Se eu salvei algum registro, os botes Salvar e Cancelar devero estar desabilitados, j que enquanto eu no inserir um novo registro ou alterar algum eu no posso salvar ou cancelar. Os botes Novo e Excluir devero estar habilitados j que, no tendo nada a ser salvo eu posso Inserir um Novo e Excluir registros. Se eu cancelei algum registro, os botes Salvar e Cancelar devero estar desabilitados, j que enquanto eu no inserir um novo registro ou alterar algum eu no posso salvar ou cancelar. Os botes Novo e Excluir devero estar habilitados j que, no tendo nada a ser salvo eu posso Inserir um Novo e Excluir registros. Se eu exclui algum registro, os botes Salvar e Cancelar devero estar desabilitados, j que enquanto eu no inserir um novo registro ou alterar algum eu no posso salvar ou cancelar. Os botes Novo e Excluir devero estar habilitados j que, no tendo nada a ser salvo eu posso Inserir um Novo Registro e tambm Excluir.

ESTADOS DA TABELA 1. DsBrowse: No h nada a ser salvo e nem cancelado na tabela. (Movimentaes que fazem a tabela entrar neste Estado: Nome_da_Tabela.Post, Nome_da_Tabela.Cancel, Nome_da_Tabela.Delete); 2. DsEdit: Fiz alguma alterao em um registro da Tabela. (Movimentaes que fazem a tabela entrar neste Estado: Nome_da_Tabela.Edit Lembrando que se eu entrar em algum DbEdit e alterar uma letra como se eu estivesse dando o comando Nome_da_Tabela.Edit); 3. DsInsert: Inseri um novo registro na tabela. (Movimentaes que fazem a tabela entrar neste Estado: Nome_da_Tabela.Insert). MUDANAS DE ESTADO 1. Nome_da_Tabela.Insert: Passa do Estado DsBrowse para o Estado DsInsert; 2. Nome_da_Tabela.Edit: Passa do Estado DsBrowse para o Estado DsEdit; 3. Nome_da_Tabela.Delete: Do Estado DsBrowse permanece no Estado DsBrowse; 4. Nome_da_Tabela.Post: Passa do Estado DsEdit ou DsInsert para o Estado DsBrowse; 5. Nome_da_Tabela.Cancel: Passa do Estado DsEdit ou DsInsert para o Estado DsBrowse;

DsEdit

DsBrowse

DsInsert

33.1 Clique no Componente DataSource, que veio para o formulrio quando voc arrastou os campos, Evento OnStateChange escreva: If Nome_da_Tabela.State in DsEditModes then Begin BtnPrimeiro.Enabled:= False; BtnAnterior.Enabled:= False; BtnProximo.Enabled:= False; BtnUltimo.Enabled:= False; BtnNovo.Enabled:= False; BtnExcluir.Enabled:= False; BtnSalvar.Enabled:= True; BtnCancelar.Enabled:= True; End; If Nome_da_Tabela.State = DsBrowse then Begin BtnPrimeiro.Enabled:= True; BtnAnterior.Enabled:= True; BtnProximo.Enabled:= True; BtnUltimo.Enabled:= True; BtnNovo.Enabled:= True; BtnExcluir.Enabled:= True; BtnSalvar.Enabled:= False; BtnCancelar.Enabled:= False; End; 34- Colocar um Componente BitBtn no formulrio para o Boto Fechar. 34.1 Selecione o componente e altere as seguintes propriedades: Caption: &Fechar; Name: BtnFechar; Hint: Fecha o Formulrio; ShowHint: True; 34.2 Selecione o componente, evento OnClick, escreva: Close; Observao Importante: Todo o componente que seu nome incio (propriedade Name), ou seja, o nome que vem quando voc o coloca no formulrio, comear com Db necessrio preencher os seguintes propriedades: - DataSource: Nome do DataSource na qual a tabela est ligada; - DataField: Nome do Campo que deseja ficar ligado o componente. Nota: quando os campos so arrastados para dentro do formulrio, automaticamente estas duas propriedades j vem ligadas.

PARA UM FORMULRIO QUE TENHA PESSOA FSICA E JURDICA 1. Para escolher o tipo de Pessoa (Fsica ou Jurdica) coloque o Componente DbRadioGroup (Paleta de Componentes/Data Controls/DbRadioGroup) no formulrio e altere suas seguintes propriedades: 1.1 DataSource: DS.... (Ex..: DsClientes); 1.2 DataField: Escolha o campo criado para o tipo de pessoa (Ex.: Tipo_Pessoa); 1.3 Name: DbRadioGroupTipo_.... (Ex.: DbRadioGroupTipo_Pessoa); 1.4 Itens: Clique nas reticncias e digite Fsica, na linha 1, e Jurdica, na linha 2. 2. Selecione o Componente DbRadioGroup, evento OnClick escreva: If DbRadioGroupTipo_Pessoa.ItemIndex = 0 then Begin LblCPF_CGC.Caption:= CPF; If Nome_da_Tabela.State in DsEditModes then Begin Nome_da_TabelaCPF_CNPJ.EditMask:= 999.999.999-99; Nome_da_TabelaCPF_CNPJ.Value:= . . - ; If DbEdtNome_Fantasia.Text <> then begin DbEdtNome_Fantasia.Text:= ; end; End; //LblNome_RazSocial.Caption:= Nome; DbEdtNome_Fantasia.Enabled:= False; DbEdtNome_Fantasia.Color:= ClBtnFace; End Else begin LblCPF_CGC.Caption:= CNPJ; If Nome_da_Tabela.State in DsEditModes then Begin Nome_da_TabelaCPF_CNPJ.EditMask:= 99.999.999/9999-99; Nome_da_TabelaCPF_CNPJ.Value:= . . / - ; End; //LblNome_RazSocial.Caption:= Razo Social; DbEdtNome_Fantasia.Enabled:= True; DbEdtNome_Fantasia.Color:= Clwindow; End; Observaes: Altere a propriedade Name do Label do Nome ou Razo Social para LblNome_RazSocial; Altere a propriedade Name do CPF_CNPJ para LblCPF_CNPJ; Altere a propriedade Name do DbEdit do Nome Fantasia para DbEdtNome_Fantasia. 3. Alterar o CPF e CNPJ de acordo com o Tipo de Pessoa quando eu estiver movimentando a tabela, ou seja, escolhendo Primeiro, Anterior, Prximo e ltimo: 3.1 Selecione a Tabela e no evento AfterScroll (Quando movimentar a tabela) escreva: If Nome_da_TabelaTipo_Pessoa.Value = Fsica then Begin

LblCPF_CNPJ.Caption: CPF; Nome_da_TabelaCPF_CNPJ.EditMask:= 999.999.999-99; //LblNome_RazSocial.Caption:= Nome; DbEdtNome_Fantasia.Enabled:= False; DbEdtNome_Fantasia.Color:= ClBtnFace; End Else begin LblCPF_CNPJ.Caption: CNPJ; Nome_da_TabelaCPF_CNPJ.EditMask:= 99.999.999/9999-99; LblNome_RazSocial.Caption:= Razo Social; DbEdtNome_Fantasia.Enabled:= True; DbEdtNome_Fantasia.Color:= Clwindow; End; 4. Colocar um Tipo de Pessoa padro quando clicar no Boto Novo: 4.1 Selecione a Tabela e no evento AfterInser escreva: Nome_da_TabelaTipo_Pessoa.Value:= Fsica;