Ver Mensaje Individual
  #1  
Antiguo 19-08-2016
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Reputación: 21
Angel.Matilla Va por buen camino
No puedo ocultar un formulario

Tengo una aplicación en BCB 6 que al lanzar uno de los formularios muestra otro (Form->Show()) que está normalmente oculto pero que cuando termina lo que está haciendo y quiero volver a ocultarlo (Form->Hide()) me da un error de ejecución.
Cita:
Cannot change Visible in OnShow or OnHide
He probado a ponerlo ese trozo de código en el OnCreate, el OnActivate, OnShow y OnPaint y no hay manera que funcione bien.
Código:
fForBln->Show();
fForBln->Barra->MinValue = 0;
fForBln->Barra->Progress = 0;
fForBln->IniBarra("Cargando recibos");

fDevMan->Lista->Items->Clear();

fPersona->Query->Close();
fPersona->Query->SQL->Text = "SELECT A.Apellidos, A.Nombre, A.Codigo, A.Referencia, B.Importe"
                             "FROM Persona A, Recibos B"
                             "WHERE A.CodPrv = (SELECT Literal FROM Instalacion WHERE Etiqueta = 'Provincia')"
                             "AND A.CodPrv = B.CodPrv AND A.Codigo = B.Codigo"
                             "AND B.RefInt = :RefInt AND B.Iban <> ''"
                             "AND B.Situacion NOT IN (SELECT Valor FROM Instalacion WHERE Etiqueta = 'SitRec' AND Situacion = 1)"
                             "ORDER BY Apellidos, Nombre, Codigo";
fPersona->Query->ParamByName("RefInt")->AsString = fSelEmi->pSelItem->SubItems->Strings[5];
fPersona->Query->Open();
fForBln->Barra->MaxValue = fPersona->Query->RecordCount;

for (; !fPersona->Query->Eof; fPersona->Query->Next())
{
     fForBln->Barra->Progress ++;
     pItem = fDevMan->Lista->Items->Add();
     pItem->Caption = fPersona->Query->FieldByName("Apellidos")->AsString + ", " + fPersona->Query->FieldByName("Nombre")->AsString;
     pItem->SubItems->Add(fPersona->Query->FieldByName("Referencia")->AsString);
     pItem->SubItems->Add(FormatFloat("##,##0.00 €", fPersona->Query->FieldByName("Importe")->AsFloat));
     pItem->SubItems->Add(fPersona->Query->FieldByName("Codigo")->AsInteger);
}
try
{
     fForBln->Hide();     // AQUÍ DA EL ERROR
}
catch(...)
{
}
Todas las funciones, variables, elementos, etc. que se usan están perfectamente definidos. Y he probado con y sin el try...catch del final, y exactamente este mismo procedimiento lo uso en muchos sitios de la aplicación y sólo me da error aquí.
Responder Con Cita