Wie kann man einen Splash-Screen erstellen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
bartoffel
Beiträge: 15
Registriert: 02.11.2004 14:43
Kontaktdaten:

Wie kann man einen Splash-Screen erstellen?

Beitrag 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! :)
PS:
Es wäre nett, wenn ihr auch auf meiner Homepage www.realhomepage.de/members/bartoffel/index.html ins Gästebuch eintragt
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Was ist das?
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

http://www.purearea.net/pb/CodeArchiv/W ... hWindow.pb

das codearchiv ist dein freund und helfer. :wink:

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
bartoffel
Beiträge: 15
Registriert: 02.11.2004 14:43
Kontaktdaten:

Beitrag von bartoffel »

das ist ein Bild das bevor das eigentliche Programm startet angezeigt wird.
PS:
Es wäre nett, wenn ihr auch auf meiner Homepage www.realhomepage.de/members/bartoffel/index.html ins Gästebuch eintragt
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Ach so...
bartoffel
Beiträge: 15
Registriert: 02.11.2004 14:43
Kontaktdaten:

Beitrag von bartoffel »

Danke für eure Hilfe!
PS:
Es wäre nett, wenn ihr auch auf meiner Homepage www.realhomepage.de/members/bartoffel/index.html ins Gästebuch eintragt
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag 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
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag 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)
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag 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. :lol:

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag 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!
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Antworten