Seite 1 von 2
Wie kann man einen Splash-Screen erstellen?
Verfasst: 02.11.2004 16:49
von bartoffel
Ich möchte zu meinem Programm einen Splash-Screen hinzufügen.
Er soll 5 Sekunden angezeigt werden. Wie mache ich sowas.
Danke für alle Beiträge!

Verfasst: 02.11.2004 16:59
von KeyKon
Was ist das?
Verfasst: 02.11.2004 17:01
von nco2k
http://www.purearea.net/pb/CodeArchiv/W ... hWindow.pb
das codearchiv ist dein freund und helfer.
c ya,
nco2k
Verfasst: 02.11.2004 17:01
von bartoffel
das ist ein Bild das bevor das eigentliche Programm startet angezeigt wird.
Verfasst: 02.11.2004 17:03
von KeyKon
Ach so...
Verfasst: 02.11.2004 17:05
von bartoffel
Danke für eure Hilfe!
Verfasst: 02.11.2004 17:31
von nco2k
oder wenns nix besonderes sein soll:
Code: Alles auswählen
Enumeration
#Window_Fake
#Window_Splash
#Window_Main
EndEnumeration
Enumeration
#Image_Splash
#Button_Quit
EndEnumeration
Procedure Open_Window_Splash()
OpenWindow(#Window_Fake, 0, 0, 0, 0, #PB_Window_Invisible, "")
If OpenWindow(#Window_Splash, 0, 0, 300, 150, #PB_Window_BorderLess | #PB_Window_ScreenCentered, "", WindowID(#Window_Fake))
If CreateGadgetList(WindowID(#Window_Splash))
;ImageGadget() ;<--- anpassen
EndIf
Else
MessageRequester("", "Error", #MB_ICONERROR)
End
EndIf
EndProcedure
Procedure Open_Window_Main()
If OpenWindow(#Window_Main, 0, 0, 400, 300, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Test")
If CreateGadgetList(WindowID(#Window_Main))
ButtonGadget(#Button_Quit, 20, 20, 100, 25, "Quit")
EndIf
Else
MessageRequester("", "Error", #MB_ICONERROR)
End
EndIf
EndProcedure
Open_Window_Splash()
;While irgendwas <--- anpassen und das untere Delay(3000) löschen
;Delay(1000) ;<--- 1 sekunde tut keinem weh, kannst aber auch niedriger machen, wenn du unbedingt willst
;Wend
Delay(3000) ;<--- hab ich jetzt nur so als beispiel reingemacht, kannst dann löschen
CloseWindow(#Window_Splash)
Open_Window_Main()
Repeat
Event.l = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
End
EndSelect
Until Event = #PB_Event_CloseWindow
End
c ya,
nco2k
Verfasst: 02.11.2004 18:51
von Ynnus
Ich würde dir allerdings empfehlen, einen Splashscreen auch zu nutzen indem du parallel dazu schonmal ein paar Variablen einrichtest oder Fenster öffnest und Gadgets erstellst. (alles unsichtbar, gibts ein Flag beim OpenWindow damit dieses nicht angezeigt wird

)
Dann machst du, nachdem die nötigen Gadgets und die restliche GUI erstellt ist (noch immer unsichtbar) eine Zeitabfrage, wie lange der Splash schon dargestellt wird. Ist es länger oder gleich 5 sekunden, dann kannst du ihn jetzt entfernen. Andernfalls kannst du dann noch hier jetzt eine Delay()-Zeit draufgeben. Aber vorher würde ich es sinnvoll nutzen und nicht gleich verzögern.

(im Übrigen sind 5 Sekunden verdammt viel, 2, maximal 3 sollten eigentlich reichen)
Verfasst: 02.11.2004 18:58
von nco2k
schon klar, es war aber jetzt eh nur ein grobes beispiel, was man nun vor, während oder nach dem splash screen macht, kann man ja alles noch anpassen. ich persönlich mache eigentlich fast immer ein fenster als invisible auf und lass es erst sichtbar werden, wenn alle gadgets initialisiert/geladen wurden. es sieht einfach schöner aus.
c ya,
nco2k
Verfasst: 02.11.2004 19:13
von GPI
Ich HASSE (das ist untertrieben) Splashscreens!
Die verhindern, das man mit den Rechner noch irgendwas machen kann, selbst wenn der Rechner durch das Starten des Programms nicht ausgelastet ist.
LASS ES!