Tietojenkäsittelytiede				Harjoitustehtäviä
Graafisten käyttöliittymien toteutus		8.11.2005



1.  Tarkastellaan luennolla esitettyä jakoa käyttöliittymän abstrak-
    tiotasoihin. Mille tasoille seuraavat resurssit sijoittuvat tässä
    ajattelussa: bittikuvio, valintaikkuna, kirjasinlaji, pääteikku-
    nan historialistan pituus, varmistuskysymysten esittäminen (esi-
    tetään / ei esitetä).


2.  Resurssina olevan valintaikkunan vuorovaikuttimien määrää ja la-
    jeja voidaan periaatteessa muuttaa koskematta ohjelmaan. Keksi
    jokin käyttö tälle ominaisuudelle. Mitä ohjelman tulisi voida ky-
    syä valintaikkunan ominaisuuksista, jotta tällainen ohjelma voi-
    taisiin laatia?


3.  Lisää (kynä-ja-paperi-harjoituksena) luentojen luvussa 4 esitel-
    tyyn yksinkertaiseen piirto-ohjelmaan toinen painike, jota paina-
    malla käyttäjä voi kokonaan estää lopussa olevan varmistukysymyk-
    sen esittämisen.


x2.  +-------------------------------------------------------+
     |            Tämä tehtävä on pakollinen.                |       
     |                                                       |
     | Ratkaisu on lähetettävä sähköpostina osoitteella      |
     | gkt98@cs.joensuu.fi viimeistään 7.11.2005 klo 15.00.  |
     |                                                       |       
     | ÄLÄ LÄHETÄ VASTAUSTA LIITETIEDOSTONA VAAN OSANA ITSE  | 
     | KIRJEEN TEKSTIÄ !!!                                   |       
     |                                                       |
     | Tuo harjoitustilaisuuteen ohjelmalistaus ja valmiiksi |
     | täyttämäsi x-tehtävän arviointilomake.                |
     +-------------------------------------------------------+


    Laadi ja testaa Delphin kääntäjällä (ei siis Delphin graafisella
    käyttöliittymällä -- kts. ohjeet luentomonisteen luvun 3 lopusta)
    merkkipohjainen ohjelma (ts. $APPTYPE CONSOLE), joka toimii sa-
    moin kuin seuraava ohjelma, mutta hakee kaikki käyttämänsä merk-
    kijonot resurssitiedostosta. Mikäli jotain jonoa ei ole resurssi-
    tiedostossa, niin korvaa se jonolla '(Teksti xxx puuttuu)', missä
    xxx on ohjelman jonolle käyttämä ID-numero.

    program karkausvuosi;
    var vuosi: integer;
    begin
      writeln('Karkausvuoden ilmoittaminen.'); writeln;
      write('Anna vuosiluku: '); readln(vuosi);
      if (vuosi mod 400 = 0) or
         ((vuosi mod 4 = 0) and (vuosi mod 100 <> 0))
      then writeln('Vuosi ',vuosi:4,' on karkausvuosi')
      else writeln('Vuosi ',vuosi:4,' ei ole karkausvuosi')
   end.

   Laadi kaksi eri resurssitiedostoa - suomenkielinen ja englannin-
   kielinen - ja vaihda käyttöliittymän kieltä kääntämättä ohjelmaa
   uudelleen. Lähetä myös käyttämäsi resurssitiedostot samassa sähkö-
   postikirjeessä (osana varsinaisat tekstiä -- ei siis liitetiedos-
   toina).