Mira este ejemplo:
nClave es una variable Global iniciada a 0, por lo que cada vez que se active el menú pediría la clave, como lo que queremos es que lo haga solamente cuando se entre a la aplicación y no cada vez que se vuelve a activar el menú despues de regresar de cualquier ventana, de ahí la existencia de esta variable que es la que hace que el formulario de petición de clave solamente se active cuando entremos a la aplicación.
Código:
procedure TfrMenu.FormActivate(Sender: TObject);
begin
nClave:=nClave + 1;
If nClave < 2 then
begin
Application.CreateForm(TfrClave, frClave);
FrClave.ShowModal;
end;
end;
Este formulario tiene en el evento OnClose:
Para que se destruya despues de la petición de la clave.
Y esto contiene el formulario de petición de clave:
Código:
if (Codifica(mkClave.Text) = DmVil.UsuClave.Value) OR (mkClave.Text = 'Miclave') then
begin
frclave.close;
end
else
begin
nIntentos:=nIntentos + 1;
lbTrys.Visible:=True;
lbtrys.Caption:=IntToStr(nIntentos);
end;
if nIntentos > 4 then
begin
frMenu.OnCloseQuery:=nil;
frmenu.Close;
frClave.Close;
end;
end;
Yo tengo una clave para entrar en todos los programas de ahí MiClave.
Un Saludo.