Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problema al mostrar Form

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problema al mostrar Form Responder citando

Buenas:

Tengo un programa que Al iniciarse muestra en pantalla un menu (Form Principal),El caso es que en el evento Form Activate el programa lee una gran cantidad de datos de un archivo, lo que le lleva un monton de tiempo.....Esto produce que del formulario menu se muestre en principio una parte (los bordes y el resto en Blanco) y al rato (una vez leidos los datos del archivo) el resto del form (las opciones del menu,imagenes,botones.....).

Es posible hacer que lea primero todos los datos y despues muestro el form completo .

Espero que me haya explicado Bien.

PostData: Como puedo centrar un form Hijo dentro de un Form Principal


Gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Re: Problema al mostrar Form Responder citando

neg1414 escribió:
Buenas:

Buenas Smile

neg1414 escribió:
Es posible hacer que lea primero todos los datos y despues muestro el form completo .

A mi me ocurre con frecuencia, pero la única alternativa que he encontrado es hacer esa carga en OnCreate, pero tiene la pega de que no se ve NADA en pantalla y puede dar la impresión que no se está ejecutando nada.

neg1414 escribió:
PostData: Como puedo centrar un form Hijo dentro de un Form Principal

Pon la propiedad Position del Form como poMainFormCenter o poOwnerFormCenter.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Prueba usar los procesos que indicas en el evento OnShow() del Form, de la siguiente manera puedes declarar una variable global o una dentro de la clase del Form que sirva como "bandera"
Ejemplo:

En el .h
Código:
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:   // IDE-managed Components
   void __fastcall FormShow(TObject *Sender);
private:   // User declarations

   bool EjecutarUnaVez;  // declaramos la variable "bandera"


public:      // User declarations
   __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif


En el .cpp
Código:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
   // activamos la variable para ejecutarse una sola vez
   this->EjecutarUnaVez = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
   if( this->EjecutarUnaVez == true)
   {
      this->EjecutarUnaVez = false;
      // desde aqui puedes poner todos los procesos que usas dentro
      // del OnActivate
   }
}
//---------------------------------------------------------------------------

_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

lo que yo aria seria mostrar un splash screen cuando se esta cargando la aplicación.

Saludos.
_________________
[img]http://folding.extremeoverclocking.com/sigs/sigimage.php?un=snupoo&t=86565/sigimage.gif[/img]
A programar se aprende programando
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.