Windows Forms jatkuu

Luentotaltiointi

Ongelmia videon katselussa?

luennolla tehty esimerkki

Jatketaan windows-ohjelmoinnin parissa ja käydään läpi edellisviikon demotehtävät.

Ensimmäisen viikon tehtävät

Delegaatit ja tapahtumat

Tapahtumat

Delegaatti on sama asia kuin funktio-osoitin. Delegaattien avulla voidaan vasta ohjelman suoritusaikana päättää mitä funktiota kutsutaan.

Delegaatteja käytetään erityisesti tapahtumapohjaisessa ohjelmoinnissa eli esim. windows-ohjelmoinnissa.

  1. Määritellään delegaatti
    • Delegaattimäärittelyn palautustyyppi ja parametrit määräävät millaista funktiota voidaan käyttää
      public delegate void Esimerkki();
      public delegate void Esimerkki2(object sender, EventArgs e); // windows forms -tapahtumat
      
    • Tapahtuman aiheuttavassa luokassa luodaan delegaatti:
      public event Esimerkki tapahtuma;
      public event Esimerkki2 tapahtuma2;
      
    • Jossain vaiheessa olion elämää se kutsuu delegaattiaan eli aiheuttaa tapahtuman:
      tapahtuma();
      tapahtuma2(this, e);
      
    • Tapahtumalla pitää kuitenkin olla myös seuraaja eli joku, joka on luonut edellämainittua luokkaa olevan olion ja määritellyt seuraajan tapahtumalle:
                  Foo joku = new Foo;
                  joku.tapahtuma += new Esimerkki(funktio);
    • funktiota kutsutaan aina kun tapahtuu!

Lisätietoa:

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/gko/luennot/luento4/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2010-10-04 16:03:55
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta