Delphi Cadastro de Vagas com MySQL - Servidor web

Crie um novo projeto: Vagas

Nome do formulário:

Name: frmMenu
Caption: Cadastro de Vagas

Crie o menu conforme imagem abaixo:

Delphi Vagas Menu

Salve a unit com o nome: uMenu e o projeto Vagas

Crie o módulo para conectar com o banco de dados

File New / Other / Data Module

Delphi Data Module
Salve com o nome: uModulo
Insira o controle: TFDConnection
Controle TFDConnection
Propriedade Name: conVagas
Propriedade Driver name: MySQL
Duplo clique sobre esse controle e configure conforme abaixo:
tfdconnection configuração
Driver id: Selecione MySQL
Database: Informe o nome do banco de dados
User_name: Informe root se for local
Password: Informe a senha caso tenha sido definida, senão deixar em branco
Clique no botão Test. Se ocorreu tudo bem a conexão, será exibida a mensagem: Connection established successfully


Insira o controle: TFDQuery
Controle TFDQuery
Propriedade Name: qryVagas
Propriedade Connection: conVagas
Propriedade SQL: Clique no botão com três pontos ao lado direito. Será aberta a janela:
TFDQuery propriedade SQL

Insira o controle: Data Source

Controle Data Source
Propriedade DataSet: qryVagas
Propriedade Name: dsVagas

Insira o controle: TFDGUIxWaitCursor

Controle TFDGUIxWaitCursor
Propriedade Name: curVagas
Propriedade Provider: Forms

Insira o controle: TFDPhysMySQLDriverLink

Controle TFDPhysMySQLDriverLink
Propriedade Name: drvMSqlVagas
Propriedade VendorLib: Informe o caminho onde está a dll: libmysql.dll

Adicione o form: Name: frmVagas - Text: Cadastro de Vagas
Salvar com o nome: uVagas.
Insira um Panel:
Name: pnlOpcoes - BevelInner: BvLowered - Caption: Deixar em branco.
Insira os botões da Additional: TBitBtn:
Name: btnNovo - Text: Novo
Name: btnSalvar - Text: Salvar
Name: btnEditar - Text: Editar
Name: btnExcluir - Text: Excluir
Name: btnCancelar - Text: Cancelar

Para exibir os formulários e o Data Module do projeto, Pressione a tecla Shift + F12
Insira outro Panel:
Name: pnlDados - BevelInner: BvLowered - Caption: Deixar em branco.
Para inserir os campos da tabela tbvagas, é necessário anexar o Data Module no formulário.
Pressione a tecla F12. Após implementation, digite: uses umodulo.
Inserindo os campos da tabela pelo Data Module. Pressione a tecla Shift + F12, e clique duas vezes no DMVagas.
A seguir botão direito sobre qryVagas. Selecione Field Editor. Serão exibidos todos os campos.
Field Editor
Pressione a tecla Shift + F12 para voltar ao form frmVagas, ou clique na aba na parte superior uVagas.
Insira um DBEdit. Propriedade Data Source: , selecione DMVagas.dsVagas.
Propriedade Data Field: , selecione idvaga.
Campos Field Editor formulário frmVagas
Você pode arrastar diretamente do Field Editor para dentro do pnlDados.

