Pohyb objektov KeyUp - KeyDown – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pohyb objektov KeyUp - KeyDown – .NET – Fórum – Programujte.comPohyb objektov KeyUp - KeyDown – .NET – Fórum – Programujte.com

 

Plui
~ Anonymní uživatel
46 příspěvků
18. 6. 2015   #1
-
0
-

Zdravim momentalne sa hram s GUI v C sharp a robil som pohyb objektov konkretne 2,jeden stvorec a druhy je button ,avsak rozdiel je ze pri stvorci sa mi to hybalo s KeyDown funkciou ale s buttonom s KeyUp funkcou  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace OBject_Moving
{
    public partial class FormView : Form
    {
       
      public FormView()
        {
           
            InitializeComponent();
          
        }

      private void button1_KeyDown(object sender, KeyEventArgs e)
      {
         
      }

      private void button1_KeyUp(object sender, KeyEventArgs e)
      {
          if (e.KeyCode == Keys.Left)
          {
              this.button1.Left -= 10;
          }
          else if (e.KeyCode == Keys.Right)
          {
              this.button1.Left += 10;
          }
          else if (e.KeyCode == Keys.Up) {
              this.button1.Top -= 10;
            }
       
          else if (e.KeyCode == Keys.Down)
          {
              this.button1.Top += 10;
          }
      }

      

A taky detail (pre istotu) to "e.KeyCode" v podstate nacita "to co si stlacil" ,laicky povedane? :-)  Ďakujem pekne :)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
20. 6. 2015   #2
-
0
-

#1 Plui
Nechápu otázku. Každopádně osvětlím základní funkčnost vstupu a výstupu kláves. KeyPress je konečná fáze - tlačítko stisknuto. KeyDown se volá opakovaně - dokud je KeyDown - klávesa dole - stisknuta... A KeyUp se volá jednou jedinkrát - při puštění stisklé klávesy. KeyCode = KeyData + modifier (Control, Alt, Shift, ...)... Key je pak převedený kód klávesy. Avšak čistý kód klávesy závislý na HW nejdeš jen v nižších vrstvách - C/C++, Assembler, strojový kód. KeyValue je tedy výsledný znak. A především když máš vstupní parametr číslo a výstupní taktéž, pak proč proboha větvit?

Point[] map = new[]
{
	new Point(0, 10),
	new Point(-10, 0),
	new Point(0, -10),
	new Point(10, 0)
};

private void button1_KeyUp(object sender, KeyEventArgs e)
{
	Int32 key = (Int32)e.KeyData;

	if (key > 36 && key < 41)
	{
		Point direction = map[key & 3]; // 0 = Down, 1 = Left, 2 = Up, 3 = Right

		this.button1.Location = new Point
		(
			this.button1.Left + direction.X,
			this.button1.Top + direction.Y
		);
	}
}

Aneb trocha matematiky ihned zlepší přehlednost, funkčnost, ...

Nahlásit jako SPAM
IP: 78.136.163.–
Plui
~ Anonymní uživatel
46 příspěvků
20. 6. 2015   #3
-
0
-

Pekný kód,ale hento by ma nenapadlo(zatiaľ) :) Ale ďakujem za vysvetlenie ale mam ešte jednu otázku ak mi môžeš poradIť s nasledujúcim kódom :  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace Object
{
    public partial class Form1 : Form
    {
        enum Directions { Left, Right, Up, Down }
        Directions _direct;
        private int _x;
        private int _y;

        public Form1()
        {
            InitializeComponent();
            _x = 50;
            _y = 50;
            _direct = Directions.Down;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Invalidate();
        }

        private void form_paint(object sender, PaintEventArgs e)
        {
            e.Graphics.FillRectangle(Brushes.Black, _x, _y, 70, 70);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (_direct == Directions.Left)
            {
                
                checkPosition(_x, _y);
                _x -= 10;
                
            }
            else if (_direct == Directions.Right)
            {
              
                checkPosition(_x, _y);
                _x += 10;
                
            }
            else if (_direct == Directions.Down)
            {
               
                checkPosition(_x, _y);
                _y += 10;
            }
            else if (_direct == Directions.Up)
            {
                
                checkPosition(_x, _y);
                _y -= 10;
                
            }

            Invalidate();
           
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Left)
            {
                _direct = Directions.Left;
            }
            else if (e.KeyCode == Keys.Right)
            {
                _direct = Directions.Right;
            }
            else if (e.KeyCode == Keys.Up)
            {
                _direct = Directions.Up;
            }
            else if (e.KeyCode == Keys.Down)
            {
                _direct = Directions.Down;
            }
        }

        private void checkPosition(int x, int y)
        {
            if (x < 0)
            {
                _x = 0;
            }
            if (y < 0)
            {
                _y = 0;
            }
            if ((x + 70) > 400) { _x = 330; }
            if ((y + 70) > 400) { _y = 330; }
        }

       
    }
}

