unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Olympia;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.DFM}
procedure TForm1.Olympia;
begin
with Form1.canvas do begin
brush.style:=bsclear;
pen.width:=3;    //Breite des Stifts
 
pen.color:=clblue;
ellipse(penpos.x,penpos.y,penpos.x+20,penpos.y+20); //Ring links oben
 
pen.color:=clblack;
moveto(penpos.x+22,penpos.y);
ellipse(penpos.x,penpos.y,penpos.x+20,penpos.y+20); // Ring oben Mitte
 
pen.color:=clred;
moveto(penpos.x+22,penpos.y);
ellipse(penpos.x,penpos.y,penpos.x+20,penpos.y+20); // Ring oben rechts
 
pen.color:=clyellow;
moveto(penpos.x-34,penpos.y+10);
ellipse(penpos.x,penpos.y,penpos.x+20,penpos.y+20); // Ring unten links
 
pen.color:=clgreen;
moveto(penpos.x+22,penpos.y);
ellipse(penpos.x,penpos.y,penpos.x+20,penpos.y+20); // Ring unten rechts
end
end;
 
//aktuelle Position des Stifts ist jetzt links oben am grünen Ring!
 
procedure TForm1.Button1Click(Sender: TObject);
begin
with Form1.Canvas do begin
moveto(400,0); // Mitte des Fenster, ganz oben
while penpos.y < Form1.height do begin
olympia;
moveto(penpos.x-32,penpos.y+30);
// x = Breite des gelben Rings (20)
       + Abstand (2)
       + halbe Breite des blauen Rings (10) = 32
// y = Höhe des Rings (20) + Abstand (10) = 30
end
end
end;
end.