Ver Mensaje Individual
  #10  
Antiguo 26-02-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por CarlosHernandez
la aplicacion comienza con una pantalla de login y contraseña para accesar al sistema, y por defecto es la primera que se crea (por eso digo que es la principal)
Por aquí hubieras empezado

Como has notado, el primer formulario que se crea es el principal. Pero esto no es totalmente cierto. Más exacto es decir que el primer formulario que se crea con Application.CreateForm es el principal.

En otras palabras, es CreateForm el que establece quién será el formulario principal. Pero dicho método no es el único para crear formularios. Lo usual aquí es modificar a mano el archivo dpr que normalmente se ve así:

Código Delphi [-]
program Project1;

uses
  Forms,
  uMain in 'uMain.pas' {MainForm},
  uLogin in 'uLogin.pas' {LoginForm};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TLoginForm, LoginForm);
  Application.CreateForm(TMainForm, MainForm);
  Application.Run;
end.

Entonces, para que no se interprete a LoginForm como el principal, pero que aún así sea el primero que ve el usuario, tienes que crearlo de otra forma, por ejemplo:

Código Delphi [-]
program Project1;

uses
  Windows, // para la constante ID_OK
  Forms,
  uMain in 'uMain.pas' {MainForm},
  uLogin in 'uLogin.pas' {LoginForm};

{$R *.res}

begin
  Application.Initialize;

  LoginForm := TLoginForm.Create(Application);
  if LoginForm.ShowModal = ID_OK then
  begin
    LoginForm.Free; // o LoginForm.Hide
    Application.CreateForm(TMainForm, MainForm);
  end;

  Application.Run;
end.

// Saludos
Responder Con Cita