DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Fórum DevMedia


Autor
Mensagem
Emerson
 

País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 18/6/2011 11:16:33 AM

estou abrindo um novo tópico pois não consigo responder no original...

primeiro:
para melhorar a segurança, NÃO avalie usuário e senha separadamente.
avaliar em conjunto dificulta o quebra via força-bruta, pois não dá pra saber o que foi digitado errado.
então sugiro que você mude sua avaliação para:

procedure TFrmLogin.BtnOKClick(Sender: TObject);
var
  ValorSenha: TstringField;
begin
  if not DM.tableusers.findkey([ednome.text]) or
     (DM.tableUsers.fieldbyname('Senha').value<>edsenha.text) then
  begin
    pnlMensagem.Caption:='Login Recusado. Usuário ou Senha inválidos...';
    inc(Contador);
    if contador = 4 then // alcançou o limite de tentativas
      frmPrincipal.close;
    ednome.setfocus;
    Exit;
  end;
   ValorSenha:=DM.tableUsers.findfield('Senha') as tStringfield;

  frmPrincipal.label2.Caption := frmLogin.EdNome.Text;
  frmPrincipal.enabled:=true;
  frmlogin.release;
end;


segundo:
qual é o form principal da sua aplicação?
esta informação é essencial para poder te oferecer uma solução adequada.


FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 19/6/2011 6:10:03 PM

Citação:
estou abrindo um novo tópico pois não consigo responder no original...

primeiro:
para melhorar a segurança, NÃO avalie usuário e senha separadamente.
avaliar em conjunto dificulta o quebra via força-bruta, pois não dá pra saber o que foi digitado errado.
então sugiro que você mude sua avaliação para:

procedure TFrmLogin.BtnOKClick(Sender: TObject);
var
  ValorSenha: TstringField;
begin
  if not DM.tableusers.findkey([ednome.text]) or
     (DM.tableUsers.fieldbyname('Senha').value<>edsenha.text) then
  begin
    pnlMensagem.Caption:='Login Recusado. Usuário ou Senha inválidos...';
    inc(Contador);
    if contador = 4 then // alcançou o limite de tentativas
      frmPrincipal.close;
    ednome.setfocus;
    Exit;
  end;
   ValorSenha:=DM.tableUsers.findfield('Senha') as tStringfield;

  frmPrincipal.label2.Caption := frmLogin.EdNome.Text;
  frmPrincipal.enabled:=true;
  frmlogin.release;
end;


segundo:
qual é o form principal da sua aplicação?
esta informação é essencial para poder te oferecer uma solução adequada.




Ok, desculpe pela demora, estava arrumando minha máquina. O Form Principal é o frmPrincipal.

 
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 20/6/2011 8:48:00 AM
ok. pelo que eu entendi no seu código, você quer que quando a tela de login apareça, a tela principal desapareça. é isso mesmo? porque se for assim, você poderia apenas escondê-la, e não eliminá-la.

então eu faria assim:



no DPR (adicione Controls na uses):

begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  Application.CreateForm(TFrmLogin, FrmLogin);
  if FrmLogin.ShowModal = mrOk then
    Application.Run
  else
    Application.Terminate;
end.




no FrmLogin:

procedure TFrmLogin.BtnOKClick(Sender: TObject);
begin
  try
    if not DM.tableusers.findkey([ednome.text]) or
       (DM.tableUsers.fieldbyname('Senha').value<>edsenha.text) then
    begin
      pnlMensagem.Caption:='Login Recusado. Usuário ou Senha inválidos...';
      inc(Contador);

      if contador = 4 then // alcançou o limite de tentativas
      begin
        Application.MessageBox('Número de tentativas esgotado. O sistema será fechado.',
          'Login negado', MB_TASKMODAL + MB_OK + MB_ICONERROR);
        ModalResult := mrCancel;
      end
      else
        ednome.setfocus;
    end
    else
    begin
      frmPrincipal.label2.Caption := edNome.Text;
      ModalResult := mrOk;
    end;
  except
    // caso haja qualquer erro na avalição, sai do sistema
    // para evitar acesso indevido
    ModalResult := mrCancel;
  end;
end;




no FrmPrincipal:

procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
   Self.Visible := False;
   Application.CreateForm(TFrmLogin, FrmLogin);
   if FrmLogin.ShowModal = mrOk then
     Self.Visible := True
   else
     Self.Close;
end;





 
Wilson Lehapan Junior, vulgo Paulista...!!!
 
 
 