ako zistím cez Debugger že aké sú tie hodnoty _x a _y priebežne s tým ako to ide?lebo nejak mi to vychádza mimo :-) vďaka

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
20. 6. 2015   #4
-
0
-

#3 Plui
Ale fuj. Když už:

using System.Windows.Forms;
using System.Drawing;
using System;

namespace Gifoh
{
	static class Program
	{
		static Point[] map = new[]
		{
			new Point(0, 10),
			new Point(-10, 0),
			new Point(0, -10),
			new Point(10, 0)
		};

		public static void Main()
		{
			Int32 x = 50, y = 50;
			Point direction = Point.Empty;
			Form mainForm = new Form
			{
				StartPosition = FormStartPosition.CenterScreen,
				ClientSize = new Size(800, 600),
				KeyPreview = true
			};

			mainForm.KeyDown += (sender, args) =>
			{
				Int32 key = (Int32)args.KeyData;

				direction = key > 36 && key < 41 ?
					map[key & 3] : // 0 = Down, 1 = Left, 2 = Up, 3 = Right
					Point.Empty;
			};

			mainForm.Paint += (sender, args) =>
				args.Graphics.FillRectangle(Brushes.Black, x, y, 70, 70);

			new Timer
			{
				Interval = 200,
				Enabled = true
			}.Tick += (sender, args) =>
			{
				x = x + direction.X;
				y = y + direction.Y;

				if (x < 0)
					x = 0;

				if (y < 0)
					y = 0;

				if (x > 330)
					x = 330;
				if (y > 330)
					y = 330;
				
				mainForm.Invalidate();
			};

			Application.Run(mainForm);
		}
	}
}

Leč stejně bych to udělal dočista jinak... Každopádně nechápu dotaz. Hodíš někam breakpoint a přečteš si hodnoty proměnných... (Případně hodíš na Watch.)

Nahlásit jako SPAM
IP: 78.136.149.–
Plui
~ Anonymní uživatel
46 příspěvků
20. 6. 2015   #5
-
0
-

Čo je na tom fuj? :)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
20. 6. 2015   #6
-
0
-

#5 Plui
Minimálně šňůra if else. Především pak naprostá laická přístupnost. (Tzv. selský rozum.) Však se podívej na můj kód - poněkud rozdíl... (Namísto větvení pole atd.)

Nahlásit jako SPAM
IP: 78.136.145.–
Plui
~ Anonymní uživatel
46 příspěvků
20. 6. 2015   #7
-
0
-

A načo si to komplikovať :-)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
20. 6. 2015   #8
-
0
-

#7 Plui
Přehlednost, programová správnost, efektivita programu, možnost říkat si programátor, výkon aplikace, ...

Nahlásit jako SPAM
IP: 78.136.145.–
Plui
~ Anonymní uživatel
46 příspěvků
20. 6. 2015   #9
-
0
-

To príde časom :))

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
20. 6. 2015   #10
-
0
-

#9 Plui
Přijde, avšak pouze se snahou a pílí... Nic naplat. Uzavřeno? (Označ odpověď s řešením případně.) Pokud ještě není, pak polož jasné otázky. I věz, že za šňůru if else tě absolutně nikdo nepochválí. Rovněž za blbá pojmenování, neobjektový přístup, neoddělování logiky (negrafický kód, co něco dělá - počítá, ...) od grafiky, ...

Nahlásit jako SPAM
IP: 78.136.174.–
Plui
~ Anonymní uživatel
46 příspěvků
20. 6. 2015   #11
-
0
-

