quarta-feira, 14 de setembro de 2011

Tutorial wxWidgets e sqlite3 parte 12 - Limpando os Campos após alterações e aproveitando para acertar algumas coisas...

Nesta parte do tutorial, iremos implementar a função LimparCampos(), do arquivo framep.cpp.

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