Pääteohjaustehtäviä 5 / 1.-2.10
1. Liikkuva auto
1.
Kokeile
n:\kurssit\winohj\delphi\comps\liikkuva - hakemiston komponenttia ja testiohjelmaa. Laita monta autoa liikkumaan. Laita yksi auto, joka lopettaa ajamisen ensimmäisen kääntymisen jälkeen. (Kopioi hakemisto omaan hakemistoosi).
2. Piirtäminen
2.
Luo uusi sovellus ja talleta se (
PaintBoxTestForm.pas ja
PainBoxTest.dpr)
3.
Lisää lomakkeelle
TPaintBox-komponentti (
System-välilehti) ja laita se vähintään 100x100 kokoiseksi.
4.
Kirjoita komponentille
OnPaint-tapahtuma, jossa piirretään viiva paikasta
0,0 paikkaan
50,50 (ks. avustus
TCanvas.MoveTo ja
TCanvas.LineTo).
8.
Kirjoita piirtämisen koodiksi:
procedure TForm1.PaintBox1Paint(Sender: TObject);
var c:TCanvas; bmp : TBitMap; // rd,rs:TRect;
begin
c := PaintBox1.Canvas;
c.MoveTo(0,0);
c.LineTo(50,50);
bmp := TBitMap.Create;
bmp.LoadFromFile('hauto.bmp'); // Oikeasti tämä pitää tehdä
// "silmukan" ulkop.
c.Draw(50,50,bmp);
// rd := Rect(50,50,50+bmp.Width,50+bmp.Height);
// rs := Rect(0,0,bmp.Width-1,bmp.Height-1);
// c.BrushCopy(rd,bmp,rs,bmp.TransparentColor);
// c.CopyRect(rd,bmp.Canvas,rs);
bmp.Free;
end;
9.
Kokeile ja kokeile sen jälkeen ottaa suorakaiteeseen (
TRect) liittyvät kommentit pois (joko
BrushCopy tai
CopyRect) ja kommentoi
c.Draw.
10.
Koska
Paint-metodia kutsutaan useita kertoja, niin mieti miten sama koodi kannattaisi lomakkeella sijoittaa optimaalisemmin (niin, ettei bittikarttaa jatkuvasti luoda, lueta tiedostosta ja tuhota).
11.
Piirrä vielä ellipsi auton kuvan ympärille.
3. C#
12. Kokeile C#:lla autolaskuria.