Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Problemas conn el orden en que se muestran las pantallas (https://www.clubdelphi.com/foros/showthread.php?t=11948)

melanthea 30-06-2004 16:38:39

Problemas conn el orden en que se muestran las pantallas
 
Hola a todos
Sé que el titulo del mensaje no es muy explicativo, pero no se me ocurría ninguna forma de expresarlo resumidamente.
El caso es que tengo una aplicación hecha con marcos (no creo que sea muy relevante para la pregunta, pero por si acaso...), y quiero establecer un control de acceso a la misma. El caso es que ya tengo la aplicación hecha, y evidentemente al ejecutarla me sale la pantalla principal de la misma.
Lo que necesito hacer ahora es mostrar antes de esa panntalla principal, una pantalla de splash y otra donde establezco el control de acceso a la aplicación,para que luego pase ya a la principal.
Si añado sencillamente al proyecto los formularios necesarios para el control de acceso, hay alguna manera de determinar la pantalla que quiero que se muestre primero? Es decir, yo quiero que primero me salga la splash, luego la de control de acceso y luego la principal, que es la primera que se muestra actualmente.
Muchisimas gracias por vuestra ayuda, espero que me podais contestar porque es un tema imprescindible para el correcto funcionamiento de la aplicación.
Saludos

roman 30-06-2004 16:54:53

Debes crear y mostrar el splash y la forma de acceso en el archivo dpr del proyecto manualmente:

Código Delphi [-]
FormaSplash := TFormaSplash.Create(nil);
FormaSplash.ShowModal;
FormaSplash.Free;

FormaAcceso := TFormaAcceso.Create(nil);
Ok := (FormaAcceso.ShowModal = mrOk);
FormaAcceso.Free;

if Ok then
begin
  Application.CreateForm(TFormaPrincipal, FormaPrincipal);
  Application.Run;
end;

Lo importante a notar aquí son tres cosas:

1. Las formas Splash y de Acceso no las debes crear con Application.CreateForm o de lo contrario Delphi pensará que son la forma principal y terminará la ejecución cuando las cierres.

2. La forma principal y Application.Run deben ejecutarse sólo si la ventana de acceso determina que los datos son correctos, de otra forma simplemente se termina la ejecución.

3. Si la forma de acceso requiere acceso a alguna base de datos para la autenticación del usuario y tienes tus tablas en un DataModule debes dejar que éste se cree antes.

Por otra parte ambos temas (splash y acceso) se han tratado varias veces de manera que puedes hacer una búsqueda pra encontrar oras ideas.

Una cosa más: La forma splash debe tener algún Timer para cerrarse luego de un tiempo y poder dar paso a lo siguiente.

// Saludos

barman 01-07-2004 10:25:49

En c++ quedaria asin.

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
TSplas *a = new TSplas(NULL);
a ->Show();
a ->Update();
Application->Initialize();
a ->Inicializa();
Application->CreateForm(__classid(.................
....................................................................
.....
a ->Free();
Application->Run();
}


Para el orden en que quieres que se te muestre prueba con
Opciones de proyecto en la lista Auto-Create froms.

roman 01-07-2004 17:04:19

Gracias por la aclaración barman, no me había percatado de que el hilo estaba en el foro de C++.

// Saludos


La franja horaria es GMT +2. Ahora son las 19:22:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi