FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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:
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(...) { } |
#2
|
||||
|
||||
Hola,
Pero el error parece muy claro: "No se puede cambiar la visibilidad del formulario en los eventos 'OnShow' ni 'Onhide' del mismo.", de modo que comprueba que no estás haciendo precisamente eso... |
#3
|
||||
|
||||
No queda claro lo que estás haciendo. Tal como indica el master dec, si intentas usar Hide dentro del evento OnShow obtendrás el error mencionado. Pero, especifiquemos un poco. Si tienes un formulario fForBln, y dentro de su evento OnShow tratas de usar el método fForBln->Hide(), obtendrás ese error.
Sin embargo, parece que estás haciendo otra cosa, ya que las llamadas a fForBln->Show() y fForBln->Hide() están en el mismo pedazo de código que muestras. Entoces, da la impresión de que haces ambas cosas desde otro formulario, y eso no debería dar el error mencionado. De ser así, tendrías que examinar qué es lo que tienes en el evento OnShow de fForBln. LineComment Saludos |
#4
|
||||
|
||||
Gracias por las respuestas. Como dice roman desde el OnActivate o el OnCreate del formulario fDevMan estoy haciendo el Show() y el Hide() del otro formulario fForBln. Este último sólo tiene cuatro elementos y lo uso para mostar una barra de progreso que vale para toda la aplicación; sólo tiene cuatro elementos: TImage, TPanel, TCGauge y TLabel. En el evento OnShow del mismo sólo tengo puesto esto:
Código:
void __fastcall TfForBln::FormShow(TObject *Sender) { Barra->Progress = 0; this->Refresh(); } |
#5
|
||||
|
||||
¡Solucionado! Ha bastado con poner el foco en uno de los elementos de ese fForBln para que desaparezca el error.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ocultar formulario modal | arturom | Varios | 2 | 27-01-2010 11:56:45 |
Como ocultar el formulario cuando se usa free | Lizette | Varios | 4 | 03-02-2009 15:24:44 |
Ocultar formulario. | Markos1970 | OOP | 1 | 29-09-2005 20:16:21 |
ocultar consola y no formulario | acl_gandalf | Varios | 1 | 18-04-2005 15:06:34 |
¿Cómo puedo Ocultar la Unidad de CD? | adolfoz | API de Windows | 17 | 30-09-2004 23:51:36 |
|