Palanen (2/3) GKO:n tentistä (loppukoe, kirja sai olla mukana).
Delphin VCL-kirjastossa tulee TShape-komponentti, jossa on ominaisuus,
type TShapeType = (stRectangle, stSquare, stRoundRect, stRoundSquare, stEllipse, stCircle); property Shape: TShapeType;
jolla voidaan valita onko kyseessä suorakaide, ellipsi tms. Tarkastele tämmöisen komponentin hyviä ja huonoja puolia. Minkälaisella järjestelyllä huonot puolet voitaisiin hoitaa ja mitä tästä taas seuraisi? (6p)
Sinun pitäisi koodata VespaCad (parannettu MopoCad J ): Ohjelmalla voi piirtää neliöitä, suorakaiteita, ellipsejä ja kolmioita. Ohjelmassa on nappi, jolla KAIKKIEN kuvioiden koon voi puolittaa ja toinen nappi kuvioiden koon kaksinkertaistamiseksi. Kuvioiden sijoittelu tapahtuu vetämällä "kuviopalkista" kuviota piirtoalustalle. Kuvion koko voidaan vaikkapa määrätä etukäteen. Arvosteluun vaikuttaa se, kuinka helposti ohjelmaasi on lisättävissä uusi kuvioluokka.
Piirrä ensin miltä ohjelman käyttöliittymä näyttäisi (0p, mutta välttämätön arvostelulle)
Vihje: Muista että kohdasta 2 selviät vähimmällä, jos komponenttisi osaavat enemmän. Kohtaan 4 ei kannata kirjoittaa vaikeimman komponentin implementaatiota (tosin jotakin järkevääkin sen pitää tehdä, esim. komponentti, joka perii vaikkapa paneelin eikä lisää siihen mitään toimintoja, ei kelpaa).