Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 4.905 pregleda

Najnovija ↓

Dodati "Fade" efekat StartUp formi? 13.05.2006. u 15:20 · pre 249 meseci #1
Pozdrav!
Imam problem pri pravljenju "fade" efekta startUp forme koja se pokreće. Napravio sam klasu:

Code:

class FadeEfekat
    {
        Form forma;
        Timer tajmer;
        public void main(Form frmForma)
        {
            tajmer = new Timer();
            tajmer = new Timer();
            forma = frmForma;
            forma.Opacity = 0;
            tajmer.Interval = 100;
            tajmer.Tick += new EventHandler(tajmer_Tick);
            tajmer.Enabled = true;
        }

        private void tajmer_Tick(object sender, EventArgs e)
        {
            if (forma.Opacity == 100)
                tajmer.Enabled = false;
            else
                forma.Opacity += 5;
        }
    }


A u FormLoad metodi sam postavio sledeće:

Code:

private void Form1_Load(object sender, EventArgs e)
{
            FadeEfekat f = new FadeEfekat();
            f.main(this);
}


I to jednostavno ne radi! Ne primećuje se nikakav fade efekat. Jednostavno malo sačeka i onda odjednom postavi celu formu.

Jel ima neko neki predlog kako bi ovo moglo da se odradi?
Potpis
Winners never quit, quitters never win.
Re: Dodati "Fade" efekat StartUp formi? 13.05.2006. u 16:58 · pre 249 meseci #2
Ne možeš ništa raditi sa UI-jem dok se FormLoad event handler ne završi, jer forma nije ni prikazana do tada. Stavi lepo u main proceduri Opacity na nula, zatim Form.Show i potom tu odradi fade in.
Potpis
Oliver 'FAQ' Klaćik
Re: Dodati "Fade" efekat StartUp formi? 13.05.2006. u 18:55 · pre 249 meseci #4
Neće da mi radi tako. Uradim kao što si rekao i neće da tera dalje posle forma.Show() metode.
Jel imaš neku alternativu?
Potpis
Winners never quit, quitters never win.
Re: Dodati "Fade" efekat StartUp formi? 13.05.2006. u 19:41 · pre 249 meseci #5
cudno
to bi trebalo da radi
da li si svestan da tvoja forma stigne do Opacity 100 za dve sekunde?
Potpis
code je haiku
Re: Dodati "Fade" efekat StartUp formi? 14.05.2006. u 03:12 · pre 249 meseci #6
Code:

        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form1 myForm = new Form1();
            myForm.Opacity = 0;
            myForm.Show();
            double i = 0;
            while (i < 1)
            {
                myForm.Opacity = i;
                i += 0.01;
                System.Threading.Thread.Sleep(10);
            }
            Application.Run();
        }
Potpis
Oliver 'FAQ' Klaćik
Re: Dodati "Fade" efekat StartUp formi? 17.05.2006. u 11:30 · pre 249 meseci #7
tebi se fade izvrsava samo ga ti ne primecujes :)

U biti, kod ti je ok, ali problem je u tome sto je procesor suvise okupiran podizanjem frejmvorka i aplikacije da ne stize da iscrta promene na tvojoj startup formi (koja bi u biti trebalo da predstavlja splash zar ne?)
resenje da forsitras iscrtacanje posle svake promene opacity svojstva, ili da startujes splash u odvojenoj niti sa visokim prioritetom, tako ce ona da odradi svoj fade bez obzira na ostale procese. ovo jeste direktnije resenje, al ti usporava podizanje aplikacije za taj fade efekat, a 2 sekunde nije malo kad startujes taj program non stop
Potpis
"Hmmm", rekao je, "...suprostavlja se nadrealizmu prikrivene metafore..." Razmišljao je tome na trenutak, a onda je zatvorio beležnicu s mrkim osmehom.
"I smrt je za njih suviše dobra"
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme