[HILFE] Resourcen vor dem Starten des Programms

  • Hey MMORPG-Core Community,

    ich benötige dringende Hilfe. Ich bin derzeit am Programmieren und immer
    wenn ich das Programm ausführe, dauert das bisschen mit den Bildern laden
    und das mit den Labels ändern. Wollte das ganze jetzt über den Splashscreen laufen lassen, dass dieser dann die Resourcen vor dem Start lädt. Allerdings habe ich keine Ahnung wie.

    Bsp.: Die .exe wird ausgeführt, der Splashscreen öffnet sich und lädt dann die Resourcen. Im Splashscreen soll ein Label existieren der dann den Fortschritt anzeigt (Lade Resourcen (Bilder, Texte etc.)) und eine Progressbar soll den Fortschritt anzeigen. Wichtig vorallem das er das Hauptprogramm auch erst dann öffnet, wenn alle Resourcen geladen sind.

    Solltet Ihr Verständlichkeitsfehler oder Fragen haben, so postet es einfach bin euch über jede Antwort dankbar.

    [CENTER]

    [COLOR=Lime]
    50[/COLOR]|[COLOR=Lime]100[/COLOR]|[COLOR=lime]150[/COLOR]|[COLOR=lime]200[/COLOR]|[COLOR=Red]250[/COLOR]|[COLOR=Red]300[/COLOR]|[COLOR=Red]450[/COLOR]|[COLOR=Red]500[/COLOR][/CENTER]

  • Es gibt im .NET Framework eine Klasse, die nen Splashscreen anzeigt, nur weiß ich nicht, wie sie heißt.
    Ansonsten könnteste dir aber auch ne Art Splashscreen aus ner GUI basteln.
    FormBorderStyle None, dann TransparencyKey auf ne Farbe gesetzt und der GUI genau diese Farbe zugwiesen, dann wird die "unsichtbar"
    Danach einfach ein Bild als Backgroundimage nutzen, dieses darf nicht die eingestellte Farbe besitzen und auch möglichst nirgendo transparent sein, sonst gibts Flecken bzw Streifen.
    Dann platzierst du einfach ein Label drauf, dass du dann updaten kannst.
    Am Ende des ladevorgangs aktivierst du deine Hauptform oder so.

    Das sind soweit alle Schritte, die du für nen nachgestellten SplashScreen brauchst.
    Wie gesagt, es gibt auch ne Klasse oder so für, nur ich kenn den Namen nimmer, musste also mal schauen

  • Ja, klar. Den Splashscreen an sich, habe ich schon aber bevor er dann sich selbst schließt und dann das MainProgramm öffnet soll er die Bilder, Texte etc. laden damit die dann direkt angezeigt werden.

    Ohne Splashscreen lädt er die Bilder und Texte erst beim laden und wirklich Professionell wirkt das nicht.

    [CENTER]

    [COLOR=Lime]
    50[/COLOR]|[COLOR=Lime]100[/COLOR]|[COLOR=lime]150[/COLOR]|[COLOR=lime]200[/COLOR]|[COLOR=Red]250[/COLOR]|[COLOR=Red]300[/COLOR]|[COLOR=Red]450[/COLOR]|[COLOR=Red]500[/COLOR][/CENTER]

  • Den Splashscreen so musste halt lange genug offen halten und die Ressourcen musst du eigentlich selbst laden, das kann nich vom Splashscreen übernommen werden.
    Ich vermute mal, wenn deine MainForum geöffnet wird, lädt er alles?
    Dann zeig doch den Splashscreen an, lass deine MainForm öffnen, aber versteckt und zeig sie an, wenn alles da is

  • Naja die Noobigste Lösung wäre ja:

    Splashscreen Extra Form wie beschrieben ->
    Diese Ruft die MainForm Visible auf -> Dadurch wird der load Eingeleitet,
    Beim letzten Object / Bild w/e callst du die Splashscreen Form zurück,
    diese beendet sich und setzt die Main Form Visible.

  • Dann kann ich auch gleich den Splashscreen weglassen und dem Programm beim starten sagen, das er drei Sekunden warten soll bis er sich zeigt!

    [CENTER]

    [COLOR=Lime]
    50[/COLOR]|[COLOR=Lime]100[/COLOR]|[COLOR=lime]150[/COLOR]|[COLOR=lime]200[/COLOR]|[COLOR=Red]250[/COLOR]|[COLOR=Red]300[/COLOR]|[COLOR=Red]450[/COLOR]|[COLOR=Red]500[/COLOR][/CENTER]

  • Du lasst die bilder etc nicht durch den editor erstellen, sondern ladst diese runtime in der form1 load. Am ende noch ein application.doevents und es ist perfekt, mehr oder weniger

    Zitat von Steve Jobs

    Stay hungry - stay foolish.



  • @networkclobber
    Was hast du erwartet?
    Dass dein Splashscreen dir die Sachen lädt?
    Das musst du schon in Load-Ereignis der Form machen.
    Auf dem Splashscreen steht lediglich dein Text, laden tut der aber nichts.
    Und ne Progressbar bekommste afaik sowieso nur, indem du nen Pseudosplashscreen machst, da der offizielle Splashscreen glaube keine Progressbar anbietet.

    ichbinniemand
    Geladen werden müssen die Bilder sowieso, ob er das jetzt über den Formdesigner macht oder nicht.
    Außerdem wird das Application.DoEvents sowieo ja aufgerufen, sobald die Ladezeit vorbei ist, da die Form ja dann in den normalen Zustand übergeht und so.

  • Nein, sowas habe ich nicht erwartet. Ich wollte mir allerdings daraus einen loader basteln.

    [CENTER]

    [COLOR=Lime]
    50[/COLOR]|[COLOR=Lime]100[/COLOR]|[COLOR=lime]150[/COLOR]|[COLOR=lime]200[/COLOR]|[COLOR=Red]250[/COLOR]|[COLOR=Red]300[/COLOR]|[COLOR=Red]450[/COLOR]|[COLOR=Red]500[/COLOR][/CENTER]

  • Keine Ahnung ob´s funktioniert, aber könnte man nicht theoretisch folgende tun?
    -Splashscreen zB. Form1
    Und da dann folgendes schreiben:

    'Bild 1 laden

    Zitat

    Form2.PictureBox1.Show


    Oder so, hab grad nichts zum testen da^^

    [LEFT][COLOR=Yellow][SIZE=2][FONT=Verdana]mfG.[/FONT][/SIZE][/COLOR]
    [/LEFT]

  • Damit wird nur das Bild angezeigt, immoment mache ich das so:

    Aber das ist immoment auch nicht so ganz das, was ich will.

    [CENTER]

    [COLOR=Lime]
    50[/COLOR]|[COLOR=Lime]100[/COLOR]|[COLOR=lime]150[/COLOR]|[COLOR=lime]200[/COLOR]|[COLOR=Red]250[/COLOR]|[COLOR=Red]300[/COLOR]|[COLOR=Red]450[/COLOR]|[COLOR=Red]500[/COLOR][/CENTER]

  • Ich habs jetzt so gemacht, dass die Form erst Visible = False ist, dann warte ich 1 Sekunde und lass die dann Mithilfe einer Opacity Animation einblenden!

    Problem gelöst, Thema closen (:

    [CENTER]

    [COLOR=Lime]
    50[/COLOR]|[COLOR=Lime]100[/COLOR]|[COLOR=lime]150[/COLOR]|[COLOR=lime]200[/COLOR]|[COLOR=Red]250[/COLOR]|[COLOR=Red]300[/COLOR]|[COLOR=Red]450[/COLOR]|[COLOR=Red]500[/COLOR][/CENTER]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!