blikk info infothek forum galerie sitemap

Lösung zur 2. Aufgabe

zur Aufgabenstellung

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls;

 

type

  TForm1 = class(TForm)

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Symbol;

  private

    { Private-Deklarationen }

  public

    { Public-Deklarationen }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.DFM}

procedure TForm1.Symbol ;

begin

with form1.canvas do begin

moveto(penpos.x,penpos.y); //Auto links

lineto(penpos.x+8,penpos.y);

moveto(penpos.x,penpos.y-10);

lineto(penpos.x-3,penpos.y);

lineto(penpos.x-5,penpos.y+5);

lineto(penpos.x,penpos.y+5);

moveto(penpos.x+8,penpos.y-4);

 

brush.color:=clblack;       // Reifenfarbe schwarz

ellipse(penpos.x,penpos.y,penpos.x+8,penpos.y+8); // Reifen links

 

moveto(penpos.x+8,penpos.y+4); // Auto unten, Mitte

lineto(penpos.x+10,penpos.y);

moveto(penpos.x,penpos.y-4);

 

brush.color:=clblack;   // Reifenfarbe schwarz

ellipse(penpos.x,penpos.y,penpos.x+8,penpos.y+8); // Reifen rechts

 

moveto(penpos.x+8,penpos.y+4); // Auto rechts

lineto(penpos.x+8,penpos.y);

lineto(penpos.x,penpos.y-5);

lineto(penpos.x-5,penpos.y-5);

lineto(penpos.x-3,penpos.y);

moveto(penpos.x-26,penpos.y-8);

 

arc(penpos.x,penpos.y,penpos.x+28,penpos.y+16,penpos.x+28,

    penpos.y+8,penpos.x-30,penpos.y+10); // Autodach

 

    brush.color:=clblue;

floodfill(penpos.x,penpos.y+10,clblack,fsborder); // Füllfarbe des Autos

                                                                                // mit blauer Farbe

 

brush.color:=clyellow;     // Farbe gelb des linken Lichts

moveto(penpos.x-8,penpos.y+13);

rectangle(penpos.x,penpos.y,penpos.x+3,penpos.y+5); // linkes Licht

 

moveto(penpos.x+39,penpos.y);

brush.color:=clred;     // Farbe rot des rechten Lichts

rectangle(penpos.x,penpos.y,penpos.x+3,penpos.y+5); // rechtes Licht

 

brush.color:=clwhite;    // Hintergrund weiß

end    // of 1. begin

end;  //of 2. begin

 

// die aktuelle Stiftposition ist jetzt links oben vom rechten Licht!

 

procedure TForm1.Button1Click(Sender: TObject);

begin

with form1.canvas do begin

moveto(5,200);

while penpos.x<form1.width-5 do begin

symbol;

moveto(penpos.x+13,penpos.y+5) // x = Breite des Lichts (3)+ Abstand (10) = 13

                               // y = Höhe des Lichts (5)     = 5

end // of 3. begin

end // of 2. begin

end; // of 1. begin

 

end.

Delphi

zurück zur Theorie

nach oben