País: Brasil
Estado: RS
Cidade: Caxias do Sul
Mensagens: 1574
 Postado em: 20/6/2011 8:52:37 AM
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 20/6/2011 5:58:58 PM
é sim. esse aí é o tópico original. porém é impossível responder nele.
por isso criei este outro.

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 20/6/2011 9:13:15 PM

Citação:
é sim. esse aí é o tópico original. porém é impossível responder nele.
por isso criei este outro.


Vc conseguiu detectar o erro? O problema é quando logo com o segundo usuário, ao clicar em sair da o erro.

 
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 21/6/2011 10:21:59 AM

Citação:
ok. pelo que eu entendi no seu código, você quer que quando a tela de login apareça, a tela principal desapareça. é isso mesmo? porque se for assim, você poderia apenas escondê-la, e não eliminá-la.

então eu faria assim:



no DPR (adicione Controls na uses):

begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  Application.CreateForm(TFrmLogin, FrmLogin);
  if FrmLogin.ShowModal = mrOk then
    Application.Run
  else
    Application.Terminate;
end.




no FrmLogin:

procedure TFrmLogin.BtnOKClick(Sender: TObject);
begin
  try
    if not DM.tableusers.findkey([ednome.text]) or
       (DM.tableUsers.fieldbyname('Senha').value<>edsenha.text) then
    begin
      pnlMensagem.Caption:='Login Recusado. Usuário ou Senha inválidos...';
      inc(Contador);

      if contador = 4 then // alcançou o limite de tentativas
      begin
        Application.MessageBox('Número de tentativas esgotado. O sistema será fechado.',
          'Login negado', MB_TASKMODAL + MB_OK + MB_ICONERROR);
        ModalResult := mrCancel;
      end
      else
        ednome.setfocus;
    end
    else
    begin
      frmPrincipal.label2.Caption := edNome.Text;
      ModalResult := mrOk;
    end;
  except
    // caso haja qualquer erro na avalição, sai do sistema
    // para evitar acesso indevido
    ModalResult := mrCancel;
  end;
end;




no FrmPrincipal:

procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
   Self.Visible := False;
   Application.CreateForm(TFrmLogin, FrmLogin);
   if FrmLogin.ShowModal = mrOk then
     Self.Visible := True
   else
     Self.Close;
end;




você testou com as alterações acima ?

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 10:47:57 AM

Citação:

Citação:
ok. pelo que eu entendi no seu código, você quer que quando a tela de login apareça, a tela principal desapareça. é isso mesmo? porque se for assim, você poderia apenas escondê-la, e não eliminá-la.

então eu faria assim:



no DPR (adicione Controls na uses):

begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  Application.CreateForm(TFrmLogin, FrmLogin);
  if FrmLogin.ShowModal = mrOk then
    Application.Run
  else
    Application.Terminate;
end.




no FrmLogin:

procedure TFrmLogin.BtnOKClick(Sender: TObject);
begin
  try
    if not DM.tableusers.findkey([ednome.text]) or
       (DM.tableUsers.fieldbyname('Senha').value<>edsenha.text) then
    begin
      pnlMensagem.Caption:='Login Recusado. Usuário ou Senha inválidos...';
      inc(Contador);

      if contador = 4 then // alcançou o limite de tentativas
      begin
        Application.MessageBox('Número de tentativas esgotado. O sistema será fechado.',
          'Login negado', MB_TASKMODAL + MB_OK + MB_ICONERROR);
        ModalResult := mrCancel;
      end
      else
        ednome.setfocus;
    end
    else
    begin
      frmPrincipal.label2.Caption := edNome.Text;
      ModalResult := mrOk;
    end;
  except
    // caso haja qualquer erro na avalição, sai do sistema
    // para evitar acesso indevido
    ModalResult := mrCancel;
  end;
end;




no FrmPrincipal:

procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
   Self.Visible := False;
   Application.CreateForm(TFrmLogin, FrmLogin);
   if FrmLogin.ShowModal = mrOk then
     Self.Visible := True
   else
     Self.Close;
end;




você testou com as alterações acima ?


Vou fazer agora, um momento, ok?

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 10:52:07 AM

Citação:

Citação:

Citação:
ok. pelo que eu entendi no seu código, você quer que quando a tela de login apareça, a tela principal desapareça. é isso mesmo? porque se for assim, você poderia apenas escondê-la, e não eliminá-la.

então eu faria assim:



no DPR (adicione Controls na uses):

begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  Application.CreateForm(TFrmLogin, FrmLogin);
  if FrmLogin.ShowModal = mrOk then
    Application.Run
  else
    Application.Terminate;
end.




no FrmLogin:

