Académique Documents
Professionnel Documents
Culture Documents
Komponenta Timer
Cilj lekcije: Upoznavanje sa osobinama i primenom kontrole Timer i jednostavne primene kontrole
DateTimePicker
Kontrola Timer igra važnu ulogu u razvoju programa kako na strani klijenta tako i na strani servera, kao i u
Windows uslugama. Sa kontrolom Timer možemo pokrenuti događaje u određenom vremenskom intervalu bez
interakcije druge niti ili drugog događaja.
Dviklik na Timer u Design prikazu, prebacuje u source kod i daje mogu nost upisa unkcionalnosti:
Start i Stop kontrole Timer
Kontrola Timer uključuje metode Start i Stop za pokretanje i zaustavljanje funkcija kontrole Timer.
2. Zadatak - Vezba1Timer
Slede i # program pokazuje kako da koristite Timer za pisanje teksta u tekstualnu datoteku svake sekunde.
Program ima dva dugmeta, tart i top. plikacija e pisati liniju u tekstualnu datoteku svake 1 sekunde nakon
to se klikne na dugme tart. plikacija prestaje da pi e u tekstualnu datoteku kada se klikne na dugme Stop.
Timer Tick događaj
Događaj Timer Tick se javlja kada je navedeni interval tajmera protekao i kada je tajmer omogu en
(Enabled).
myTimer.Tick += new EventHandler(TimerEventProcessor);
D đ .D đ Elapsed
E č ( ) f Interval.
MyTimer.Elapsed += OnTimedEvent;
TimerCallback Delegate
Timer Class
System.Timers.Timer pokre e događaj u redovnim intervalima. vo je ne to mo niji tajmer. Umesto Tick
događaja, ima događaj Elapsed event (Protekli događaj). etode Start i Stop za System.Timers.Timer koje su
slične promeni svojstva Enabled. Za razliku od System.Windows.Forms.Timer, događaji su e ektivno stavljeni u
red čekanja – tajmer ne čeka da se jedan događaj zavr i pre nego to ponovo počne da čeka i zatim pokrene
slede i događaj. lasa je namenjena za kori enje kao serverska ili servisna komponenta u vi enitnom
okruženju i nema korisnički inter ejs i nije vidljiva tokom izvr avanja.
lede i primer instancira objekat System.Timers.Timer koji pokre e svoj događaj Timer.Elapsed svake dve
sekunde postavlja rukovalac događaja za događaj i pokre e tajmer.
Kreirajte objekat Timer za interval od jedne sekunde:
myTimer = new System.Timers.Timer(1000);
3. Zadatak - Odbrojavanje
# tajmera
lede i program pokazuje kako da kreirate odbrojavanje sekundi koriste i # tajmer.
bratite pažnju da je Name svojstvo kontrole Timer - aTimer
System.Threading.Timer klasa
System.Threading.Timer je jednostavan, lagan tajmer koji koristi metode povratnog poziva i opslužuju ga niti
skupa niti. NE P EP E se kori enje sa Windows Forms, jer se njegovi povratni pozivi ne de avaju u
niti korisničkog inter ejsa. oristite Timer allback delegat da odredite metod koji želite da tajmer izvr i. Delegat
tajmera je naveden kada je tajmer konstruisan i ne može se promeniti. etoda se ne izvr ava na niti koja je
kreirala tajmer; izvr ava se na ThreadPool niti koju obezbeđuje sistem. Prilikom kreiranja tajmera, aplikacija
speci icira količinu vremena za čekanje pre prvog pozivanja metoda delegata i količinu vremena za čekanje
između narednih poziva. Timer poziva svoje metode kada mu istekne vreme, i poziva svoje metode jednom u
periodu nakon toga. ožete da promenite ove vrednosti ili možete da onemogu ite tajmer kori enjem metode
Timer.Change.
Primer konzolne aplikacije:
using System;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
TimerState TS = new TimerState();
TimerCallback tDelegate = new TimerCallback(CheckStatus);
Timer thisTimer = new Timer(tDelegate, TS, 1000, 1000);
TS.tmr = thisTimer;
while (TS.tmr != null)
Thread.Sleep(0);
Console.WriteLine("Finish !!");
Thread.Sleep(10000);
}
// The following method is called by the timer's delegate.
static void CheckStatus(Object state)
{
TimerState TS = (TimerState)state;
TS.counter++;
Console.WriteLine("{0} Checking Status {1}.",
DateTime.Now.TimeOfDay, TS.counter);
if (TS.counter == 5)
{
(TS.tmr).Change(10000, 100);
Console.WriteLine("changed...");
}
if (TS.counter == 10)
{
Console.WriteLine("disposing of timer...");
TS.tmr.Dispose();
TS.tmr = null;
}
}
}
class TimerState
{
public int counter = 0;
public Timer tmr;
}
}
Rezultat:
C# Kontrola DateTimePicker
Kontrola DateTimePicker vam omogu ava da prikažete i prikupite datum i vreme od korisnika u određenom
formatu.
Kontrola DateTimePicker ima dva dela: oznaku koja prikazuje izabrani datum i iskaču i kalendar koji
omogu ava korisnicima da izaberu novi datum. Najvažnije svojstvo DateTimePicker-a je svojstvo Value, koje
sadrži izabrani datum i vreme.
dateTimePicker1.Value = DateTime.Today;
Svojstvo Value sadrži trenutni datum i vreme na koje je pode ena kontrola. ožete koristiti svojstvo Te t ili
odgovaraju i član alue da biste dobili vrednost datuma i vremena.
DateTime iDate;
iDate = dateTimePicker1.Value;
ontrola može da prikaže jedan od nekoliko stilova, u zavisnosti od vrednosti njenih svojstava. rednosti se
mogu prikazati u četiri ormata, koji su postavljeni svojstvom Format: Long, Short, Time ili Custom.
dateTimePicker1.Format = DateTimePickerFormat.Short;
Metoda DateTime.Substract se može koristiti da bi se pronašla razlika između datuma i vremena između dve
instance metode DateTime. Više detalja..... Find date difference
Prikaz u TextBox-u:
Izvorni linkovi:
D :
Prepisati u svesku kodove za dodavan e funkcionalnosti pri koriš en u kontrola Timer i DateTimePicker.
Dodatni primeri:
Dodati novu kontrolu Panel i postaviti svojstva kao na slici ispod. Klik na panel e kreirati lopticu, a dugmad
tart i top e pokre u ili zaustavljaju.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace primer10_IgraLoptom
{
public partial class Igra_loptom1 : Form
{
SolidBrush cetka = new SolidBrush(Color.Red); // izbor cetke
int X = 0, Y = 0; // pocetne koordinate lopte
public Igra_loptom1()
{
InitializeComponent();
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise,
false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.btKreniStani = new System.Windows.Forms.Button();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.SuspendLayout();
//
// btKreniStani
//
this.btKreniStani.Location = new System.Drawing.Point(337, 30);
this.btKreniStani.Name = "btKreniStani";
this.btKreniStani.Size = new System.Drawing.Size(75, 23);
this.btKreniStani.TabIndex = 0;
this.btKreniStani.Text = "Pokreni";
this.btKreniStani.UseVisualStyleBackColor = true;
this.btKreniStani.Click += new System.EventHandler(this.btKreniStani_Click);
//
// timer1
//
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// Igra_loptom1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.btKreniStani);
this.Name = "Igra_loptom1";
this.Text = "Primer10 - Igra loptom";
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Igra_loptom1_Paint);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button btKreniStani;
private System.Windows.Forms.Timer timer1;
}
}
4. Primer: How to use Timer Control in Windows Forms C#
https://youtu.be/iUFk9uMabKg?list=PLBij9KpN6Ywtd_In8f9iOHa5Wq4IZW_ZD