[Delphi] splash screen - zamknięcie

0

Mam dwie formy fmLogowanie i fmProgram. W formie fmProgram mam:

procedure TfmProgram.FormCreate(Sender: TObject);
begin
  fmLogowanie:=TfmLogowanie.Create(nil);
  fmLogowanie.ShowModal;
end;

Czyli tzw. splash screen. Chcę aby po błędnym wpisaniu danych w fmLogowanie lub naciśnięciu tam "x" program się wyłączył. No ale co bym nie pisał pojawia się i tak forma fmPorgramy.
Co wpisać aby program wyłączył się całkowicie bez pokazywania formy fmProgram?

Dzięki za uwagi [!!!]

A dlaczego tak mam zrobione - bo fmProgram to fsMDIForm a fmLogowanie to fsNormal.

Pozdr. ;)

0

Może

Application.Terminate

[???]

0

Może Application.Terminate

To działa, forma fmProgram mrugnie i zniknie. A może wiesz jak te mrugnięcie wyeleminować?

Pozdr. ;)

0

Może najpierw fmprogram.close; a potem application.terminate.

0

a moze po prostu ustawic w opcjach zeby forma z logowaniem byla pierwsza?

0

Tworz glowna forme jako visible=false
nastepnie wywoluj modalnie splashscreena
Jesli wystapi blad to application terminate i nie ma mrugniecia - sam tak pisze.

//w oncreate okna glownego...
1.fmglowne.visible:=false;
2.kod do okna modalnego;
-jesli jest ok to modalne.close;
-jesli jest zle to application.terminate;
3.fmglowne.visible:=true;

Musi dzialac

0

...po co się bawić przy uruchomieniu w FormaGlowna.Visible:= true lub false :|
Jest do tego właściwość TApplication, mianowicie Application.ShowMainForm. Wystarczy ustawić ją na false w kodzie projektu przed Application.Run... i na pewno nic nie mrugnie.
Aby wyświetlić formularz wystarczy później wywołać, jeśli Twoje logowanie się powiedzie, FormaGlowna.Show, chyab o to chodziło ;) </b>

0

aha, jeszcze jedno w kodzie projektu:

Application.Initialize;
Application.CreateForm(TMain, Main); 
Application.CreateForm(TLogForm, LogForm);
Application.ShowMainForm:=false;
LogForm.ShowModal;     // <-- zapomniałem o tym (wyswietlasz LogForm)
Application.Run;
0

Może Halt?

0

Dzięki wielkie za odpowiedzi [!!!]
Ale już sobie wcześniej poradziłem w taki sposób:

procedure TfmProgram.FormCreate(Sender: TObject);
begin
  fmLogowanie:=TfmLogowanie.Create(nil);
  fmLogowanie.ShowModal;
end;

W formie fmLogowanie mam zmienną Uzytkownik typu string. Po poprawnym zalogowaniu przyjmuje ona nazwę osoby zalogowanej (ta zmienna jest i tak później mi potrzebna). I w projekcie taki oto kodzik:

begin
  Application.Initialize;
  Application.CreateForm(TfmProgram, fmProgram);
  Application.CreateForm(TfmLogowanie, fmLogowanie);
  if (Length(Uzytkownik))<>0 then
    begin
      Application.CreateForm(TfmInformacjeOProgramie, fmInformacjeOProgramie);
      //itd.
      Application.Run;
    end
  else
    Application.Terminate;
end.

I śmiga [!!!]
Ale za cenne uwagi DZIĘKI ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1