Mám 17 rokov takže žiadne veľké skúsenosti nemám a tento bol môj prvý pokus o pohnutie objektu takže tak :-)

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
20. 6. 2015   #12
-
0
-

#11 Plui
Já začal programovat ve 12 a nyní (po 8 letech) se tím živím. Pročež tvá dedukce postrádá logiku. Vše jsem se naučil zcela sám - bez školy, knížek, ... (A očividně to absolutně netřeba.) Druzí pak si neustále stěžují, jak jim nikdo neporadil atp. Pročež dle mého záleží čistě na tom, co kdo vskutku chce, nikoliv co si namlouvá/myslí ...

Nahlásit jako SPAM
IP: 78.136.138.–
Plui
~ Anonymní uživatel
46 příspěvků
20. 6. 2015   #13
-
0
-

A ak môžem tak čo konkrétne programuješ? :) A v ktorých jazykoch :)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
20. 6. 2015   #14
-
0
-

#13 Plui
Jmenuj a přitakám... (Prošel jsem si všemi vrstvami, paradigmaty, ...) Strojový kód, Assembler, C/C++/C#, J#, K/K2, Ruby, web (Ruby on Rails, PHP, HTML, JS, CSS (SASS, LESS, ...), Python, ASP.NET (C#), ...), F/F2/F#, ... Aktivně pracuji se 7 jazyky. 3 z nich jsou čistě UNIXové nástroje - shelly atp. C# (Desktop - databázový systém s širokým GUI) mne nyní živí a web sem tam uzmu jakožto zakázku. Již pár let vyvíjím ve strojovém kódu, Assembleru, C/C++, D/D2, Lue, LISPu atd. svůj vlastní operační systém. Nakonec jsem jej spojil s UNIXem, neb abych měl alespoň z části vlastní vyšší operační systém s hotovými funkcemi k denním potřebám. Jeho jádro však stále aktivně vyvíjím a dodělávám mu features. (Momentálně přístup vše je soubor - z UNIXu.) Například F# mne uchvátil pro svou efektivitu, avšak nemám jak jej momentálně využít. V Lue vytvářím takový malý dungeon a v LISPu zkoumám Argument čínského pokoje. Živit se programováním je pro mne jako čistit si zuby. (Vystudoval jsem zubního technika.)

Nahlásit jako SPAM
IP: 78.136.135.–
Plui
~ Anonymní uživatel
46 příspěvků
20. 6. 2015   #15
-
0
-

Mňa to vždy nejak priťahovalo a hlavne také tie kódy ako si napísal naprikald ty,proste je tam vidieť že ten človek už to ovláda aj tú logiku ,mne sa také kódy strašne páčia ..ale ako palec hore :) ja som web skúšal ale podľa mna je tam toho strašne vela :)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
20. 6. 2015   #16
-
0
-

#15 Plui
Všude je toho hodně. Obecně lze říci, že web je pro grafiku (design, schéma, umění - móda, ...) a Desktop pro logiku - výpočetní operace, algoritmy, ... S postupem času se rozdíly mezi všemi elementy zmenšují - svět se zmenšuje. Já tíhnu ke strojovému kódu, algoritmům, OOP atd. Já měl vždy jasno - Desktop a to přesně v místech, kde nyní pracuji. (Státní sektor (státní zakázka pro soukromou firmu) - velký projekt, ve kterémžto mohu v poklidu vyvíjet to své.) Bez školy v oboru, bez praxe, bez referencí, ... Sám o sobě jsem si našel práci, sám jsem se vše naučil, sám jsem se o sebe postaral. A třebaže to není zcela správné, nechápu, že to kdosi jiný nedokáže. Avšak rovněž se těm méně šťastným snažím pomoci. Jenže většina na to vpravdě nemá - vzdávají to, kašlou na to atp. Já se naučil, vykonal a mám vše po čem jsem kdy jen zatoužil. (A nikdo mi nic nedal zadarmo.)

Nahlásit jako SPAM
IP: 78.136.135.–
Plui
~ Anonymní uživatel
46 příspěvků
20. 6. 2015   #17
-
0
-

Ale dnes uz tazko vezmu ludi bez praxe :-) a ako dalsi palec hore za to ze si sa to ucil sam,aj ked mi to nejde do hlavy ako si sa to vsetko bez VS dokazal naucit :)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
20. 6. 2015   #18
-
0
-

