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í.