truequeman
13-01-2007, 00:19:45
(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?)
.....................
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.
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?)
.....................
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.