Ver Mensaje Individual
  #1  
Antiguo 04-01-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Guardar un evento

Buenas y feliz año nuevo a todos.

Tengo una función definida de la siguiente forma:
Código:
bool ClickLista(TListView *evLista)
{
     if ((evLista->Items->Item[0]->Caption == "SELECCIONAR TODOS" || evLista->Items->Item[0]->Caption == "SELECCIONAR NINGUNO") && evLista->Items->Item[0]->Checked)
     {
          evLista->Items->Item[0]->Checked = false;
          for (int nValor = 1; nValor < evLista->Items->Count; nValor ++)
               evLista->Items->Item[nValor]->Checked = evLista->Items->Item[0]->Caption == "SELECCIONAR TODOS" ? true : false;

          evLista->Items->Item[0]->Caption = evLista->Items->Item[0]->Caption == "SELECCIONAR TODOS" ? "SELECCIONAR NINGUNO" : "SELECCIONAR TODOS";
     }

     for (int nValor = 0; nValor < evLista->Items->Count; nValor ++)
          if (evLista->Items->Item[nValor]->Checked)
          {
               evLista->Items->Item[nValor]->Selected;
               return true;
          }
     return false;
}
//---------------------------------------------------------------------------
La uso en varias TListView que tengo en la aplicación para ahorrarme código. En cada uno de estos TListView tengo definidos los eventos OnChange y OnClick así:
Código:
void __fastcall TfCamAfi::ListaChange(TObject *Sender, TListItem *Item, TItemChange Change)
{
     ListaClick(NULL);
}
//---------------------------------------------------------------------------

void __fastcall TfCamAfi::ListaClick(TObject *Sender)
{
     Lista->OnChange  = NULL;
     Button3->Enabled = ClickLista(Lista);
     Lista->OnChange  = ListaChange;
}
//---------------------------------------------------------------------------
Para ahorrarme código y, sobre todo, evitar que se me olviden esas líneas en el segundo evento sobre el OnChange me pregunto si habría alguna forma en la función ClickLista de "guardar" de alguna forma el evento asociado al OnChange de forma que al entrar en esa función ClickLista se pusiera a NULL y al completarse volviera a tener su valor orginal.
Responder Con Cita