MDI... como abrir form de login antes?
tenho meu projeto em MDI ... e no meu projeto um form q eh o form de login...
como faço pra ele abrir apenas o form de login... ae sim...
se o login tiver certo ele
ele abrir a splash do programa e começar a criar os forms do projeto?
alguem pode me ajudar? valeuz :lol:
como faço pra ele abrir apenas o form de login... ae sim...
se o login tiver certo ele
ele abrir a splash do programa e começar a criar os forms do projeto?
alguem pode me ajudar? valeuz :lol:
Salsa
Curtidas 0
Respostas
Lucas Silva
24/11/2004
Eu faço o seguinte...
eu abro o form pai, e depois eu abro o form de login (do tipo fsNormal), e dou um enabled := False no Pai...
T+,
Lucas!
eu abro o form pai, e depois eu abro o form de login (do tipo fsNormal), e dou um enabled := False no Pai...
T+,
Lucas!
GOSTEI 0
Salsa
24/11/2004
eu faço assim tb... mas nem keria desse jeito... keria como eu expliquei la :(
alguem ae sabe como fazer desse jeito q eu disse?
alguem ae sabe como fazer desse jeito q eu disse?
GOSTEI 0
Massuda
24/11/2004
Imagino que sua janela de splash é aberta no .DPR do seu programa...
Porque você não abre o form de login antes de abrir o splash? Daí você executa ele com ShowModal e, se tudo estiver OK, segue em frente.
Porque você não abre o form de login antes de abrir o splash? Daí você executa ele com ShowModal e, se tudo estiver OK, segue em frente.
var Logado: Boolean; begin Application.Initialize; // TPasswordDlg seria seu form de login with TPasswordDlg.Create(nil) do begin try if ShowModal = mrOK then // checa username/senha, etc Logado := True else Logado := False; finally Free; end; end; if not Logado then Exit; // abre o splash, etc Application.CreateForm(TForm1, Form1); Application.Run; end.
GOSTEI 0
Salsa
24/11/2004
eu to fazendo assim.. no dpr:
ae no form3 q eh o form do login fiz o seguinte:
criei 2 botoes pra teste, o de login e o logoff...
tipo qndo clicko no login blz... ele loga normal...
carrega o splash e em seguida abre as janelas...
porem nao fecha o form de login...
e se eu clicko em logoff.. ele da erro e trava a aplicaçao
:(
alguem sabe pq pode ser?
begin CreateMutex(nil, True, ´Programa´); if (GetLastError = ERROR_ALREADY_EXISTS) then begin Dc_MessageDlgCheck(´Você não pode executar outra cópia do aplicativo´,mtInformation,[mbOK],0,mrNo,True); exit; end; Application.Initialize; //form de login Form3 := TForm3.Create(Application); Form3.ShowModal; end.
ae no form3 q eh o form do login fiz o seguinte:
criei 2 botoes pra teste, o de login e o logoff...
tipo qndo clicko no login blz... ele loga normal...
carrega o splash e em seguida abre as janelas...
porem nao fecha o form de login...
e se eu clicko em logoff.. ele da erro e trava a aplicaçao
:(
alguem sabe pq pode ser?
{botao login ok}
procedure TForm3.loginOKClick(Sender: TObject);
begin
Form6 := TForm6.Create(self);
Form6.Show;
Form6.Update;
Application.Title := ´Sport Games´;
Application.CreateForm(TMainForm, MainForm);
form6.Label1.Caption := ´Carregando módulos básicos´;
form6.Label1.Update;
form6.ProgressBar1.Position := form6.ProgressBar1.Position + 1;
form6.Label1.Caption := ´Informações sobre about´;
form6.Label1.Update;
form6.ProgressBar1.Position := form6.ProgressBar1.Position + 1;
form6.Label1.Caption := ´Carregando informações de status´;
form6.Label1.Update;
Application.CreateForm(TForm1, Form1);
form6.ProgressBar1.Position := form6.ProgressBar1.Position + 1;
form6.Label1.Caption := ´Carregando opções de chat´;
form6.Label1.Update;
Application.CreateForm(TForm4, Form4);
form6.ProgressBar1.Position := form6.ProgressBar1.Position + 1;
form6.Label1.Update;
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm20, Form20);
Application.CreateForm(TForm18, Form18);
form6.Label1.Caption := ´Carregando opções de narração´;
form6.Label1.Update;
form6.ProgressBar1.Position := form6.ProgressBar1.Position + 1;
form6.Label1.Caption := ´MP3 player configs´;
form6.Label1.Update;
form6.Label1.Caption := ´Carregando módulo de janelas´;
form6.Label1.Update;
Application.CreateForm(TForm7, Form7);
form6.ProgressBar1.Position := form6.ProgressBar1.Position + 1;
form6.Label1.Caption := ´Carregando stats de user´;
form6.Label1.Update;
Application.CreateForm(TForm9, Form9);
form6.ProgressBar1.Position := form6.ProgressBar1.Position + 1;
form6.Label1.Caption := ´Informacões de nick´;
form6.Label1.Update;
form6.Label1.Caption := ´Carregando opções de nick´;
form6.Label1.Update;
Application.CreateForm(TForm15, Form15);
form6.ProgressBar1.Position := form6.ProgressBar1.Position + 1;
form6.Label1.Caption := ´Carregando config. de away´;
form6.Label1.Update;
Application.CreateForm(TForm16, Form16);
form6.ProgressBar1.Position := form6.ProgressBar1.Position + 1;
form6.Label1.Caption := ´Carregando web browser´;
form6.Label1.Update;
Application.CreateForm(TOKBottomDlg, OKBottomDlg);
Application.CreateForm(TForm22, Form22);
Form6.Hide;
Form6.Free;
Application.Run;
fecha := false;
form3.free;
end;
{botao logoff}
procedure TForm3.loginERROClick(Sender: TObject);
begin
fecha := true;
form3.free;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
fecha := true;
end;
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (fecha) then begin
form3.free;
Application.Terminate;
end;
end;
GOSTEI 0
Massuda
24/11/2004
Embora eu não concorde muito com a estruura do seu programa, eu só posso sugerir que você crie o Form3 assim:
Dessa maneira, o Delphi não vai tentar destruir o Form3 quando executar o Application.Terminate.
begin CreateMutex(nil, True, ´Programa´); if (GetLastError = ERROR_ALREADY_EXISTS) then begin Dc_MessageDlgCheck(´Você não pode executar outra cópia do aplicativo´,mtInformation,[mbOK],0,mrNo,True); exit; end; Application.Initialize; //form de login Form3 := TForm3.Create(nil); // <- nil ao inves de Application Form3.ShowModal; end.
GOSTEI 0
Salsa
24/11/2004
q nada massuda.... continua a mesma coisa...
qndo aperto login ele nao fecha o form3 apos entrar no programa...
e qndo aperto logoff...
ele da error...
:/
fiz as alteraçoes q vc falou e nada....
sera q ninguem sabe como resolver esse problema nao?
qndo aperto login ele nao fecha o form3 apos entrar no programa...
e qndo aperto logoff...
ele da error...
exception class : EAccessViolation exception message : Access violation at address E8382444. Read of address E8382444.
:/
fiz as alteraçoes q vc falou e nada....
sera q ninguem sabe como resolver esse problema nao?
GOSTEI 0
Salsa
24/11/2004
poxa, sera q ninguem sabe me ajudar nao?
GOSTEI 0
Massuda
24/11/2004
Não tinha percebido que você destrói o Form3 de dentro do próprio Form3 (isso não é uma boa idéia)... tentando manter o que você já fez, minha última sugestão seria:[list:b3592552bd][*:b3592552bd]Crie o Form3 como você estava fazendo antes[*:b3592552bd]No código de TForm3, não dê Free no Form3. Deixe o Application se encarregar de dar automaticamente Free no Form3.[*:b3592552bd]Ocultar o Form3 quando ele não for mais preciso.[*:b3592552bd]O código de TForm3.FormClose pode ser removido.[*:b3592552bd]Deixe o Application.Terminate para quando o programa for terminar[/list:u:b3592552bd]
Form3 := TForm3.Create(Application);
Form3.Hide; Application.Run
Form3.ShowModal; Application.Terminate;
GOSTEI 0
Salsa
24/11/2004
seguinte massuda .. fiz oq vc disse....
no dpr:
no form 3 eu dei um Form3.Hide;
ae ele some com o form 3, e abre a splash carrega tudo bunitinho, porem qndo abre o meu programa, ele abre o Form3 denovo....
cheguei a colocar outro .Hide depois do aplication run... como vc pode ver:
mas ele nao some com o form ... bom ...
outra coisa q notei foi o seguinte....
se eu abro o meu programa ele abre a tela de login certo?
se eu clickar no botao pra dar um
ele da erro...
porem se eu abroi o programa, clicko no botao de logar, e ao carregar o programa, como ainda aparece a tela de login eu clickar no logoff... ae ele nao da erro.
pq isso?
tipo fiz exatamente oq vc disse e ainda to tendo problemas :(
no dpr:
Application.Initialize; Form3 := TForm3.Create(Application); Form3.ShowModal;
no form 3 eu dei um Form3.Hide;
ae ele some com o form 3, e abre a splash carrega tudo bunitinho, porem qndo abre o meu programa, ele abre o Form3 denovo....
cheguei a colocar outro .Hide depois do aplication run... como vc pode ver:
Application.Run; Form3.Hide;
mas ele nao some com o form ... bom ...
outra coisa q notei foi o seguinte....
se eu abro o meu programa ele abre a tela de login certo?
se eu clickar no botao pra dar um
Application.Terminate;
ele da erro...
porem se eu abroi o programa, clicko no botao de logar, e ao carregar o programa, como ainda aparece a tela de login eu clickar no logoff... ae ele nao da erro.
pq isso?
tipo fiz exatamente oq vc disse e ainda to tendo problemas :(
GOSTEI 0
Salsa
24/11/2004
o problema de q aparecia o form de login qndo abria o programa eu jah arrumei.. soh falta o segundo q eu falei sobre o application.terminated ;)
GOSTEI 0
Massuda
24/11/2004
Devia ter apenas um Application.Terminate e ele devia ser a última coisa dentro do begin..end do seu DPR. Mas vocÊ falou em ´clicar no botão´... onde está o Application.Terminate?
GOSTEI 0
Salsa
24/11/2004
jah ajeitei isso cara... valeuz brigado pelo help :)
GOSTEI 0