#17 Plui
Očividně lze sehnat práci i bez praxe... (Dokonce mne vzali na životopis, ve kterémžto jsem programování moc nerozváděl. I kde jsem jej rozvedl do detailu, tam mne naopak nevzali...) Jinak nechápu k čemu by mi byla škola, či cokoliv podobného. Stejně by to bylo na mně - abych se učil... Naopak bez školy bylo alespoň jasné, jak moc po tom prahnu. Chtěl jsem to umět, proto jsem se to naučil. Chtěl jsem vědět, jak funguje PC atd. Proto jsem studoval strojový kód, firmware, chipset, CHS/LBA, ... Uhrál jsem to pak především na pohovoru. Tam na mne koukali jako na mimozemšťana - ani nedali dost času na to vylíčit vše. (Však stačilo.) Ustavičně pracuji, vzdělávám se, beru zakázky, ... Stačí chtít a hotovo.

Nahlásit jako SPAM
IP: 78.136.169.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #19
-
0
-

A taká základná otázka ako si sa to všetko dokázal naučiť sám :-)

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #20
-
0
-

#19 Plui
Manuál, Google, tutoriály, IDE (prohlížeč ASM, prohlížeč objektů, ...), rady od lidí, ...

Nahlásit jako SPAM
IP: 78.136.148.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #21
-
0
-

Btw mohol by si mi sem hodiť ak máš čas ako by si teda urobil ten pohyb? :-))

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #22
-
0
-

#21 Plui
Jaký tento? Popiš přesně cíl a pak mohu sloužit... (Timer - ano/ne -> střádání kláves (zásobník/fronta), nižší přístup - C++ knihovny, ...) Obecně pokud se jedná o vymezené herní pole v předem známém prostředí, pak bych volil políčkovou grafiku. (list, slovník, Hashtable, ...) V případě 2D grafiky pak pomocnou mapu, či lokační detektor, anebo výškovou mapu, ...

Nahlásit jako SPAM
IP: 78.136.184.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #23
-
0
-

Presne ciel? :-) To co som robila ja,t.j. jednoduchy stvorec ktory sa pomocou šipiek hýbe a nemôže vychádzať z okna :-)

Nahlásit jako SPAM
IP: 78.98.8.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #24
-
0
-

robil* :-)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #25
-
0
-

#23 Plui
A smí se tedy pohybovat jen o 10? A je velikost okna dělitelná 10? (Mohu zvolit políčkovou grafiku?)

Nahlásit jako SPAM
IP: 78.136.184.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #26
-
0
-

a aky je rozdiel medzi polickovou a touto co som robil ja? :-))

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #27
-
0
-

#26 Plui
V políčkové grafice je herní plocha vlastně mřížka o stejných rozestupech všemi směry. Věci se tak snadno indexují - neuvádí se jejich přesná poloha na herní ploše, avšak indexy v herní mapě. Ostatně od toho se odvíjí další dotaz - velikost vykreslovaného objektu... Políčkovou grafiku a 2D lze částečně propojit. Každopádně právě proto potřebuji přesné zadání úkolu. Na základě něj pak zvolím nejvhodnější postup a vymodeluji herní mapu, či tak.

Nahlásit jako SPAM
IP: 78.136.154.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #28
-
0
-

Tak sprav tak,že velkosť okna nebude delitelna 10 ale bude sa pohybovat o 10 :) btw mohol by si mi k tomu kódu prosím ťa aj nejaké komentáre hodiť,veľmi by mi to pomohlo :)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #29
-
0
-

#28 Plui
Jak se má pohybovat velikost okna o 10? A jaká tedy má vůbec být?

Nahlásit jako SPAM
IP: 78.136.154.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #30
-
0
-

Nerozumiem teraz :-) veď okno sa nehýbe nie :)

Nahlásit jako SPAM
IP: 78.98.8.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #31
-
0
-

Jaj ja som myslel ze sa ma pohybovat ten stvorec po 10 :-) zvol si aku chces (napr 400x400 aj moze byt:)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #32
-
0
-

#31 Plui
"Tak sprav tak,že velkosť okna nebude delitelna 10 ale bude sa pohybovat o 10"