procedure TFrmLogin.BtnOKClick(Sender: TObject);
begin
  try
    if not DM.tableusers.findkey([ednome.text]) or
       (DM.tableUsers.fieldbyname('Senha').value<>edsenha.text) then
    begin
      pnlMensagem.Caption:='Login Recusado. Usuário ou Senha inválidos...';
      inc(Contador);

      if contador = 4 then // alcançou o limite de tentativas
      begin
        Application.MessageBox('Número de tentativas esgotado. O sistema será fechado.',
          'Login negado', MB_TASKMODAL + MB_OK + MB_ICONERROR);
        ModalResult := mrCancel;
      end
      else
        ednome.setfocus;
    end
    else
    begin
      frmPrincipal.label2.Caption := edNome.Text;
      ModalResult := mrOk;
    end;
  except
    // caso haja qualquer erro na avalição, sai do sistema
    // para evitar acesso indevido
    ModalResult := mrCancel;
  end;
end;




no FrmPrincipal:

procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
   Self.Visible := False;
   Application.CreateForm(TFrmLogin, FrmLogin);
   if FrmLogin.ShowModal = mrOk then
     Self.Visible := True
   else
     Self.Close;
end;




você testou com as alterações acima ?


Vou fazer agora, um momento, ok?


Tá dando erro nessa linha:

if FrmLogin.ShowModal = mrOk then

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 11:14:00 AM

Citação:

Citação:

Citação:

Citação:
ok. pelo que eu entendi no seu código, você quer que quando a tela de login apareça, a tela principal desapareça. é isso mesmo? porque se for assim, você poderia apenas escondê-la, e não eliminá-la.

então eu faria assim:



no DPR (adicione Controls na uses):

begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  Application.CreateForm(TFrmLogin, FrmLogin);
  if FrmLogin.ShowModal = mrOk then
    Application.Run
  else
    Application.Terminate;
end.




no FrmLogin:

procedure TFrmLogin.BtnOKClick(Sender: TObject);
begin
  try
    if not DM.tableusers.findkey([ednome.text]) or
       (DM.tableUsers.fieldbyname('Senha').value<>edsenha.text) then
    begin
      pnlMensagem.Caption:='Login Recusado. Usuário ou Senha inválidos...';
      inc(Contador);

      if contador = 4 then // alcançou o limite de tentativas
      begin
        Application.MessageBox('Número de tentativas esgotado. O sistema será fechado.',
          'Login negado', MB_TASKMODAL + MB_OK + MB_ICONERROR);
        ModalResult := mrCancel;
      end
      else
        ednome.setfocus;
    end
    else
    begin
      frmPrincipal.label2.Caption := edNome.Text;
      ModalResult := mrOk;
    end;
  except
    // caso haja qualquer erro na avalição, sai do sistema
    // para evitar acesso indevido
    ModalResult := mrCancel;
  end;
end;




no FrmPrincipal:

procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
   Self.Visible := False;
   Application.CreateForm(TFrmLogin, FrmLogin);
   if FrmLogin.ShowModal = mrOk then
     Self.Visible := True
   else
     Self.Close;
end;




você testou com as alterações acima ?


Vou fazer agora, um momento, ok?


Tá dando erro nessa linha:

if FrmLogin.ShowModal = mrOk then




Deu erro agora nessa linha: 

Application.CreateForm(TFrmPrincipal, FrmPrincipal);

A uses ta assim:

program Parte2;

uses
  Forms,
  Controls,
  UnitPrincipal in 'UnitPrincipal.pas' {FrmPrincipal},
  UnitLogin in 'UnitLogin.pas' {FrmLogin},
  UnitDM in 'UnitDM.pas' {DM: TDataModule},
  UnitSenhas in 'UnitSenhas.pas' {FrmSenhas};

{$R *.RES}

begin
//  Application.Initialize;
//  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
//  Application.CreateForm(TDM, DM);
//  Application.Run;

  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  Application.CreateForm(TFrmLogin, FrmLogin);
  if FrmLogin.ShowModal = mrOk then
    Application.Run
  else
    Application.Terminate;

end.

Não sei mais o que fazer.

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 11:26:34 AM

Citação:

Citação:

Citação:

Citação:

Citação:
ok. pelo que eu entendi no seu código, você quer que quando a tela de login apareça, a tela principal desapareça. é isso mesmo? porque se for assim, você poderia apenas escondê-la, e não eliminá-la.

então eu faria assim:



no DPR (adicione Controls na uses):

begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  Application.CreateForm(TFrmLogin, FrmLogin);
  if FrmLogin.ShowModal = mrOk then
    Application.Run
  else
    Application.Terminate;
end.




no FrmLogin:

procedure TFrmLogin.BtnOKClick(Sender: TObject);
begin
  try
    if not DM.tableusers.findkey([ednome.text]) or
       (DM.tableUsers.fieldbyname('Senha').value<>edsenha.text) then
    begin
      pnlMensagem.Caption:='Login Recusado. Usuário ou Senha inválidos...';
      inc(Contador);

      if contador = 4 then // alcançou o limite de tentativas
      begin
        Application.MessageBox('Número de tentativas esgotado. O sistema será fechado.',
          'Login negado', MB_TASKMODAL + MB_OK + MB_ICONERROR);
        ModalResult := mrCancel;
      end
      else
        ednome.setfocus;
    end
    else
    begin
      frmPrincipal.label2.Caption := edNome.Text;
      ModalResult := mrOk;
    end;
  except
    // caso haja qualquer erro na avalição, sai do sistema
    // para evitar acesso indevido
    ModalResult := mrCancel;
  end;
end;




no FrmPrincipal:

procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
   Self.Visible := False;
   Application.CreateForm(TFrmLogin, FrmLogin);
   if FrmLogin.ShowModal = mrOk then
     Self.Visible := True
   else
     Self.Close;
end;




você testou com as alterações acima ?


Vou fazer agora, um momento, ok?


Tá dando erro nessa linha:

if FrmLogin.ShowModal = mrOk then




Deu erro agora nessa linha: 

Application.CreateForm(TFrmPrincipal, FrmPrincipal);

A uses ta assim:

program Parte2;

uses
  Forms,
  Controls,
  UnitPrincipal in 'UnitPrincipal.pas' {FrmPrincipal},
  UnitLogin in 'UnitLogin.pas' {FrmLogin},
  UnitDM in 'UnitDM.pas' {DM: TDataModule},
  UnitSenhas in 'UnitSenhas.pas' {FrmSenhas};

{$R *.RES}

begin
//  Application.Initialize;
//  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
//  Application.CreateForm(TDM, DM);
//  Application.Run;

  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  Application.CreateForm(TFrmLogin, FrmLogin);
  if FrmLogin.ShowModal = mrOk then
    Application.Run
  else
    Application.Terminate;

end.

Não sei mais o que fazer.


Fiz essas modificações e continua dando erro.

Fiz uma mudança e o erro acima sumiu:

De: Application.CreateForm(TDM, DM);
      Application.CreateForm(TFrmPrincipal, FrmPrincipal);

Para:   Application.CreateForm(TFrmPrincipal, FrmPrincipal);
           Application.CreateForm(TDM, DM);

Ahh, e o procedimento no botão OK no FrmLogin não entra no form Principal, entro com o login e senha e fica só na tela de login.


 
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 21/6/2011 12:34:11 PM
isso deve acontecer porque seu frmprincipal não está marcado como formulário principal da aplicação.


se você puder me passar seu projeto, com essas três units (principal, login, dm), posso tentar resolver o problema.

emerson.en@gmail.com



 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 12:36:36 PM

Citação:
isso deve acontecer porque seu frmprincipal não está marcado como formulário principal da aplicação.


se você puder me passar seu projeto, com essas três units (principal, login, dm), posso tentar resolver o problema.

emerson.en@gmail.com




Consegue me mandar ainda hoje? Estou parado nisso.

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 12:45:44 PM

Citação:

Citação:
isso deve acontecer porque seu frmprincipal não está marcado como formulário principal da aplicação.


se você puder me passar seu projeto, com essas três units (principal, login, dm), posso tentar resolver o problema.

emerson.en@gmail.com




Consegue me mandar ainda hoje? Estou parado nisso.


Acabei de enviar.

 
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 21/6/2011 1:32:51 PM
fiz exatamente como no exemplo que eu te passei.

só uma coisa não havia sido explicada por você:
do DM havia o seguinte código:

procedure TDM.DMCreate(Sender: TObject);
begin
   frmprincipal.show;
   frmLogin:=TfrmLogin.create(self);
   frmlogin.show;
end;


totalmente DESnecessário. retirei do fonte.

estava meio bagunçado: os formulários eram criados e destruídos em vários locais do seu programa.

te enviei o fonte corrigido.

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 2:04:41 PM

Citação:
fiz exatamente como no exemplo que eu te passei.

só uma coisa não havia sido explicada por você:
do DM havia o seguinte código:

