Potrzebuje zrobic ekran powitalny, ktory wyswietla sie 5 sekund i zamyka przed zaladowaniem formularza glownego programu
Jakie jest pytanie i dlaczego nie wpisałeś go w Google, zanim założyłeś ten wątek?
@Keryk - normalnie się to robi;
Tworzysz sobie najzwyklejszy formularz i ozdabiasz go tak jak potrzebujesz - dodajesz grafikę, etykiety itd.; Następnie przechodzisz do głównego modułu projektu (*.dpr
) i przed stworzeniem głównego formularza aplikacji wyświetlasz splasha, następnie odliczasz tyle czasu ile chcesz, a po stworzeniu głównego formularza aplikacji (lub także innych, które tworzone są przy rozruchu aplikacji) ukrywasz i niszczysz splasha; Na koniec pokazujesz główny formularz - TADA;
Przykład znajdziesz np. w tym artykule - **http://4programmers.net/Delphi/Gotowce/Ekran_powitalny_-_Splash_Screen**; Natomiast po prawej stronie tego artykułu masz wątki pokrewne, z którymi także się zapoznaj.
Potrzebuje zrobic ekran powitalny, ktory wyswietla sie 5 sekund i zamyka przed zaladowaniem formularza glownego programu
Czyli jedyne co ma ten splash robić to opóźniać otwarcie programu o 5 sekund?
tak ma wyświetlić formularz przez 5 sekund i zamknąć się
ekran służy do zaprezentowania okładki programu, może być i 3 sekundy
komponent TTimer lub SetTimer()
Widziałem już kilka różnych sposobów na robienie ozdobnych ekranów powitalnych i odradzam robienia sztywnego Sleep na 5000ms
; Objawiać się to będzie zamrożeniem obsługi komunikatów, więc np. okno nie będzie się odświeżać; Najlepiej zrobić to albo na timerze, tak jak podał poprzednik lub podobnych mechanizmach, które nie blokują kolejki komunikatów;
Choć można to obejść pośrednio przez wywoływanie w pętli metody Application.ProcessMessages
:
const
TIMER_STEP = Integer(50);
TIMER_STOP = Integer(5000);
var
intTimer: Integer = 0;
begin
while intTimer < TIMER_STOP do
begin
Inc(intTimer, TIMER_STEP);
Sleep(TIMER_STEP);
Application.ProcessMessages();
end;
{...}
end.
ale to raczej słaby pomysł;
Tylko nie zapomnij zabezpieczyć okienka splasha przed jego zamknięciem za pomocą kombinacji Alt+F4
- reaguj odpowiednio w zdarzeniu OnCloseQuery
na takie próby i udaremniaj je (CanClose := False
).