Nahlásit jako SPAM
IP: 78.136.154.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #33
-
0
-

Jojo ja viem sorry za preklep :-))

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #34
-
0
-

#33 Plui
http://leteckaposta.cz/459778502

Nevím co na tom komentovat. Nepoužil jsem vůbec větvení, oddělil jsem grafiku od logiky, ... (GUI projekt obsahuje pouze grafiku a Core knihovna pouze logiku.) Core (logiku) můžeš tak snadno importovat do jakéhokoliv projektu - měnit GUI dle libosti atd. Myslím, že program je mnohem čitelnější - přehlednější, programátorsky správně navržen atp. Rád cokoliv osvětlím.

Nahlásit jako SPAM
IP: 78.136.184.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #35
-
0
-

Nechápem napríklad tomuto : mainForm.KeyDown += (sender, args) =>   ...ako je tam viac toho ale ja tie funkcie všetky nepoznám :-)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #36
-
0
-

#35 Plui
Myslíš lambda výrazy? No tak si vyhledej tento termín a také anonymní metody, delegáty, ... Jmenuj čemu nerozumíš - jinak neporadím... Max a Min vrací větší a menší číslo - tak jsem se vyhnul tvému slepenci větvení... Tuple je generický - opět si tento termín vyhledej... (kolekce, generika, ...)

Nahlásit jako SPAM
IP: 78.136.154.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #37
-
0
-

Tak ako hovorím bolo by tam toho veľa zrejme....a aj ako hovoríš je tam kód ktorý neviem čo robí ,napríklad lambda,tuple a podobne :)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #38
-
0
-

#37 Plui
Však Google... Tuple jen ukládá ntice...

Nahlásit jako SPAM
IP: 78.136.154.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #39
-
0
-

Ako si sa naučil rozmýšľať "programátorsky"? :)

Nahlásit jako SPAM
IP: 78.98.8.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #40
-
0
-

#39 Plui
Tak především studiem existujícího kódu .NET  - co se týče C#.  (Procházení názvosloví - ToString se jmenuje všude stejně, Text se všude používá stejně atd. Procházení assembly - .NET objektů. Procházením dobře obhájených kódů (časem se naučíš rozlišovat vhodný a nevhodný kód - takto musíš spoléhat na to, co kdo píše a jak kdo kritizuje).) Základem jest správný návrh. To se můžeš naučit z té mé aplikace. GUI oddělené od logiky - vrstvení aplikace. (GUI případně naplňuje event/Action/Func logické části. Například z logiky zavoláš obecné Draw a v GUI to pak naplníš dle daného rozhraní.) Taktéž musíš naplnit maximální obecnost - jediné místo s konkrétními hodnotami má být objekt samotné aplikace. Dodržovat OOP - zapouzdření (ven čumí jen pár metod - co nejvíce kódu schováš private, protected atp.) , myslet na všechny možné případy, ... (Tebou napsaný logický kód - jádro, by mělo být přenositelné naprosto všude - i do ASP.NET!) Případně můžeš užít 3 vrstech - GUI - platforma - logika. Tak můžeš měnit jen GUI, jen platformu, anebo jen logiku. Samozřejmě možností je vždy mnoho. Doporučuji také myslet ustavičně na to, abys daný kód chápal i o pár let později a aby byl přístupný všem. (Komentáře, trefná pojmenování, přehlednost, čistota, co třída to maximálně 250 - 500 řádků, ...) Nezapomenout na interface, dědění, abstraktní třídy, ...

Nahlásit jako SPAM
IP: 78.136.138.–
Matěj Andrle+1
Grafoman
21. 6. 2015   #41
-
0
-

#39 Plui
Příklad správného návrhu aplikace:

http://leteckaposta.cz/776886719

Není to možná zcela ideální, avšak chci poukázat především na dokonalé oddělení logiky od grafiky. (Jádro je natolik obecné, že jej mohu použít pro jakékoliv jiné GUI - XNA, ASP.NET, GTK, ...)

Nahlásit jako SPAM
IP: 78.136.138.–
Plui
~ Anonymní uživatel
46 příspěvků
21. 6. 2015   #42
-
0
-

Dúfam že takéto kódy sa aj mne niekedy podaria   

Nahlásit jako SPAM
IP: 78.98.8.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 25 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý