Demo 9 / Ma 11.11


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.
  1. 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)
  2. vastaavasti asettamismetodi SetAsString tehdäänkin parametrilistalla var s:string , josta metodia uudelleen kirjoitettaessa ( override) jokainen voi ottaa "oman" osansa jonosta.
  3. 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);
  4. Lukuvaiheessa TAlusta.Lue(var f:Text) lukee rivin kerrallaan Readln(f,s);
  5. luokannimi := erota(s,':');
  6. 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.
  7. kun olion ilmentymä on saatu, asetetaan attribuutit tietysti muoto.AsString := s;
  8. lisää ideasta voit katsoa esimerkiksi mallista (samassa hakemistossa on myös C++ -ratkaisuja) n:\kurssit\cpp\moniste\esim\olioalk\luokkalis\elain.pas




Last update: ma 11.11.2002 9:44