Cadastro-de-clientes-Pascal-Lazarus
- Active · last change 8-14-2026
- ★ 1 on GitHub
README
Cadastro de clientes
um projeto simples de cadastro de clientes.
*** Funcionalinalidades***
- cadastro de clientes: Campos como: nome, email, telefone, cpf/CNPJ, endereço, rua, bairro, numero. Trata o erro de não permitir campos vazios.
- TDBGrid que mostra todos os dados de cada cliente
- Input de pesquisa, que procura pelo cliente pelo nome.
inicialmente, criei um PageControl, dentro dele eu adicionei o TDBGrid, e logo em seguida adicionei o CSVDataset e o DataSource.
adicionei o CSVDataset no FomrCreate, e dentro de criei e conectei o dataSource pelas propriedades ao CSVDataset1. DEntro de CSVDataset eu criei as colunas que estarão sendo usados no cadastro.
Conectei o TDBGrid ao DataSource, que ele visualmente irá mostra todas as colunas do CSVDataset vindos pelo DataSource.
Criei botões:
Cadastro: Ele Abre a segunda TabSheet2.
procedure TForm1.cadastrar(Sender: TObject);
begin
CSVDataset1.append;
PageControl1.ActivePage := TabSheet2
end;Ná TabSheet2, ao abrir, existe os campos de cadastro.
Nome, email,telefone, cpf/cnpj, e endereço, rua, bairro e cep.
sendo os 4 primeiros obrigatorios. nas proriedades de cada coluna no CSVDataSet1, eu coloquei como required.
e fiz uma Rapida verificação se pelo menos esses campos não estão vazios.
procedure TForm1.CSVDataset1BeforePost(DataSet: TDataSet);
begin
if (Trim(DataSet.Fields[0].AsString) = '') and
(Trim(DataSet.Fields[1].AsString) = '') and
(Trim(DataSet.Fields[2].AsString) = '') and
(Trim(DataSet.Fields[3].AsString) = '') and
(Trim(DataSet.Fields[4].AsString) = '') then
begin
ShowMessage('Operação cancelada: O campo obrigatório está vazio.');
DataSet.Cancel;
Abort;
end;
end;Que ao detectar que existe campos vazios, envia a tela um Show Menssage, informando que h?? campos vazios, ele invoca o metodo DataSet.cancel, e abortar o procedimento. voltando ao estado original da tela TabSheet2.Assim que os campos estiverem todos corretos, apertando botao de salvar ele invoca a procedure Salvar.
procedure TForm1.salvar(Sender: TObject);
begin
CSVDataset1.post;
PageControl1.ActivePage := TabSheet1;
end;E assim volta para a TabSheet1, para realizar um novo cadastro.
ja no segundo botão cancelar.
procedure TForm1.cancelar(Sender: TObject);
begin
DataSource1.DataSet.Cancel;
PageControl1.ActivePage := TabSheet1
end;Excluir: O evento chama a procedure excluir para a Linha selecionada em TDBGrid procedure TForm1.excluir(Sender: TObject); begin CSVDataset1.Delete; end;
Editar: Aqui ao chamar a procedure editar, ele abre a tabSheet2 e dá a opção de editar a linha selecionada em TDBGRid procedure TForm1.editar(Sender: TObject); begin CSVDataset1.Edit; DBEdit1.Field.Clear; PageControl1.ActivePage := TabSheet2 end;
Ná TabSheet 1, no input de filtrar, no no Object Inpector, no evento onChange, criei uma função chamada filtrar que sempre que detecta uma alterção ela chama a procedure.
procedure TForm1.filtro(Sender: TObject);
begin
CSVDataset1.Filtered := False;
CSVDataset1.Filtered := (Edit1.Text <> '');
end;que logo em seguida, no CSVDataSEt, ao detectar uma chamada para filtro, nos eventos dele, existe uma função chamada CSVDataset1FilterRecord, que ao perceber uma chamada de filtro faz uma pesquisa dentro do CSVDataSet, procurando pelo campo nome que.
procedure TForm1.CSVDataset1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
accept := pos(edit1.text, DataSet['nome']) > 0;
end;que recebe dois parametros

