Ver Mensaje Individual
  #6  
Antiguo 13-01-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Melissa_12,

Cita:
Empezado por Melissa_12
He probado el enlace que me ha dicho Nelson y no se muy bien donde poner el código que viene. O sea, ya he puesto la función para poner la forma que quiero como forma principal pero desde donde debo llamar el procedimiento?
En el caso particular de que el Form de acceso de tu aplicación sea el MainForm, puedes una vez validado y aceptado el acceso del usuario al sistema, colocar el siguiente código antes de llamar a la primera pantalla de tu aplicación (Se asume que FormLogin es el MainForm):
Código Delphi [-]
// Código de ejemplo del Formulario FormLogin:

// Cambia el formulario principal en Runtime.
procedure SetAsMainForm(aForm:TForm);
var
  P : Pointer;
begin
  // Dirección del Formulario Principal
  P := @Application.Mainform;
  // Cambia la Dirección del Formulario Principal
  Pointer(P^) := aForm;
end;

// Valida el acceso a la aplicación
procedure ValidateLogin(UserName, PassWord : String);
begin
   
   // Ejecutas el código de validación de acceso de tu aplicación.

   // Si el acceso fue valido ejecutas el código siguiente:

   // Establece FormApp con FormMain
   SetAsMainForm(FormApp);
  
   // Muestra FormApp
   FormApp.Show;
  
   // Cierra FormLogin
   FormLogin.Close;

end;
El código anterior establece a FormApp como formulario principal en vez de FormLogin y cierra el formulario de login.

Una forma mas estándar de usar un formulario de login es la siguiente:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin

   Form2 := TForm2.Create(nil);
   Form2.Visible := False;
   Form2.BorderStyle := bsDialog;

   if Form2.ShowModal = mrOk then
   begin
      Form1.BringToFront;
      Form2.Release;
   end
   else
      Application.Terminate;
  
end;
El código anterior llama en el evento OnCreate de Form1 al formulario de login Form2 el cual valida el acceso a la aplicación. Form2 no se encuentra configurado en: Project -> Options -> Forms -> Auto-create forms y por ser de tipo Modal, Form1 no se visualizara hasta que el acceso sea valido, caso contrario finalizara la aplicación.

Te anexo un ejemplo de login usando una aplicación MDI, pero la lógica es la misma para aplicaciones SDI. El ejemplo esta disponible en el link: http://terawiki.clubdelphi.com/Delph...load=Login.rar

El ejemplo de cambiar el formulario principal del Mensaje 3 esta disponible en el link: http://www.clubdelphi.com/foros/atta...7&d=1353126375

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 13-01-2013 a las 05:05:53.
Responder Con Cita