Formulário com o design pronto com todos os campos e a pesquisa
Observe os nomes dos controles Label e DBEdit ao lado esquerdo do form:
pnlDados com os campos
Abaixo do pnlDados (fora dele), insira o controle Label, com as propriedades: Name: lblPesquisa e Caption: Pesquisa:
Abaixo insira o controle DBGrid, modificando a propriedade Name: dbgVagas, e a propriedade Data Source: DMVagas.dsVagas
.
Inserindo os campos do DBGrid. Duplo clique no mesmo. Clique no botão Add All Files, para inserir todos os campos.
Evento OnClose: Esse evento vamos inserir a codificação para fechar a tabela, e liberar o formulário da memoria.
Evento OnClose
Duplo clique sobre o evento onClose. Será aberta a Procedure TfrmVagas.FormClose. Digite entre begin...end.
DMVagas.qryVagas.Close;
rmVagas.Release; // Retira da memória
Evento OnShow, insira a codificação:
DMVagas.qryVagas.Open;
Desabilitar;
A procedure Desabilitar não foi criada. Observe a imagem abaixo:
Procedure Desabilitar
Pressione as teclas Control + Shift + C, na mesma linha que você digitou esta procedure.
Será criada o procedimento abaixo: (observação: digitar entre begin... end.
procedure TfrmVagas.Desabilitar;
begin
btnSalvar.Enabled := false;
btnEditar.Enabled := false;
btnExcluir.Enabled := false;
btnNovo.Enabled := true;
end;

Crie a procedure Habilitar, da mesma forma da criada acima. Codificação.
procedure TfrmVagas.Habilitar;
begin
btnEditar.Enabled := true;
btnExcluir.Enabled := true;
end;

Crie a procedure LimparCampos.
procedure TfrmVagas.LimparCampos;
begin
dbeVaga.Clear;
dbeQuantidade.Clear;
dbeCidade.Clear;
dbeSalario.Clear;
dbeTelefone.Clear;
dbeEmail.Clear;
dbetipoContratacao.Clear;
dbedescricaoCargo.Clear;
end;

Duplo clique no botão Novo. Deixe como abaixo:
procedure TfrmVagas.btnNovoClick(Sender: TObject);
begin
DMVagas.qryVagas.Insert;
btnSalvar.Enabled := true;
dbeVaga.SetFocus;
end;

Duplo clique no botão Salvar. Deixe como abaixo:
procedure TfrmVagas.btnSalvarClick(Sender: TObject);
begin
if(Application.MessageBox('Deseja Salvar?','Aviso',36)=6) then
begin
DMVagas.qryVagas.Post;
end;
btnCancelarClick(sender);
end;

Duplo clique no botão Excluir. Deixe como abaixo:
procedure TfrmVagas.btnExcluirClick(Sender: TObject);
begin
if(Application.MessageBox('Deseja Excluir?','Aviso',36)=6) then
begin
DMVagas.qryVagas.Delete;
end;
btnCancelarClick(sender);
end;

Duplo clique no botão Editar. Deixe como abaixo:
procedure TfrmVagas.btnEditarClick(Sender: TObject);
begin
DMVagas.qryVagas.Edit;
if(Application.MessageBox('Deseja Salvar?','Aviso',36)=6) then
begin
DMVagas.qryVagas.Post;
end;
Habilitar;
btnCancelarClick(sender);
end;

Duplo clique no botão Editar. Deixe como abaixo:
procedure TfrmVagas.btnCancelarClick(Sender: TObject);
begin
Desabilitar;
if DMVagas.qryVagas.state in [dsedit, dsinsert] then // Se estiver incluindo ou alterando.
begin
DMVagas.qryVagas.Cancel;
end;
end;

Duplo clique no edit edtPesquisa. Deixe como abaixo:
procedure TfrmVagas.edtPesquisaChange(Sender: TObject);
begin
DMVagas.qryVagas.Locate('vaga',edtPesquisa.Text,[loCaseInsensitive, loPartialKey]);
end;

Clique no DBGrid dbgVagas, no evento DrawColumnCell. Deixe como abaixo:
procedure TfrmVagas.dbgVagasDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
t: String;
begin
// número da coluna, começando em zero
if DataCol = 7 then
begin
with dbgVagas.Canvas do
begin
// cor do fundo
Pen.Style:=psClear;
Brush.Style:=bsSolid;
Brush.Color:=clBlue;
Rectangle(Rect);
// pega o texto do campo memo
t:=Column.Field.Value;
Font.Color:=clYellow;
Font.Style:=[];
TextOut(Rect.Left+2,Rect.Top+2,t);
end;
end;
end;

incluindo o controle TRadioGroup.

Controle Radio Group

Propriedades:
Name: rgpTipoContratacao - Caption: Tipo de Contratacão - Columns: 2 - Items: Pessoa Física e Pessoa Jurídica. Veja imagem acima.
Inserir logo abaixo do RadioGroup, o Label. Propriedade Name: lblTipoContratacaoA. - Caption: Apagar o conteúdo. Visible: False.
Ocultar o Label Tipo de Contratação e o DBEdit abaixo dele. Veja a imagem acima com o círculo em vermelho.

Clique duas vezes sobre o RadioGroup inserido, e deixe como abaixo:
procedure TfrmVagas.rgpTipoContratacaoClick(Sender: TObject);
begin
if rgpTipoContratacao.ItemIndex = 0 then // Se selecionar Pessoa Física
lblTipoContratacaoA.Caption := 'F' // Armazena letra F no Label
else
lblTipoContratacaoA.Caption := 'J'
end;

Duplo clique no botão Salvar: . Deixe como abaixo:
procedure TfrmVagas.btnSalvarClick(Sender: TObject);
begin
if(Application.MessageBox('Deseja Salvar?','Aviso',36)=6) then
begin
DMVagas.qryVagas.FieldByName('tipoContracao').AsString :=
lblTipoContratacaoA.Caption; // Salva o conteúdo armazenado no Label
// no campo da tabela, através da propriedade FieldByName
DMVagas.qryVagas.Post;
end;
btnCancelarClick(sender);
end;