unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm1 =
class( TForm )
The_PaintBox : TPaintBox;
btn_Rechteck : TButton;
// Im Object-Inspector das Ereignis "OnClick" von "btn_Rechteck" mit "btn_RechteckClick" verbinden
procedure btn_RechteckClick( Sender : TObject );
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
TRechteck =
class
hoehe, breite : Integer;
// Zeichnet relativ zur aktuellen Stiftposition auf "aCanvas" das Rechteck
procedure ZeichneAuf( aCanvas : TCanvas );
end;
var
Form1 : TForm1;
implementation
{$R *.dfm}
{ TRechteck }
procedure TRechteck.ZeichneAuf( aCanvas : TCanvas );
begin
// Jedes Zeichnen mit "LineTo" setzt auch die Stiftposition "PenPos"
aCanvas.LineTo( aCanvas.PenPos.X + Self.breite, aCanvas.PenPos.y );
// Linie nach rechts
aCanvas.LineTo( aCanvas.PenPos.X, aCanvas.PenPos.y + Self.hoehe );
// Linie nach unten
aCanvas.LineTo( aCanvas.PenPos.X - Self.breite, aCanvas.PenPos.y );
// Linie nach links
aCanvas.LineTo( aCanvas.PenPos.X, aCanvas.PenPos.y - Self.hoehe );
// Linie nach oben
end;
{ TForm1 }
procedure TForm1.btn_RechteckClick( Sender : TObject );
var
MyRechteck : TRechteck;
begin
// Diese Methode soll aufgerufen werden, wenn der Button "btn_Rechteck" gedrückt wurde
// Die Stiftposition in der PaintBox setzen
The_PaintBox.Canvas.MoveTo( 50, 40 );
// Instanz vom Rechteck erzeugen
MyRechteck := TRechteck.Create;
// Werte zuweisen
MyRechteck.hoehe := 50;
MyRechteck.breite := 80;
// Zeichen-Methode aufrufen
MyRechteck.ZeichneAuf( The_PaintBox.Canvas );
// Instanz wieder freigeben
MyRechteck.Free;
end;
end.