Intro przed programem [c#]

0

Witam ! Mam mam male pytanko mianowicie jak zrobic intro przed glownym programem . Chcialbym przed glownym uruchomieniem programu zobaczyc intro moze to byc jpg (nie w formatce) tak zeby sie stawal bardziej wyrazny ( opacity od 0% do 100% ) a pozniej znowu znikal i wtedy wchodzi glowna formatka programu .

Za pomoc z gory dzieki i pozdrawiam:)

0

Chodzi ci o splasha? I czym ma on niby byc jak nie oknem?

Ja bym to robił tak:

  • w osobnym wątku
  • jako składowa statyczna (bo tylko jedna instancja jest potrzebna)
  • fad in/out na timerze
  • ewentualnie jakis progress bar do postępu ładowania

Raczej niezbyt skomplikowane zadanie

0

Odpowiedź znajdziesz w tyt wątku
</url>http://4programmers.net/Forum/459920?h=#id459920</url>

0

Hmm... mam jeszcze jeden problem ;p odnosnie kodu z tematu morethanchaosa robiac tak jak jest w kodzie wszystko dziala ze zwykla forma i jest oki , ale zrobilem inna foremke i program sie kompiluje ale przed uruchomieniem programu wyskakuje blad ;/ Nie wiem czy to przez timery w splashscreenie
obydwie formatki osobno dzialaja ok ale laczac je wedlog tego sposobu cos sie pierniczny; ( Jakby kto mogl rzucic okiem albo mial podobny problem i cos doradzi to bede bardzo wdzieczny .

Z gory dzieki i pozdrawiam

kod formy co ma sie uruchomic przed glownym programem

namespace Przychodnia
{
    public partial class SplashScreen : Form
    {
        public SplashScreen()
        {
            
            InitializeComponent();
            timer1.Tick += new EventHandler(timer1_Tick);
            timer2.Tick += new EventHandler(timer2_Tick);
            timer3.Tick += new EventHandler(timer3_Tick);
            timer4.Tick += new EventHandler(timer4_Tick);
                    
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
           
            Application.Exit();
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            
            this.axShockwaveFlash1.LoadMovie(0, @"C:\Documents and Settings\chudy123\Pulpit\flash\cybertrick.swf");
        }

        private void timer3_Tick(object sender, EventArgs e)
        {
            
                timer2.Stop();
                this.axShockwaveFlash1.LoadMovie(0, @"C:\Documents and Settings\chudy123\Pulpit\flash\blur.swf");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
            
        }

        private void timer4_Tick(object sender, EventArgs e)
        {
            SoundPlayer sp = new SoundPlayer(
                    @"C:\Documents and Settings\chudy123\Pulpit\flash\start3.wav");
            sp.Play();
        } 



    }
}

interval dla
timer1 - 16500
timer2 - 300
timer3 - 7000
timer4 - 8150

kod glownej formatki

namespace Przychodnia
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            
            InitializeComponent();

            //   splashscreen
            Thread thr = new Thread(new ThreadStart(Powitanie));
            thr.Start();
            Thread.Sleep(4000);
            thr.Abort();
            Thread.Sleep(1000);
        }

        private void zakończToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
         
        void Powitanie()
        {
            SplashScreen spsc = new SplashScreen();
            spsc.ShowDialog();
        }
    }
}
<\code>
0

No ale chłopie powiedz mi jak to ma działać jak wątek z splashscreenem który ma ustawionych timerów co najmniej na 16 sekund odpalony jest w głównej formatce na 4 sekundy

        thr.Start();
        Thread.Sleep(4000);  <- 4 sekundy 
        thr.Abort();

Poza tym ty tam jakieś nieziemskie kombinacje alpejskie w tym splashscreenie wyprawiasz, ładujesz Flashe, dźwięki itp, niekoniecznie ich wywoływanie jest dobrze przemyślane zauważ ze jak ruszysz timer to on tyka co ustalony czas, anie jest wyzwalany jednokrotnie

wywal
Application.Exit();

zamknięcie watku
th.abort powinno załatwić sprawę

0

Zamienilem tak i tez nie dziala;/
Wywalilem Application.Exit() i zmienilem w konstruktorze w glownej formie na :

Thread thr = new Thread(new ThreadStart(Powitanie));
            thr.Start();
            Thread.Sleep(16500);
            thr.Abort();
            Thread.Sleep(200);

0

Zamienilem tak i tez nie dziala;/
Wywalilem Application.Exit() i zmienilem w konstruktorze w glownej formie na :
ale obojetnie jaka wartosc dam do sleep czy 20000 , 200000 to i tak blad ;/

            Thread thr = new Thread(new ThreadStart(Powitanie));
            thr.Start();
            Thread.Sleep(16500);
            thr.Abort();
            Thread.Sleep(200);
0

sory za dwie odpowiedzi pod rzad cos sie pochrzanilo juz zrobilem w inny sposob
temat to zamkniecia; p

0

Jak udalo ci sie zrobic, ze wszystko dziala moze moglbys umiescic rozwiazanie? Tak dla potomnosci jakby ktos mial kiedys podobny problem.

0

w glownej formatce :

public Form1()
        {
            
            InitializeComponent();

            SplashScreen ss = new SplashScreen();
            ss.ShowDialog();
        }

i w splashscrenie pozamienialem application.exit() na this.Close()

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