Ver Mensaje Individual
  #1  
Antiguo 13-01-2007
truequeman truequeman is offline
Miembro
 
Registrado: ene 2007
Posts: 26
Reputación: 0
truequeman Va por buen camino
ventana de password

(Antes que nada.. busque hilos sobre este tema antes de postear este y no encontre parecidos por eso publico este)

Hola.. tengo un proyecto en el cual sale una ventana de passwords (que verifica una base de datos y le asigna los permisos correspondientes a cada usuario) y de ahi se enlaza al programa principal...

el problema es que si se le da alt+f4 se brinca esa pantalla y entra a la principal con todos los permisos (abir, consultas, reportes etc..)..

hice un usuario 0 con contraseña 0. en el cual si se le ponia alt + f4 (configurando el usuario sin ningun acceso ) entra sin problemas pero no me sale nada.. ni siquiera el menu salir.

le puse un canclose = false... y a la hora de poner el usuario con la contraseña correcta no me manda a la ventana principal.. se queda la misma ventana sin salirse (y no se puede cerrar ni con alt+f4).

el codigo es este (un poco resumido) (para no hacerlo largo con eso de los permisos x usuario)

...................

(en que estoy mal?)
.....................

Código Delphi [-]
 
unit VentanaDePasswords;
interface
uses Windows, SysUtils, Dialogs, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, Db, DBTables, jpeg, ExtCtrls;
type
  TPasswordDlg = class(TForm)
    Password: TEdit;
    Usuario: TEdit;
    Image1: TImage;
    OKBtn: TBitBtn;
    CancelBtn: TBitBtn;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Image2: TImage;
    procedure CancelBtnClick(Sender: TObject);
    procedure OKBtnClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  PasswordDlg: TPasswordDlg;
implementation
uses Principal, ModulodeDatos;
{$R *.DFM}
procedure TPasswordDlg.CancelBtnClick(Sender: TObject);
begin
  Application.Terminate
end;
procedure TPasswordDlg.OKBtnClick(Sender: TObject);
Var
  Existe : Boolean;
begin
  ModuloDatos.Usuarios.Open;
  Existe := False;
  ModuloDatos.Usuarios.First;
  repeat
    If ModuloDatos.UsuariosNick.Value = Usuario.Text then
      if ModuloDatos.UsuariosPassword.Value = PAssword.Text then
        Existe := True;
    ModuloDatos.Usuarios.MoveBy(1);
  until ModuloDatos.Usuarios.Eof;
  if Existe = True then
  begin
    ModuloDatos.RestricionUsuarios.Open;
    Password.Clear;
    ModuloDatos.RestricionUsuarios.Edit;
    ModuloDatos.RestricionUsuarios.setkey;
    ModuloDatos.RestricionUsuarios.fieldByName('Nick').AsString:=trim(Usuario.Text);
    if ModuloDatos.RestricionUsuarios.gotoKey then
    begin
      if ModuloDatos.RestricionUsuariosMenArchivo.Value = 1 then
      begin
        Inicio.Archivo.Visible := True;
        Inicio.Archivo.Enabled := True;
      end
      else
      begin
        Inicio.Archivo.Visible := False;
        Inicio.Archivo.Enabled := False;
      end;
      if ModuloDatos.RestricionUsuariosCambiarUsuario.Value = 1 then
      begin
        Inicio.CambiardeUsuario1.Visible := True;
        Inicio.CambiardeUsuario1.Enabled := True;
      end
      else
      begin
        Inicio.CambiardeUsuario1.Visible := False;
        Inicio.CambiardeUsuario1.Enabled := False;
      end;
 
((( y asi sucesivamente con todos los permisos .. continua codigo aqui))
 
    end;
    ModuloDatos.RestricionUsuarios.Close;
    ModuloDatos.Usuarios.Close;
    Close;
  end
  else
  begin
    MessageDlg('Nombre de Usuario o Password Erroneo, Intentelo de nuevo por favor', mtWarning,
      [mbOk], 0);
    OkBtn.SetFocus;
    Usuario.SetFocus;
    ModuloDatos.Usuarios.Close;   
  end;
end;
procedure TPasswordDlg.FormActivate(Sender: TObject);
begin
  Usuario.SetFocus;
end;
procedure TPasswordDlg.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  CanClose:=True;
end;
end.

y si pongo canclose = False no se cierra..
gracias.

Última edición por roman fecha: 13-01-2007 a las 00:36:53.
Responder Con Cita