Zpět na seznam článků     Číst komentáře (6)     Verze pro tisk

C# tipy #4 - Odpočet času do konce roku

Autor: sukovanej   
31.12.2012

Jako každoročně se určitě na internetu objeví spoustu javascriptových aplikací na odpočet času do konce roku. My si uděláme stejnou funkcionalitu, ale v kabátě OS Windows a jazyka C#.


Vytvoříme si aplikaci, která bude zobrazovat odpočet času a aby to mělo trochu efekt, tak aplikaci necháme spustit tzv. full screen.

Vytvořte si nový projekt. Přidejte si do něj dva popisky (komponenta Label) a prvnímu nastavte font s velikostí 72, protože budeme aplikaci zobrazovat přes celou obrazovku. Do toho druhého si můžete napsat něco jako "Čas do konce roku".

Odpočet času

V jazyce C# můžeme děkovat propracovanému a šikovnému systému datových typů, který poskytuje .Net. Nám totiž stačí pouze nadefinovat si novou instanci třídy DateTime. Jako parametry jí zadat 1. 1. 2013 a tuto instanci odečíst od instance s aktuálním časem. Ten získáme nejsnadněji pomocí DateTime.Now.

Dále budeme potřebovat komponentu Timer, která dokáže cyklicky po specifických intervalech opakovat určitou metodu, kterou si nadefinujeme v události Tick (V Toolboxu je Timer v sekci Components).

čas
  1. private void timer1_Tick(object sender, EventArgs e)      
  2. {
  3.   label1.Text = (new DateTime(2013, 1, 1) - DateTime.Now).ToString();
  4. }

Perioda, s kterou se bude metoda opakovat, se dá nastavit pomocí vlastnosti Interval. Dávejte pozor, protože zadaná hodnota je v milisekundách. Já ji nastavil na 1ms, ale stačilo by i 1000ms (čili 1s), nemá to ale takový efekt :).

Okno na celou obrazovku

Na internetu můžete najít všelijaké postupy, ve kterých definujete externí metody s Win API a potom nějaké hloupé implementace, ale vězte, že stačí pouze nastavit dvě vlastnosti formuláře. První je FormBorderStyle. Ta určuje, jak bude vypadat rám kolem formuláře. Nastavte ho na None (úplně zmizí vzhled klasických oken). A ještě vlastnost WindowState, kterou nastavíte na Maximized, čímž zajistíme, že aplikace bude přes celou obrazovku.

Nastavení
  1. this.FormBorderStyle = FormBorderStyle.None;
  2. this.WindowState = FormWindowState.Maximized;

V tomto bodě už je aplikace téměř životaschopná. Poslední věc, kterou musíme zajistit je, aby se text vypisovat na střed obrazovky. Musíme zjistit šířku a výšku monitoru a délku a výšku textu. Výška a šířka monitoru se může zdát být trochu problémová, ale když vezmete v potaz, že aplikace je v momentě, kdy budeme velikosti počítat maximalizovaná, použijeme normálně velikosti formuláře a tím získáme i rozměry monitoru. Rozměry textu zjistíme stejně snadno z vlastnosti Size (stejně tak se jmenuje i požadovaná vlastnost u formuláře).

Zarovnání
  1. int x, y;
  2. x = this.Size.Width;
  3. y = this.Size.Height;
  4.  
  5. label1.Location = new Point(x / 2 - label1.Width / 2, y / 2 - label1.Height / 2);

Doufám, že je jasné, co a proč jsme udělali. Vzali jsme poloviny šířky a odečetli od toho polovinu délky textu a tím jsme získali vzdálenost od kraje, kde začneme vykreslovat text. To stejné jsme provedli s výškou.

Závěr

Nyní by aplikace určitě chtěla ještě upravit barvu pozadí, textu, možná taky jeho font. Dále byste mohli při dosažení onoho kouzelného času nechat zobrazit nějaký text s uvítáním do nového roku apod., to už je ale na fantazii každého z vás.

Všem přeji dobrý start do Nového roku a veselí Silvestr.


Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 2.88/8

1  2  3  4  5    
(známkování jako ve škole)