Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
porter Colaborador

Registrado: Segunda-Feira, 23 de Fevereiro de 2009 Mensagens: 1353
|
Enviada: Sex Jul 30, 2010 3:12 pm Assunto: usar mesmo form para senha ser usado em todo sistema[RESOLVI |
|
|
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 |
|
 |
Sitolino Novato

Registrado: Quarta-Feira, 28 de Julho de 2010 Mensagens: 30
|
Enviada: Sex Jul 30, 2010 3:19 pm Assunto: |
|
|
Como o seu form de login esta funcionando?
poderia colar o codigo da forma do login, ai podemos ajudar mais.[/quote] |
|
Voltar ao Topo |
|
 |
felipecaputo Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010 Mensagens: 1719 Localização: Florianópolis / SC
|
Enviada: Sex Jul 30, 2010 3:22 pm Assunto: |
|
|
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 |
|
 |
porter Colaborador

Registrado: Segunda-Feira, 23 de Fevereiro de 2009 Mensagens: 1353
|
Enviada: Sex Jul 30, 2010 3:38 pm Assunto: |
|
|
Felipe, se vc puder postar um exemplo ficarei grato. |
|
Voltar ao Topo |
|
 |
samfreire Aprendiz

Registrado: Quinta-Feira, 11 de Março de 2010 Mensagens: 136
|
Enviada: Sex Jul 30, 2010 4:21 pm Assunto: |
|
|
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 |
|
 |
porter Colaborador

Registrado: Segunda-Feira, 23 de Fevereiro de 2009 Mensagens: 1353
|
Enviada: Sex Jul 30, 2010 4:28 pm Assunto: |
|
|
mas se eu quiser usar esse mesmo form para testar a senha para acessar o form1 por exemplo ? |
|
Voltar ao Topo |
|
 |
BrunoMoreyra Colaborador

Registrado: Quinta-Feira, 26 de Novembro de 2009 Mensagens: 1398 Localização: Goiânia - GO / Brasília - DF
|
Enviada: Sex Jul 30, 2010 4:32 pm Assunto: Re: como usar o mesmo form para senha ser usado em todo sistema |
|
|
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 |
|
 |
samfreire Aprendiz

Registrado: Quinta-Feira, 11 de Março de 2010 Mensagens: 136
|
Enviada: Sex Jul 30, 2010 4:39 pm Assunto: |
|
|
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 |
|
 |
felipecaputo Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010 Mensagens: 1719 Localização: Florianópolis / SC
|
Enviada: Sex Jul 30, 2010 4:55 pm Assunto: |
|
|
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 |
|
 |
samfreire Aprendiz

Registrado: Quinta-Feira, 11 de Março de 2010 Mensagens: 136
|
Enviada: Sex Jul 30, 2010 5:17 pm Assunto: |
|
|
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 |
|
 |
lucas_alves Colaborador


Registrado: Domingo, 30 de Agosto de 2009 Mensagens: 1632 Localização: São Gonçalo - Rio de Janeiro
|
Enviada: Sex Jul 30, 2010 5:40 pm Assunto: |
|
|
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 |
|
 |
felipecaputo Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010 Mensagens: 1719 Localização: Florianópolis / SC
|
Enviada: Sex Jul 30, 2010 5:43 pm Assunto: |
|
|
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 |
|
 |
lucas_alves Colaborador


Registrado: Domingo, 30 de Agosto de 2009 Mensagens: 1632 Localização: São Gonçalo - Rio de Janeiro
|
Enviada: Sex Jul 30, 2010 6:06 pm Assunto: |
|
|
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 |
|
 |
|