Tela de login sobre formulario MDI
Montei um projeto com o formulario MDI, agora quero colocar um form de login. Esse form deve aparecer sobre o formulario MDI, sendo que não podera ser acessado nada desse form MDI, sem antes entrar com o login, caso contrario, encerrar o apliativo
Arc
Curtidas 0
Respostas
Roy
22/09/2004
Crie o seu form de Login como SDI, assim quando este form for chamado ele bloqueará todos os forms MDI´s enquando o form de login estiver ativo.
Boa Sorte.
Boa Sorte.
GOSTEI 0
Arc
22/09/2004
SDI ?????
GOSTEI 0
Arc
22/09/2004
Aí teria que ser um novo projeto ???? Tem como definir um form como SDI ?
GOSTEI 0
Mago M3rl1n
22/09/2004
Voce pode criar um form Normal e dar um showmodal nele. Ou entao criar o form como stayontop.
GOSTEI 0
Arc
22/09/2004
eu coloquei stayontop no form do login, ele até permanece na frente do form mdi, mas permite que eu acesse esse mdi
GOSTEI 0
Mago M3rl1n
22/09/2004
Entao faça o form de login como FormStyle = fsNormal e da um showmodal.
GOSTEI 0
Arc
22/09/2004
Mas eu quero que ele abra junto com o form MDI, não vou dar showmodal....
Tem algum evento onde eu possa colocar o showmodal para abrir automaticamente, junto com o mdi ?
Tem algum evento onde eu possa colocar o showmodal para abrir automaticamente, junto com o mdi ?
GOSTEI 0
Dopi
22/09/2004
Experimente dar um Showmodal no OnActive....
Talvez seja necessário criar algum ´flag´ para sinalizar se já houve login ou não.... pois acho que o Onactive é disparado quando você alternar de programa (ALT-TAB, ALT-ESC)
Ex.: if not LoginEfetuado then
if FormSenha.Showmodal = mrOk then
LoginEfetuado := true ;
Talvez seja necessário criar algum ´flag´ para sinalizar se já houve login ou não.... pois acho que o Onactive é disparado quando você alternar de programa (ALT-TAB, ALT-ESC)
Ex.: if not LoginEfetuado then
if FormSenha.Showmodal = mrOk then
LoginEfetuado := true ;
GOSTEI 0
Eduprp
22/09/2004
Ola
Você pode colocar um Timer ao invés da Flag.
A propriedade active sempre como True.
Quando inicia o programa o timer é ativado (coloque a propriedade interval como 1), no evento ontimer altere a propriedade enable do timer para false e showmodal no form de login.
Eduardo M. Pereira
Você pode colocar um Timer ao invés da Flag.
A propriedade active sempre como True.
Quando inicia o programa o timer é ativado (coloque a propriedade interval como 1), no evento ontimer altere a propriedade enable do timer para false e showmodal no form de login.
Eduardo M. Pereira
GOSTEI 0
Mago M3rl1n
22/09/2004
1) Crie um procedimento WmUser
procedure frmPrincipal.WmUser(var Msg: TMessage);
begin
case Msg.Wparam of
EV_JANELA_VISIVEL :
begin
{coloque seu codigo para chamar janela de login}
end;
end;
2) Defina na private
procedure WmUser(var Msg: TMessage); message WM_USER;
3) No OnShow, coloque
PostMessage(Handle, WM_USER, EV_JANELA_VISIVEL, 0);
procedure frmPrincipal.WmUser(var Msg: TMessage);
begin
case Msg.Wparam of
EV_JANELA_VISIVEL :
begin
{coloque seu codigo para chamar janela de login}
end;
end;
2) Defina na private
procedure WmUser(var Msg: TMessage); message WM_USER;
3) No OnShow, coloque
PostMessage(Handle, WM_USER, EV_JANELA_VISIVEL, 0);
GOSTEI 0
Arc
22/09/2004
Caro Mago M3rl1n
depois de muita insistencia eu consegui usar o form de login mudando a propriedade FormStyle como fsStayOnTop.
Então la no AutoCreate Form do Delphi eu deixei o DataModule, o Form do Menu e o Form do Login
o Menu esta assim
FormStyle = fsMDIForm
Defaultmonitor = dmActiveForm
Enabled = False
Login
FormStyle = fsStayonTop
Defaultmonitor = dmActiveForm
O main menu está o form do Menu
Esta funcionando beleza, só persiste um problema, o foco não esta vindo no form de login
Alguma dica ????
depois de muita insistencia eu consegui usar o form de login mudando a propriedade FormStyle como fsStayOnTop.
Então la no AutoCreate Form do Delphi eu deixei o DataModule, o Form do Menu e o Form do Login
o Menu esta assim
FormStyle = fsMDIForm
Defaultmonitor = dmActiveForm
Enabled = False
Login
FormStyle = fsStayonTop
Defaultmonitor = dmActiveForm
O main menu está o form do Menu
Esta funcionando beleza, só persiste um problema, o foco não esta vindo no form de login
Alguma dica ????
GOSTEI 0