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:
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

Salve com o nome: uModulo
Insira o controle: TFDConnection

Propriedade Name: conVagas
Propriedade Driver name: MySQL
Duplo clique sobre esse controle e configure conforme abaixo:

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
Propriedade Name: qryVagas
Propriedade Connection: conVagas
Propriedade SQL: Clique no botão com três pontos ao lado direito. Será aberta a janela:
Insira o controle:
Data Source
Propriedade DataSet: qryVagas
Propriedade Name: dsVagas
Insira o controle:
TFDGUIxWaitCursor
Propriedade Name: curVagas
Propriedade Provider: Forms
Insira o 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.

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.

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:

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.

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:

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.

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;