Zamykanie i otwieranie formy

0

Witam wszystkich :) Z gory mowie, ze korzystalem z opcji szukaj, ale nic na ten temat niestety nie znalazlem(byc moze jest to bardzo proste i nikt o to nie pyta).
Otoz mam problem- chciałbym, aby po wlaczeniu programu 1 forma byla widoczna powiedzmy przez 5 sek i po uplynieciu tego czasu wlaczala sie 2 forma...

0

onCreate formy1

sleep(5000);
Form1.Hide;
Form2.Show;

Niestety forma1 się 'zamrozi?, aby tego uniknąć zrób to samo tyle ze w nowym wątku.

0

Na Form1 daj Timer1 z odliczaniem do 5 sekund. W jego akcji daj Form2.Show; oraz Timer1.Enabled:=FALSE; . Jeśli chcesz, by Form1 nie była wtedy widoczna, daj Form1.Hide; (Form1.Close; zamknie całą aplikację, o ile nie ustawisz Application.ShowMainForm:=FALSE; więc lepiej dać Form1.Hide;)

0

Bardzo dziekuje za odpowiedzi i pozdrawiam :)

0

a może prościej poczytać o SplashScreen :> niż takie wynalazki stosować :P

0
Help Delphi - Displaying splash screen napisał(a)

The following two event handlers display and close a form called SplashScreen before the application's main form opens. The constant Startup is declared in Form1's interface part. The first event handler calls the Show method of SplashScreen from Form1's OnActivate event.

Delphi example

procedure TForm1.FormActivate(Sender: TObject);
begin
if Startup then
begin
Startup := False;
SplashScreen.Show;
end;
end;

SplashScreen contains a Timer component whose Interval property is set to 3000, so the form is displayed for three seconds and then closes. The form's Close method is attached to the timer component's OnTimer event.

Delphi example

procedure TForm2.Timer1Timer(Sender: TObject);

begin
Close;
end;

Oto twój "wynalazek".

0
Szczawik napisał(a)

Jeśli chcesz, by Form1 nie była wtedy widoczna, daj Form1.Hide; (Form1.Close; zamknie całą aplikację, o ile nie ustawisz Application.ShowMainForm:=FALSE; więc lepiej dać Form1.Hide;)

widzisz różnicę??? Odkąd to główną formę peogramu traktuje się jak SS???

0

Skąd pewność, że to SplashScreen? OK, może się czepiam, ale przecież tak też się da, bo to, że zamknięcie głównej formy programu zamyka go całkiem jest wymysłem Delphi, a nie systemu.

0
Szczawik napisał(a)

Skąd pewność, że to SplashScreen?

Nie bardzo wiem czego dotyczy to pytanie

OK, może się czepiam, ale przecież tak też się da, bo to, że zamknięcie głównej formy programu zamyka go całkiem jest wymysłem Delphi, a nie systemu.

Tak??? to zrób coś takiego w VC++ zobaczysz jak działa, albo weź jakiś program, który wyświetla kilka okienek na raz (np. Opera) i zamknij główne okno to zobaczysz co się stanie. A tak swoją drogą to poczytaj może o organizacji windowsa i o systemie komunikatów to będziesz wiedział czemu główne okno jest inne niż wszystkie :)

SS to SS a nie jakieś wymysły. Jego zadanie to pojawić się przy starcie programu, pokazać coś userowi (postę prac przy ładowaniu danych, logo, info, że nie zapłacił za program, itp) a następnie ma zostać zamknięty i wyładowany z pamięci bo nikomu nie jest już do niczego potrzebny. Pomysł z Form1.Hide jest w tym momencie bardzo chybiony i nie masz się co spierać bo choćbyś nie wiem jak argumentował to nie będziesz miał racji.

0

Organizację Windows znam bardzo dobrze i bez problemu można zrobić aplikację w której zamknięcie okna głównego nie zamyka programu. To, że w środowiskach RAD tak zrobiono wynika z ułatwienia, jakie to wnosi dla użytkowników.

Proponuję EOT.

//Choć jasne, że przyznam Ci rację, że po pokazaniu Splasha nie powinno zostać po nim żadnego śladu, bo po co.. Sądzę, że myślimy o tym samym, tylko, że ja chciałem pokazać to osobie, która jest początkująca (bo inaczej by nie pytała), a ty piszesz, jak się to normalnie powinno robić - a to nie zawsze to samo.

Over and Out.

0
Szczawik napisał(a)

Proponuję EOT.

OK w sumie NIE MA sensu spierać się o to :)

Choć jasne, że przyznam Ci rację, że po pokazaniu Splasha nie powinno zostać po nim żadnego śladu, bo po co.. Sądzę, że myślimy o tym samym, tylko, że ja chciałem pokazać to osobie, która jest początkująca (bo inaczej by nie pytała), a ty piszesz, jak się to normalnie powinno robić - a to nie zawsze to samo.

to też racja, chociaż ja jestem zdania, że od początku należy pokazywać jak to ma wyglądać poprawnie, bo potem jak ktoś się nauczy robić coś prościej a nie powiedzmy "fachowo" to może mu być ciężko się przestawić

0

Bardzo dziekuje za pomoc, zrobilem to za pomoca splasch screena ;)

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