Tela de Senha

04/02/2003

0

Galera por favor me ajudem.

Estou desenvolvendo um sistema em Delphi 5, e estou fazendo uma tela de senha e Usuario, porem nao sei como faco para que esta tela abra antes do menu Principal, esta tela de senha da as prioridades de acesso ou seja para cada pessoa é pré cadastrado seus acessos, mas o problema é que nao consigo fazer com que esta tela de senha apareca antes do Menu Principal.

Grato. :roll:


Jricardop.cabral

Jricardop.cabral

Responder

Posts

04/02/2003

Dantonds

Vc já tentou ir em Project, Options, Forms e colocar seu form de senha para available forms e seu projeto cria-lo automaticamente ? Eu tenho um cídigo desse tipo ele é assim :

Form Principal :

unit Principal_Form;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;

type
TfrmPrincipal = class(TForm)
btnFechar: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnFecharClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmPrincipal: TfrmPrincipal;

implementation

uses Senha_Form;

{$R *.DFM}

procedure TfrmPrincipal.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree; // libera o form da memória
end;

procedure TfrmPrincipal.btnFecharClick(Sender: TObject);
begin
Close; // Fecha o Form
end;

procedure TfrmPrincipal.FormCreate(Sender: TObject);
begin
frmSenha := TfrmSenha.Create(self);
frmSenha.ShowModal;
end;

end.

Form de Senha :

unit Senha_Form;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, Buttons, ExtCtrls;

type
TfrmSenha = class(TForm)
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
edUsuario: TEdit;
edSenha: TEdit;
Panel1: TPanel;
btnOk: TBitBtn;
btnCancela: TBitBtn;
tbSenha: TTable;
tbSenhaUSUARIO: TStringField;
tbSenhaSENHA: TStringField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnOkClick(Sender: TObject);
procedure btnCancelaClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmSenha: TfrmSenha;
iOK: Integer;

implementation

{$R *.DFM}

procedure TfrmSenha.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree; // libera o form da memória
end;

procedure TfrmSenha.btnOkClick(Sender: TObject);
begin
If tbSenha.Locate(´Usuario;Senha´, // verifica nos campos Usuario e Senha
VarArrayOf([edUsuario.Text,edSenha.Text]),[]) Then // se for igual aos digitados na tela
begin
iOK := 625;
Close;
end
else // se não for igual ao da tabela, exibe mensagem de erro
begin
Beep;
ShowMessage(´Nome de usuário e/ou senha Inválido!´);
Application.Terminate; // após mensagem fecha o form de senha
end;
end;

procedure TfrmSenha.btnCancelaClick(Sender: TObject);
begin
Application.Terminate;
end;

procedure TfrmSenha.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if iOK <> 625 then Canclose := False;
end;

end.

Eu uso banco de dados paradox.
Espero ter ajudado.


Responder

04/02/2003

Anonymous

Oi meu caro, vou tentar te passar a minha experiencia com a mesma situacao.
1 - na tabela de usuario para cada menu tem uma campo preenchido com S ou N (abilitado ou nao).
2 - criei dois procedimentos(abilita e desabilita)
ex; imaginando o cursor na posicao do usuario que tenta se logar
se campo_arquivo.value=´S´ then menu_arquivo.enabled:=true senao menu_arquivo.enabled:=false;...
o procedimento desabilita é para usuario inexistente desabilita tudo e mostra uma mensagem de erro.
3 - na hora que o usuario precionar o botao entrar eu faco tres coisas
3.1 procuro se o usuario existe
3.2 verifico se a senha esta correta
3.3 mando abilitar
4 - o mais importante, para a tela aparecer antes do Form Principal
coloque no Onshow FrmSenha.showmodal;(o principal se aparecera depois que este form for fechado).
5 - Cuidados.
5.1 o usuario pode precionar Alt+F4 e entrar sem o programa veirificar as premissoes no OnKeydown do form
if (shift=ssAlt) and (key=vk_F4) then
key:=#0//isso pode resolver\\

5.2 na verificacao se o usuario nao for permitido mandar encerrar a aplicacao (application.terminate ou somente Halt;).
na verdade so nao te mando o fonte do meu programa por que nao esta aqui mas qualquer duvida posso tentar por e-mail.
Boa Sorte!
Gean Carlos.


Responder

04/02/2003

Anonymous

É muito simples. Coloque o Form_Senha no Available Forms, dê dois clicks no DataModule(On Create do DataModule) e chama o form ali. É só isso.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar