Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Head
Člen
Avatar
Head:25.2.2015 22:29

potreboval by som poradiť prečo mi takýto timer nefunguje..res­pektive strašen rýchlo to prejde na jednu stranu a ptom sa vrati na späť.... malo by to zabezpečovať plynulý pohyb labelu z prava dolava

private void timer1_Tick(object sender, EventArgs e)
      {
          while (label1.Right < 600)
          {

              label1.Left += 10;
          }

          while (label1.Left > 0)
          {

              label1.Left -= 10;
          }

      }
 
Odpovědět
25.2.2015 22:29
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Head
Jan Vargovský:25.2.2015 22:33

Nastav interval timeru.

 
Nahoru Odpovědět
25.2.2015 22:33
Avatar
Odpovídá na Head
sadlomaslox25:25.2.2015 23:11

oddelej ty while cykly, nahrad je ifama a stavovou promenou a zvys rychlost timeru. pokud cely proces chces opakovat vicekrat tak si zaved dalsi stavovou promenou a dalsi if.

 
Nahoru Odpovědět
25.2.2015 23:11
Avatar
Jan Vargovský
Tvůrce
Avatar
Jan Vargovský:25.2.2015 23:23

Jo on tam ma whily, moc jsem to nestudoval :`

 
Nahoru Odpovědět
25.2.2015 23:23
Avatar
vodslon
Člen
Avatar
Odpovídá na Head
vodslon:26.2.2015 10:15

Ahoj pokud by to mělo být IF else, tak třeba takto?

bool pohybDoPrava = true;
        bool pohybDoLeva = false;

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (pohybDoPrava == true)
            {
                if (label1.Right < Form1.ActiveForm.Width)
                {
                    label1.Left += 10;
                    if(label1.Right >= Form1.ActiveForm.Width)
                    {
                        pohybDoPrava = false;
                        pohybDoLeva = true;
                    }
                }

            }

            else if (pohybDoLeva == true)
            {
                if (label1.Left > 0)
                {
                    label1.Left -= 10;
                    if (label1.Left <= 0)
                    {
                        pohybDoPrava = true;
                        pohybDoLeva = false;
                    }
                }
            }
        }
Editováno 26.2.2015 10:17
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
26.2.2015 10:15
Avatar
Odpovídá na vodslon
Michal Štěpánek:26.2.2015 10:38

Teoreticky bys tam to else if mohl nahradit prostým else, protože by se asi nikdy nemělo stát, že doprava i doleva budou současně true.

Nahoru Odpovědět
26.2.2015 10:38
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
vodslon
Člen
Avatar
Odpovídá na Michal Štěpánek
vodslon:26.2.2015 11:52

Souhlasím, šlo by to asi stáhnout více, ale chtěl jsem aby to bylo přehledné a dobře čitelné, protože já když něco hledám a je tam pak samá lambda,?,: atd ,tak je to peklo :)

 
Nahoru Odpovědět
26.2.2015 11:52
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.