Ver Mensaje Individual
  #3  
Antiguo 30-11-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
Cita:
Empezado por roman Ver Mensaje
¿Y ese delete fSelRec que tienes en el case 0 no tendrá algo que ver?
Fíjate que después del delete hay un return con lo que el resto del código no se ejecuta. No obstante después de poner el mensaje seguí haciendo pruebas y el problema no está dónde yo creía. He cambiado un poco la estructura del programa y lo he dejado así:
Código:
lPrueba = false;
nFcargo = 1;
switch (nListView)
{
     case 0:
          delete fSelRec;
          Mensaje(3, "No seleccionó ningún recibo.", "Volver");
          Button2Click(NULL);
          return;
     case 1:
          DecodeDate(dFcargo, Year, Month, Day);
          for (nItem = 0; nItem < fSelRec->Lista->Items->Count; nItem ++)
               if (fSelRec->Lista->Items->Item[nItem]->Checked && StrToInt(fSelRec->Lista->Items->Item[nItem]->SubItems->Strings[4]) == Month)
               {
                    lPrueba = true;
                    break;
               }
}

fForBln->Show();
fForBln->IniBarra("Preparando recibos");
fForBln->Barra->MaxValue = fSelRec->Lista->Items->Count;

if (!lPrueba)
{
     cAux = "¿Desea generar los recibos seleccionados con fecha de cargo " + dFcargo.FormatString("dd/mm/yyyy', '") +
            "\nen la fecha propuesta u otra fecha?";
     nFcargo = Mensaje(2, cAux, dFcargo.FormatString("dd/mm/yyyy") + "\nFecha propuesta\nOtra fecha");
}
Con esa estrutura he comprobado que hasta que no pasa por la línea fForBln->IniBarra("Preparando recibos") no hay problema. Ese fForBln es un formulario que tiene un TImage, un TPanel, un TCGauge y un TLabel; lo uso para las típicas pantallas de Espere un momento mientras corre una barra y en esa llamada IniBarra lo que hay es esto:
Código:
void __fastcall TfForBln::IniBarra(AnsiString cMensaje)
{
     Barra->MaxValue = 0;
     Barra->MinValue = 0;
     Barra->Progress = 0;
     LblBar->Caption = cMensaje;
     Application->ProcessMessages();
     this->Refresh();
}
No hay absolutamente ninguna referencia a ningún TListView. Estoy bastante desconcertado porque no es el único sitio en hago uso de ese modelo de código.
Responder Con Cita