procedure TDM.DMCreate(Sender: TObject);
begin
   frmprincipal.show;
   frmLogin:=TfrmLogin.create(self);
   frmlogin.show;
end;


totalmente DESnecessário. retirei do fonte.

estava meio bagunçado: os formulários eram criados e destruídos em vários locais do seu programa.

te enviei o fonte corrigido.


Não recebi, Emerson. Pode enviar novamente?

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 2:22:13 PM

Citação:

Citação:
fiz exatamente como no exemplo que eu te passei.

só uma coisa não havia sido explicada por você:
do DM havia o seguinte código:

procedure TDM.DMCreate(Sender: TObject);
begin
   frmprincipal.show;
   frmLogin:=TfrmLogin.create(self);
   frmlogin.show;
end;


totalmente DESnecessário. retirei do fonte.

estava meio bagunçado: os formulários eram criados e destruídos em vários locais do seu programa.

te enviei o fonte corrigido.


Não recebi, Emerson. Pode enviar novamente?


Emerson, funcionou perfeitamente. Como faço para o form principal aparecer no fundo, caso queira fazer assim?

 
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 21/6/2011 2:28:41 PM
será necessário alterar um pouco o esquema, pois o responsável pela chamada do login seria somente o frmprincipal.


 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 2:29:58 PM

Citação:
será necessário alterar um pouco o esquema, pois o responsável pela chamada do login seria somente o frmprincipal.



Tem como fazer para mim?

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 2:30:38 PM

Citação:

Citação:
será necessário alterar um pouco o esquema, pois o responsável pela chamada do login seria somente o frmprincipal.



Tem como fazer para mim?


Ou explicar aqui como fazer que faço.

 
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 21/6/2011 3:01:27 PM
o primeiro login eu creio que deva aparecer antes da tela principal, porém para o logoff acho que a tela principal deveria ficar aparecendo ao fundo.

para isso, altere apenas o procedimento do logoff, de modo a ficar assim:

procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
   if TFrmLogin.ChamaLogin <> mrOk then
   begin
     lFecha := True;
     Self.Close;
   end;
end;



 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 3:26:39 PM

Citação:
o primeiro login eu creio que deva aparecer antes da tela principal, porém para o logoff acho que a tela principal deveria ficar aparecendo ao fundo.

para isso, altere apenas o procedimento do logoff, de modo a ficar assim:

procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
   if TFrmLogin.ChamaLogin <> mrOk then
   begin
     lFecha := True;
     Self.Close;
   end;
end;




Ok, caso queira que o form principal apareça de fundo no primeiro login também, dá para fazer? Essa é para encerrar.

 
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 21/6/2011 5:22:51 PM
altere o DPR, de modo a ficar assim:

begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  FrmPrincipal.Show; // acrescente esta linha
  if TFrmLogin.ChamaLogin = mrOk then
    Application.Run
  else
    Application.Terminate;
end.




 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 6:30:03 PM

Citação:
altere o DPR, de modo a ficar assim:

begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  FrmPrincipal.Show; // acrescente esta linha
  if TFrmLogin.ChamaLogin = mrOk then
    Application.Run
  else
    Application.Terminate;
end.





Ok, vou testar. Obrigado por enquanto.

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 7:12:36 PM

Citação:

Citação:
altere o DPR, de modo a ficar assim:

begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  FrmPrincipal.Show; // acrescente esta linha
  if TFrmLogin.ChamaLogin = mrOk then
    Application.Run
  else
    Application.Terminate;
end.





Ok, vou testar. Obrigado por enquanto.


Funcionou perfeito. Agora posso dar contiuidade. Obrigado Emerson.

 
FREDERICO BRIGATTE***
 

País: Brasil
Estado: SP
Cidade: Saõ José dos Campos
Mensagens: 988
 Postado em: 21/6/2011 7:20:46 PM

Citação:

Citação:

Citação:
altere o DPR, de modo a ficar assim:

begin
  Application.Initialize;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  FrmPrincipal.Show; // acrescente esta linha
  if TFrmLogin.ChamaLogin = mrOk then
    Application.Run
  else
    Application.Terminate;
end.





Ok, vou testar. Obrigado por enquanto.


Funcionou perfeito. Agora posso dar contiuidade. Obrigado Emerson.


Está estranho. Estou querendo fazer um perfil de usuários aqui, mas está deixando fazer com qualquer um que loga. Vc teria um exemplo ou melhorar esse?

 
José Ricardo Teixeira
 
 
 


País: Brasil
Estado: SC
Cidade: Imbituba
Mensagens: 820
 Postado em: 5/5/2013 9:42:00 PM
Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.

 
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03