Demo
9 / Ma 10.11, huom klo 8:30-10:00
1. Bittikartat
- 1-2.
- Tee
Delphi-komponentti
TTausta,
joka peritään
PaintBoxista
ja jossa on ominaisuudet:
Kuva : string; - taustakuvan tiedoston nimi
Tyyppi : TTaustaTyyppi - vaihtoehdot: keskitetty, koko alalle venytetty
tai monistettu, eli monistaa niin monesti
kuvaa että täyttyy kokonaan.
2. Modaalinen
dialogi
- 3-4.
- Kirjoita
Delphi
-ohjelma, jossa hiiren oikeaa nappia painamalla saadaan modaalinen
kokonaisluvun kysyvä dialogi. Tämän jälkeen
näyttöön täytyy tulostua teksti:
Luku oli 13, heksana 0x0d.
3. Modeless-dialogi
- 5.
- Muuta
edellinen ohjelma Modeless-dialogia käyttäväksi.
4. VespaCad
ja talletus
- 6.
- Tutustu
aikaisemmin
VespaCadiin
(
www.jyu.fi/~vesal/gko,
tai
avaa
vesal
ja
avaa
g
)
toteutettuun kuvioiden talletukseen. Kun ymmärrät tekniikan, saat
merkitä tämän tehtävän.
- TFigureen
lisätään
property:
AsString,
jonka saantimetodi
GetAsString
palauttaa kuvion intiimit tiedot merkkijonona, esim:
'10.5,12.5,24.7,30.8'
(eli esim.
x,y,h,w)
- vastaavasti
asettamismetodi
SetAsString
tehdäänkin parametrilistalla
var
s:string
,
josta metodia uudelleen kirjoitettaessa (
override)
jokainen voi ottaa "oman" osansa jonosta.
- Talletusvaiheessa
TAlusta:Talleta(var
f:Text)
käy läpi kaikki päällänsä olevat muodot ja
kirjoittaa tiedostoon
writeln(f,muoto.ClassName,':',muoto.AsString);
- Lukuvaiheessa
TAlusta.Lue(var
f:Text)
lukee rivin kerrallaan
Readln(f,s);
- luokannimi
:= erota(s,':');
- pyydetään
orrelta tätä luokan nimeä vastaava uuden olion ilmentymä
(vähän kuten
TOrsi.Monista
on nyt, mutta luokan nimen perusteella). Eli orsi käy läpi kaikki
päällänsä olevat muodot ja jos jollakin muodolla on sama
luokan nimi, monistaa tällaisen olion.
- kun
olion ilmentymä on saatu, asetetaan attribuutit tietysti
muoto.AsString
:= s;
- lisää
ideasta voit katsoa esimerkiksi mallista (samassa hakemistossa on myös
C++
-ratkaisuja)
n:\kurssit\cpp\moniste\esim\olioalk\luokkalis\elain.pas