En el programa principal puedes crear el formulario de login manualmente, mostrarlo modal para que el usuario ingrese su password y contraseña, y si todo estuvo bien cargas el formulario principal, liberas el de login, y dejas que corra tu aplicación como siempre.
program Project1;
uses
Forms, Controls,
Unit1 in 'Unit1.pas' {frmMain},
Unit2 in 'Unit2.pas' {frmLogin};
{$R *.RES}
begin
Application.Initialize;
frmLogin := TfrmLogin.Create(nil);
if frmLogin.ShowModal <> mrOK then exit;
Application.CreateForm(TfrmMain, frmMain);
frmLogin.Free;
Application.Run;
end.
En el botón "Aceptar" del formulario de login tendrías un código como este:
procedure TfrmLogin.btnOKClick(Sender: TObject);
begin
if (edtUsername.Text <> 'username') or
(edtPassword.Text = 'password') then begin
ModalResult := mrOk;
Hide;
end else begin
MessageDlg('Invalid user name or password.', mtError, [mbOk], 0);
edtUsername.SetFocus;
end;
end;
Espero que te sirva. Funciona en D5. No te garantizo que funcione en otras versiones de Delphi.
Ernesto De Spirito
http://www.latiumsoftware.com/es/index.php