[Delphi] splash screen - zamknięcie

Odpowiedz Nowy wątek
2005-05-16 22:39
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. ;)

Pozostało 580 znaków

2005-05-16 23:24
0

Może

Application.Terminate

[???]

Pozostało 580 znaków

2005-05-17 15:54
0

Może Application.Terminate

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

Pozdr. ;)

Pozostało 580 znaków

2005-05-20 22:27
0

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

Pozostało 580 znaków

2005-05-21 06:39
0

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


+1 post

Pozostało 580 znaków

2005-05-21 11:43
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


Novitius

"If You come with nothing, You leave with nothing..."

Pozostało 580 znaków

2005-05-21 13:57
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>


...i'm almost in :-)

Pozostało 580 znaków

2005-05-21 14:11
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;

...i'm almost in :-)

Pozostało 580 znaków

2005-05-21 16:26
Bla
0

Może Halt?

Pozostało 580 znaków

2005-05-21 18:07
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 ;)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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