quarta-feira, 14 de setembro de 2011

Tutorial wxWidgets e sqlite3 parte 11 - Passando os dados do wxGrid para a edição

Hoje vamos escrever a função do duplo click no wxGrid.

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