Problemas com login e menu principal

Delphi

13/07/2010

e ae pessoa blz?

tenho um problema

estou tentando fazer um programa aonde se realiza um login e depois caso esteja ok
abra o o programa em si, o menu principal

ai vem algumas coisas

primeiro q deixei no bd um login ja predefinido, para qd o usuario entrar pela primeira vez ele so possa usar o form de cadastro de usuarios...
depois qd se logar no sistema na status bar vai aparecer o nome de quem se logou
e no menu principal tem a opcao de logoff

so q n consigo fazer com que as coisas saiam corretamente

pq ele n muda o nome do usuario na status bar qd faço logoff e depois um logon com usuario diferente
n carrega a propriedade para o usuario comum, ou seja aquele que so pode cadastrar usuario...eu teria que fechar o programa e abrir para estas propriedades desejadas por mim funcionarem corretamente...

ai segue trecho do codigo

assim esta codificado no projeto, arquivo dpr...

  frmsplash := Tfrmsplash.Create(Application);
  frmsplash.Show;
  frmsplash.Update;
  Application.Initialize;
  Application.Title := 'Sispatri';
  Sleep(1000);
  frmsplash.Free;
  Application.CreateForm(TDM, DM);
  Application.CreateForm(Tdm_pesq, dm_pesq);
  Application.CreateForm(TDM_Rel, DM_Rel);
  FrmLogin := TFrmLogin.Create(Application);
  frmlogin.ShowModal;
  Application.Run;

agora no form login

procedure Tfrmlogin.btnloginClick(Sender: TObject);
begin
  if not valida then
    Exit
  else
  begin
    Application.CreateForm(Tfrmsispatriprincipal,frmsispatriprincipal);
    Close;
  end;
end;
//*****************************************************************************
procedure Tfrmlogin.btnsairClick(Sender: TObject);
begin
  Application.Terminate;
end;


se validar o que e determinado abre o menu principal

e no menu principal esta assim o codigo

procedure Tfrmsispatriprincipal.FormShow(Sender: TObject);
begin
  FreeAndNil(frmlogin);
end;
//*****************************************************************************
procedure Tfrmsispatriprincipal.LogoffExecute(Sender: TObject);
begin
  if Application.MessageBox('Deseja realizar logoff?','Aviso',MB_YESNO + MB_ICONWARNING) = mrYes then
  begin
    AbreForm(Tfrmlogin,frmlogin);
  end;
end;


o codigo para abrir formularios que uso em minha biblioteca

//****************************************************************************//
procedure AbreForm(aClasseForm: TComponentClass; aForm: TForm);
begin
    Application.CreateForm(aClasseForm, aForm);
  try
    aForm.ShowModal;
  finally
    aForm.Release;
    aForm := nil;
  end;
end;


ai vem a duvida

como fazer corretamente que ele carregue as propriedades conforme mencionei la acima?

pois a cada login que acontecer o sistema deve saber as propriedades do usuario, mostrar o nome na status bar do menu principal

so n coloquei o trecho do status pois retirei, afinal estava testando outras formas...

valeu pessoal



Diego Macario

Diego Macario

Curtidas 0

Respostas

Pedro Saraiva.

Pedro Saraiva.

13/07/2010

Programa com códigos fontes Ola pessoal, você programador que quer um aplicativo exemplo para fins comerciais, tenho uma dica, compre o WinPhar que vem com todos os códigos fontes e faça um programa baseado nele, sim ele também vêm com todos os componentes para instalar, voce além de ganhar um programa complidao, ganha tb os seus códigos fontes e seus componentes. O programa foi desenvolvido em Delphi 7 com banco de dados paradox, e custa apenas 20,00 reais
deem uma olhadinha ai no produto
http://produto.mercadolivre.com.br/MLB-149256966-winphar-2008-sistema-para-farmacias-e-drogarias-_JM
e ente em contato pelo e-mail pedroluissaraiva@yahoo.com.br.!
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

13/07/2010

Declare uma variavel global do tipo string no formulário principal, pode ser chamana de Snm_usuario e modifique o seu código abaixo para que esta variavel receba o usuário logado:   procedure Tfrmlogin.btnloginClick(Sender: TObject);
begin
  if not valida then
    Exit
  else
  begin
    Application.CreateForm(Tfrmsispatriprincipal,frmsispatriprincipal);     Snm_usuario := SuaQuerydeLogin.FieldByName('NomeDOCampoQueGuardaOUsuario').AsString;     //Átribua aqui o conteudo da variavel Snm_usuario ao StatusBar ou no onShow do frmsispatriprincipal
    Close;
  end;
end;   Atenciosamente   Eriley
GOSTEI 0
POSTAR