Formulário de Cliente
Para criar o formulário de Cliente, precisamos adicionar um novo formulário no projeto.
Clique no botão New Form.Mude as seguintes propriedades.
No formulário coloque o componente Panel Control, para dividí-lo em dois. Na primeira parte irá conter os dados do cliente e a segunda parte uma tabela para pesquisa.
Clique no componente que esta na paleta Win32 e depois clique no formulário.
Panel Control
Formulário de Cliente
Mude as seguinte propriedade:
Ela fará com que o Panel Control fique do tamanho do formulário. Isso evita que tenhamos que redefinir o seu tamanho na mão.
Feito isso volte a mesma propriedade para alNone e utilizando o mouse, diminua a altura do componente, do lado inferior, clicando no ponto de controle e arrastando para cima.
Formulário de Cliente
Formulário de Cliente
Neste espaço coloque o componente Status Bar que fica na paleta WIN32, conforme a figura abaixo. Este componente servirá para quando necessário, mandarmos mensagens.
StatusBar
Formulário de Cliente
Mude a propriedade SimplePanel para True. Isso faz com que o StatusBar tenha uma única coluna.
BitBtn
No espaço entre o PageControl e o StatusBar coloque 6 BitBtn.
Formulário de Cliente
Para cada BitBtn mude as propriedade Caption e Name.
BitBtn1 = Novo | btnNovo
BitBtn2 = Editar | btnEditar
BitBtn3 = Excluir | btnExcluir
BitBtn4 = Confirmar | btnConfirmar
BitBtn5 = Cancelar | btnCancelar
BitBtn6 = Fechar | btnFechar
Deixe esse espaço para podermos colocar outro objeto.
Para dividir o PageControl em duas páginas, clique com o botão direito do mouse no meio do PageControl. Ao surgir o menu suspenso, escolha a opção New Page. Repita o passo anterior mais uma vez.
Formulário de Cliente
Para mudar o texto que esta em cada paleta, clique no meio do TabSheet1 e mude a propriedade Caption para Cadastro. Para mudar o TabSheet2, primeiro clique na paleta e depois repita o passo do TabSheet1, mudando o Caption para Tabela.
Formulário de Cliente
Table
Para conectar o formulário Cadastro de Cliente com a Tabela de Cliente, clique na paleta Data Access do Delphi e pegue o componente Table e coloque no formulário.
Depois mude a propriedade DataBaseName colocando o nome do Alias, por exemplo DBSisVenda. A próxima propriedade é TableName, coloque o nome da Tabela. A última propriedade é a Name, coloque TabCliente.
Formulário de Cliente
Clique com o botão da direita do mouse no componente Table, e ao surgir o menu suspenso, escolha a opção Fields Editor.
Formulário de Cliente
Clique com o botão direito do mouse no Fields Editor, aparecerá um menu suspenso, escolha a opção Add Fields. Aparecerá a figura do lado direito e em seguida clique no botão OK. O Fields Editor ficará igual a figura abaixo.
Formulário de Cliente
Em seguida, clique no campo e arraste-o até a posição do formulário desejada. Faça isso para todos os campos.
Com isso estará desenho o formulário de Cadastro.
Formulário de Cliente
Seu formulário de Cadastro ficará parecido com esse ao lado.
Mas seja criativo e inove na aparência.
Obs: Nos objetos DBEdit não há necessidade de apagar o texto que está nele, como fazemos nos Edits. Lembre-se que os DBEdits são objetos para a conexão com os campos da tabela.
DBGrid
Agora clique na paleta Tabela do seu formulário e na paleta Data Control do Delphi, pegue o componente DBGrid e coloque-o no formulário.
Formulário de Cliente
Formulário de Cliente
Mude as seguinte propriedade:
Ela fará com que o DBGrid fique do tamanho do formulário. Isso evita que tenhamos que redefinir o seu tamanho na mão.
Feito isso volte a mesma propriedade para alNone e utilizando o mouse, diminua a altura do componente, do lado superior, clicando no ponto de controle e arrastando para baixo.
Formulário de Cliente
Label
EditComboBox
Deixe o DBGrid mais ou memos nesta posição no formulário, para que possamos colocar mais 4 componentes. Coloque 2 Labels, 1 Edit e 1 ComboBox. Todos estão na paleta Standard do Delphi. Para os Labels mude as propriedades Caption e Name para:
Código | lblCampo Ordem | lblOrdem
Para o Edit mude a propriedade Name para edtCampo e a propriedade Text vazia.
Para o ComboBox a propriedade Name para cmbOrdem, a propriedade Text vazia e por fim Items coloque Código e Nome.
Formulário de Cliente
Quase esqueci !!!
No espaço vazio que tem do lado esquerdo do botão Novo, coloque o componente DBNavigator que esta na paleta Data Control do Delphi e coloque-o . Mude a propriedade DataSource para o nome do DataSource1 que está no formulário.
DBNavigator
Formulário de Cliente
Para deixar somente os botões de navegação do DBNavigator, selecione a propriedade VisibleButtons, clique no sinal de + e deixe False nas subpropriedades :
nbInsert, nbDelete, nbEdit, nbPost, nbCancel e nbRefresh.
Formulário de Cliente
No Object Inspector selecione o objeto FormCliente para que possamos começar a codificar os objetos. Após selecionado, clique na paleta Events do Object Inspector e procure o evento OnCreate. Clique duas vezes na parte branca para abrir o respectivo código.
Clicar duas vezes aqui.
procedure TFormCliente.FormCreate(Sender: TObject);begin
end;
end.
Formulário de Cliente
procedure TFormCliente.FormCreate(Sender: TObject);begin {Para que a página sempre comece na paleta Cadastro.} PageControl1.ActivePageIndex := 0; {Abre a tabela de Cliente} TabCliente.Open;end;
Neste evento digite o que está destacado de azul.
Formulário de Cliente
Selecione o botão Novo e clique duas vezes em cima dele para abrir sua codificação do Evento OnClick e em seguida digite o código abaixo destacado de azul.
Após terminar de digitar o código, tecle F12 para voltar para o formulário e repita para os demais botões. O código dos demais botões segue na página seguinte.
procedure TFormCliente.btnNovoClick(Sender: TObject);begin {Insere um novo registro em branco na tabela} TabCliente.Insert;end;
Formulário de Cliente
procedure TFormCliente.btnEditarClick(Sender: TObject);begin {Edita o registro corrente.} TabCliente.Edit;end;
procedure TFormCliente.btnExcluirClick(Sender: TObject);begin {Exclui o registro corrente, mas antes pergunta se deseja realmente excluir.} If MessageDlg(‘Deseja realmente excluir ?’, mtConfirmation, [mbYes, mbNo],0) = mrYes Then TabCliente.Delete;end;
Formulário de Cliente
procedure TFormCliente.btnConfirmarClick(Sender: TObject);begin {Confirma a operação realizada com o registro na tabela} TabCliente.Post;end;
procedure TFormCliente.btnCancelarClick(Sender: TObject);begin {Cancela a operação realizada com o registro na tabela} TabCliente.Cancel;end;
Formulário de Cliente
Iremos agora programar os objetos Edit e ComboBox.
Quando escolhermos a ordem no combobox, teremos que mudar o índice da tabela. Quando isso acontecer, teremos que mudar o caption do label do campo, dependendo do índice escolhido. Por exemplo, se escolhermos o índice por nome, no caption do label do campo terá que aparecer Nome.
Para que isso ocorra, iremos programar o evento OnChange dos objetos ComboBox e Edit.
Não esqueça que, na tabela de Cliente, terá que ter um secundary index com o campo nome.
Formulário de Cliente
Selecione o objeto cmbOrdem, vá no Object Inspector ou pressione a tecla F11, escolha a palheta Events e seleciona o evento OnChange clicando duas vezes na parte branca.
Clique duas vezes aqui.
Formulário de Cliente
procedure TFormCliente.cmbOrdemChange(Sender: TObject);begin {Fecha a tabela para mudar o índice} TabCliente.Close; {Verifica qual opção foi escolhida} If cmbOrdem.ItemIndex = 0 then begin {Se foi código, muda para índice codigo} TabCliente.IndexFieldNames := 'Codigo'; {Muda o caption do edtCampo para Código} lblCampo.Caption := 'Código'; end else begin {Se foi Nome, muda para índice nome} TabCliente.IndexFieldNames := 'Nome'; {Muda o caption do edtCampo para Nome} lblCampo.Caption := 'Nome'; end; {Abre a tabela} TabCliente.Open;end;
Digite o que está destacado em azul.
Formulário de Cliente
Selecione o objeto edtCampo, vá no Object Inspector ou pressione a tecla F11, escolha a palheta Events e seleciona o evento OnChange clicando duas vezes na parte branca.
Clique duas vezes aqui.
Formulário de Cliente
procedure TFormCliente.edtCampoChange(Sender: TObject);begin {Este método pega o texto do edit e pesquisa a ocorrência mais próxima na tabela} TabCliente.FindNearest( [edtCampo.Text] );end;
Digite o que está destacado em azul