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