ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

usar mesmo form para senha ser usado em todo sistema[RESOLVI

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
porter
Colaborador
Colaborador


Registrado: Segunda-Feira, 23 de Fevereiro de 2009
Mensagens: 1353

MensagemEnviada: Sex Jul 30, 2010 3:12 pm    Assunto: usar mesmo form para senha ser usado em todo sistema[RESOLVI Responder com Citação

boa tarde pessoal, estou querendo usar um mesmo form para informar senha para acessar algumas partes do sistema, como que fico sabendo no MainMenu qual opcao o usuario escolheu ?
Isso porque depois que o usuario escolheu uma opcao no Menu, vai ser aberto o form da senha, e se a senha digitada for correta, vou ter que acionar o form da opcao escolhida pelo usuario, mas ai eu nao sei qual a opcao foi escolhida no menu para executar o form escolhido.Espero ter explicado de forma facil de enteder.

obrigado.


Editado pela última vez por porter em Sex Jul 30, 2010 5:39 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Sitolino
Novato
Novato


Registrado: Quarta-Feira, 28 de Julho de 2010
Mensagens: 30

MensagemEnviada: Sex Jul 30, 2010 3:19 pm    Assunto: Responder com Citação

Como o seu form de login esta funcionando?
poderia colar o codigo da forma do login, ai podemos ajudar mais.[/quote]
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Yahoo Messenger MSN Messenger
felipecaputo
Colaborador
Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010
Mensagens: 1719
Localização: Florianópolis / SC

MensagemEnviada: Sex Jul 30, 2010 3:22 pm    Assunto: Responder com Citação

cria o seu form de login normal


cria uma class function EfetuarLogin : boolean;


e use ela para fzer login em todo sistema

se quiser que eu poste uma idea de um codigo desse tipo para vc
_________________
if Post.State = psResolvido then
Post.Caption := Post.Caption + ' [RESOLVIDO]';
_____________________________________________
O único homem que está isento de erros, é aquele que não arrisca acertar. Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
porter
Colaborador
Colaborador


Registrado: Segunda-Feira, 23 de Fevereiro de 2009
Mensagens: 1353

MensagemEnviada: Sex Jul 30, 2010 3:38 pm    Assunto: Responder com Citação

Felipe, se vc puder postar um exemplo ficarei grato.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
samfreire
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 11 de Março de 2010
Mensagens: 136

MensagemEnviada: Sex Jul 30, 2010 4:21 pm    Assunto: Responder com Citação

amigo fiz um pequeno exemplo com inputbox:

Código:
procedure TForm1.Cadastro1Click(Sender: TObject);
var
  sSenha: string;
begin
  sSenha:= InputBox('Atenção', 'Digite a Senha', '');
  if sSenha='Coelho' then
    form2.showmodal
  else
    ShowMessage('Erro de Senha');

end;


vc coloca no evento onclick dos menu.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
porter
Colaborador
Colaborador


Registrado: Segunda-Feira, 23 de Fevereiro de 2009
Mensagens: 1353

MensagemEnviada: Sex Jul 30, 2010 4:28 pm    Assunto: Responder com Citação

mas se eu quiser usar esse mesmo form para testar a senha para acessar o form1 por exemplo ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
BrunoMoreyra
Colaborador
Colaborador


Registrado: Quinta-Feira, 26 de Novembro de 2009
Mensagens: 1398
Localização: Goiânia - GO / Brasília - DF

MensagemEnviada: Sex Jul 30, 2010 4:32 pm    Assunto: Re: como usar o mesmo form para senha ser usado em todo sistema Responder com Citação

Boa tarde,

pelo o que eu entendi você terá que adicionar uma variável global de todo o projeto, onde ao clicar em cada opção do Menu você alimentará diferenciada. Com isso, ao confirmar a senha abrirá a tela conforme a alimentação desta variável.

porter escreveu:
boa tarde pessoal, estou querendo usar um mesmo form para informar senha para acessar algumas partes do sistema, como que fico sabendo no MainMenu qual opcao o usuario escolheu ?
Isso porque depois que o usuario escolheu uma opcao no Menu, vai ser aberto o form da senha, e se a senha digitada for correta, vou ter que acionar o form da opcao escolhida pelo usuario, mas ai eu nao sei qual a opcao foi escolhida no menu para executar o form escolhido.Espero ter explicado de forma facil de enteder.

obrigado.

_________________
Atencisamente,

Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
samfreire
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 11 de Março de 2010
Mensagens: 136

MensagemEnviada: Sex Jul 30, 2010 4:39 pm    Assunto: Responder com Citação

porter escreveu:
mas se eu quiser usar esse mesmo form para testar a senha para acessar o form1 por exemplo ?


Código:
procedure TForm1.Cadastro1Click(Sender: TObject);
var
  sSenha: string;
begin
  sSenha:= InputBox('Atenção', 'Digite a Senha', '');
  if sSenha='Coelho' then
    Button1.Visible:=True;//aqui e exemplo de um botão salvar, se a senha tiver ok ele aparece caso ao contrario nao.
  else
    ShowMessage('Erro de Senha');

end;


agora vai de sua imaginação, a onde vc vai por a verificação.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
felipecaputo
Colaborador
Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010
Mensagens: 1719
Localização: Florianópolis / SC

MensagemEnviada: Sex Jul 30, 2010 4:55 pm    Assunto: Responder com Citação

vamos lá...

vc cria o frmLogin certo? no botão vc vai validar login e senha, valide da forma que achar melhor, aí está só um exemplo:

Código:
if sqlLogin.recordcount = 1 then
  ModalResult := mrok
else
  Raise Exception.Create('Login e/ou senha inválidos').


depois no frmlogin sete a propriedade keypreview para true e coloque o seguinte código no onkeypress:

Código:
if key = #13 then
begin
  key := #0;
  perform(wm_nextdlgctl,0,0)
end;
if key = #27 then
begin
  key := #0;
  Self.Close;
end;


Se for colocar um botão cancelar, coloque self.close nele tb

Agora a parte mais importante:
No public do seu form de login vc declara uma class function

Código:
public
  class function ValidaLogin : Boolean;


usa ctrl + shift + c para criar o corpo da function e nela vc faz o seguinte:

Código:
class function TfrmLogin.ValidaLogin : Boolean
begin
  try
    if not assigned(frmlogin) then
      frmlogin := tfrmlogin.create(application);
    result := frmlogin.showmodal = mrok;
  finally
    freeandnil(frmlogin);
  end;
end;


e quando vc for chamar é so dar um uses no form q vc vai precisar e quando for validar o login é soh chamar a class function assim:

Código:
if tfrmlogin.ValidaLogin then
  showmessage('Vc logou')
else
  showmessage('vc não logou');

_________________
if Post.State = psResolvido then
Post.Caption := Post.Caption + ' [RESOLVIDO]';
_____________________________________________
O único homem que está isento de erros, é aquele que não arrisca acertar. Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
samfreire
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 11 de Março de 2010
Mensagens: 136

MensagemEnviada: Sex Jul 30, 2010 5:17 pm    Assunto: Responder com Citação

felipecaputo escreveu:
vamos lá...

vc cria o frmLogin certo? no botão vc vai validar login e senha, valide da forma que achar melhor, aí está só um exemplo:

Código:
if sqlLogin.recordcount = 1 then
  ModalResult := mrok
else
  Raise Exception.Create('Login e/ou senha inválidos').


depois no frmlogin sete a propriedade keypreview para true e coloque o seguinte código no onkeypress:

Código:
if key = #13 then
begin
  key := #0;
  perform(wm_nextdlgctl,0,0)
end;
if key = #27 then
begin
  key := #0;
  Self.Close;
end;


Se for colocar um botão cancelar, coloque self.close nele tb

Agora a parte mais importante:
No public do seu form de login vc declara uma class function

Código:
public
  class function ValidaLogin : Boolean;


usa ctrl + shift + c para criar o corpo da function e nela vc faz o seguinte:

Código:
class function TfrmLogin.ValidaLogin : Boolean
begin
  try
    if not assigned(frmlogin) then
      frmlogin := tfrmlogin.create(application);
    result := frmlogin.showmodal = mrok;
  finally
    freeandnil(frmlogin);
  end;
end;


e quando vc for chamar é so dar um uses no form q vc vai precisar e quando for validar o login é soh chamar a class function assim:

Código:
if tfrmlogin.ValidaLogin then
  showmessage('Vc logou')
else
  showmessage('vc não logou');


isso não e uma explicação, e uma verdadeira aula, muito bom o post.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
lucas_alves
Colaborador
Colaborador


Registrado: Domingo, 30 de Agosto de 2009
Mensagens: 1632
Localização: São Gonçalo - Rio de Janeiro

MensagemEnviada: Sex Jul 30, 2010 5:40 pm    Assunto: Responder com Citação

Pra que serve o class na frente da Function?

Citação:

class function TfrmLogin.ValidaLogin : Boolean
begin
try
if not assigned(frmlogin) then
...


As vezes eu vejo algumas Function e Procedure assim, e eu queria saber pra que serve, qual a diferença entre colocar o class ou não na function?

Desculpe a minha intromissão, é porque eu sempre vejo isso e não tenho a menor idéia pra que serve.

Alguém poderia me ajudar com esta dúvida?

Abraços!!!
_________________
Agora eu também programo em PHP.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
felipecaputo
Colaborador
Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010
Mensagens: 1719
Localização: Florianópolis / SC

MensagemEnviada: Sex Jul 30, 2010 5:43 pm    Assunto: Responder com Citação

quando é uma class o form não precisa estar instanciado (criado) para ser chamada, vc pode criar e destruir o form dentro da função. seria basicamente isso
_________________
if Post.State = psResolvido then
Post.Caption := Post.Caption + ' [RESOLVIDO]';
_____________________________________________
O único homem que está isento de erros, é aquele que não arrisca acertar. Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
lucas_alves
Colaborador
Colaborador


Registrado: Domingo, 30 de Agosto de 2009
Mensagens: 1632
Localização: São Gonçalo - Rio de Janeiro

MensagemEnviada: Sex Jul 30, 2010 6:06 pm    Assunto: Responder com Citação

felipecaputo escreveu:
quando é uma class o form não precisa estar instanciado (criado) para ser chamada, vc pode criar e destruir o form dentro da função. seria basicamente isso


Valeu Felipe,

Antes quando eu precisava fazer algo deste tipo, eu colocava em uma unit separada pra não dar Access Violation. Agora eu vou passar a usar o class pra economizar tempo e trabalho.

Por isso que é bom perguntar, agente aprende coisas que economizam nosso tempo, e contribui pro nosso aprendizado.

Abraços!!!
_________________
Agora eu também programo em PHP.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB