O que ela irá fazer?
1 – Vai alterar o valor de ID para -1, ou seja, cancelar a edição...
2 – Vai limpar o campo nome.
3 – Vai limpar o campo idade.
4 – Alterar o título da janela para modo de inserção.
O código vai ficar assim:
Digite o seguinte em framep.cpp
framep.cpp
//Esta função eu vou usar para limpar os campos
//como eu precisarei fazer isto sempre que eu completar uma alteração
//vou escrever este código em uma função em separado...
void wxFramePrincipal::LimparCampos()
{
//A função mais simples de todas...
//Será usada na criação do frame.
//Na função OnClickSalvar
//Na função OnClickLimpar
//e na função OnClickDeletar
//Primeiro vamos alterar o valor do ID para -1
//Para voltarmos ao modo de Inserção...
ID = -1;
//Agora limpamos o nome...
nome->Clear();
//limpamos o campo idade...
idade->Clear();
//Alteramos o valor da janela para modo de Inserção...
this->SetTitle(wxT("Teste Tutorial Sqlite3 - Modo de Inserção"));
}
Agora vamos chamá-la no final da criação do frame principal:
boxp->Add(box_btns, 1, wxEXPAND, 0);
//"Digo" ao meu frame que o boxp é o box principal...
this->SetSizer(boxp);
//Aqui apenas faço com que tudo seja arranjado de maneira correta...
this->Layout();
//Aqui chamo a função limpar campos...
LimparCampos();
//Vamos carregar os dados no grid...
SelectInDB(lista_contatos);
}
Também no final da função OnClickSalvar
}
//Após editarmos um valor, recarregamos os valores no grid...
SelectInDB(lista_contatos);
//E também limpamos os valores de edição/inserção...
LimparCampos();
}
Aproveitamos para implementar a função OnClickLimpar
//Aqui o evento que vai limpar os campos...
void wxFramePrincipal::OnClickLimpar(wxCommandEvent& event)
{
//Chamamos a função LimparCampos()...
LimparCampos();
}
E adiantamos algumas coisas na função OnClickDeletar
//Aqui o evento quando eu clicar no botão deletar...
void wxFramePrincipal::OnClickDeletar(wxCommandEvent& event)
{
//Vamos verificar também se o registro está em modo de edição...
//Pois se não estiver, não teremos quem deletar lá no banco de dados...
if(ID == -1)
return;
//Após deletarmos um registro atualizamos o wxGrid lista contatos...
SelectInDB(lista_contatos);
//E limpamos os campos de edição...
LimparCampos();
}
Vejam que tínhamos uma função chamada ConfereCampos em framep.h e framep.cpp, por descuido, acabei implementando isto na função de inserir registros de sqlf.cpp, para não enrolarmos a continuidade do tutorial, deletem esta função ConfereCampos dos dois arquivos, o *.h e o *.cpp.
Mais uma parte do tutorial concluída, no próximo iremos finalizar o código do tutorial.
Até a próxima.
0 comentários:
Postar um comentário