Form Login

Delphi

19/10/2006

Galera uma duvida!!!!

Qual seria a forma correta de criar um form de login e um form Principal
sendo q qria q o form Principal fike por tras o form de login...
No caso o form Principal no evento Show Carrega o form de login....

eu consegui fazer... mais naum consegui da o focu pro form de login,, qdo carrega o programa ele da o focu pro form principal ....
Alguem sabe como resolver issu???


Output

Output

Curtidas 0

Respostas

Rjun

Rjun

19/10/2006

Poste o trecho de código em que você esta chamando seu form de login.


GOSTEI 0
Output

Output

19/10/2006

Evento FormShow Do form Frincipal

if frmLogin = nil then
   begin
   frmLogin:= TfrmLogin.Create(Application);
   frmLogin.Show;
   end;


Evento FormClose do Form Login

frmLogin:= nil;
frmLogin.Free;



GOSTEI 0
Rjun

Rjun

19/10/2006

Utilize ShowModal em vez de Show.

if frmLogin = nil then 
begin 
  frmLogin:= TfrmLogin.Create(Application); 
  try
    frmLogin.ShowModal; 
  finally
    frmLogin.Release;
  end;  
end;



GOSTEI 0
Output

Output

19/10/2006

blz [b:2e20150444]Rjun[/b:2e20150444]

Eu ja estava fazendo dessa forma q vc mensionou,, o problema q dessa forma ele mostra apenas o form de login.... e qdo o form de login eh fexado ele abre o form principal...

eu qria q o form principal fikasse por tras do form de login... mais q os dois forms fikassem visiveis entende...

tipow o form principal carrega o form de login, e fika enable:= false;;
qdo o cara digita a senha e da ok ele fecha o form de login e deixa o form frincipal como enable:= true;

teria alguma dica?


GOSTEI 0
Rjun

Rjun

19/10/2006

Declare na área PRIVATE do seu form o seguinte:

procedure WmUser(var msg: TMessage); message WM_USER;


Coloque o seguinte código para o método:

procedure TfrmPrincipal.WmUser(var msg: TMessage);
begin
  case Msg.WParam of
    10 : Login;
  end;
end;

procedure Login
begin
  if frmLogin = nil then 
  begin 
    frmLogin:= TfrmLogin.Create(Application); 
    try 
      frmLogin.ShowModal; 
    finally 
      frmLogin.Release; 
    end;  
  end;
end; 


Não testei, mas deve funcionar.


GOSTEI 0
Output

Output

19/10/2006

Fiz desse geito ... mais naum deu certo... o form de login naum foi criado...

sera q to fazendo nhaca?

private
  procedure WmUser(var msg: TMessage); message WM_USER;
  procedure Login;

implementation

{$R *.dfm}

procedure TfrmPrincipal.WmUser(var msg: TMessage);
begin
    case Msg.WParam of
    10: Login;
    end;
end;

procedure tfrmPrincipal.Login;
begin
if frmLogin = nil then
    begin
    frmLogin:= TfrmLogin.Create(Application);
        try
        frmLogin.ShowModal;
        finally
        frmLogin.Release;
        end;
      end;
    end;



GOSTEI 0
Rjun

Rjun

19/10/2006

Opa. Esqueci de uma coisa. No evento Show do form principal, coloque a seguinte linha:

procedure TForm1.FormShow(Sender: TObject);
begin
  PostMessage(Handle, WM_USER, 10, 0);
end;



GOSTEI 0
Output

Output

19/10/2006

hehe [b:9a7a25e2e2]Rjun[/b:9a7a25e2e2] kra vc eh o maximo... hehe agora deu certinho,, era exatamente issu q eu qria fazer...
Agora 100 qrer abusar,, teria como vc me da uma explicadinha nesse codigo todo kra,,, fikei bm fora!!! heheh desde ja ... agradeço pela ajuda...


GOSTEI 0
POSTAR