O objetivo desta função é:
Ao clicar duas vezes em alguma célula do wxGrid lista_contatos, pegaremos a linha que foi clicada, depois passaremos os valores do ID, NOME e IDADE para seus respectivos valores de edição que são:
A variável ID que vai controlar se estamos em modo de edição ou não, se for em modo de edição qual registro que está sendo editado.
A caixa de texto nome.
A caixa de texto idade.
Vamos ao código:
Em framep.cpp, altere a seguinte parte:
framep.cpp
//Aqui o evento que será executado
//quando eu der 2 cliques em uma célula...
void wxFramePrincipal::OnDoubleClickCell(wxGridEvent& event)
{
//Primeiro vamos pegar o índice da linha que está sendo clicada:
int row = event.GetRow();
//Agora vamos passar os valores desta linha para nossos dados...
//Primeiro a variável ID
long int get_id;
lista_contatos->GetCellValue(row, 0).ToLong(&get_id);
ID = get_id;
//Veja que neste momento, a varável ID assume um valor maior que -1
//Então entramos no modo de edição...
//Agora pego o valor atual para nome...
nome->SetValue(lista_contatos->GetCellValue(row, 1));
//E por último a idade...
idade->SetValue(lista_contatos->GetCellValue(row, 2));
//Agora podemos fazer as alterações dos valores, passando como parâmetro
//o valor do ID...
//Uma alteração que podemos fazer também é
//colocar um aviso no título da janela
//para dizer ao usuário qual a função que ele está executando:
this->SetTitle(wxT("Teste Tutorial Sqlite3 - Modo de Edição"));
}
Pronto, agora o usuário poderá selecionar qual registro ele quer editar.
No próximo tutorial, implementar a função que limpa os campos após as edições.
Até a próxima.
0 comentários:
Postar um comentário