Lösung zu 1.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure Haus; //Anmeldung Prozedur
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); // bei klick auf Button
begin //start der Prozedur Button
Haus; // führt Prozedur Haus aus
end; //ende der Prozedur Button
procedure TForm1.Haus; // Aufruf Prozedur Haus
begin //start der Prozedur
with form1.canvas do begin // Aufrufen der Leinwand (form1.canvas)
moveto(200,200); //Anfangspunkt der Zeichnung
rectangle(penpos.x,penpos.y,penpos.x+50,penpos.y+50); //Rechteck wird gezeichnet
lineto(penpos.x+25,penpos.y-25); //Linien für das Dach
lineto(penpos.x+25,penpos.y+25);
brush.color:=clred; //Füllfarbe des Daches
floodfill(penpos.x-10,penpos.y-1,clblack,fsborder); //füllfarbe zwischen bestimmten linien
end; //ende von "with"
end; //ende der Prozedur
end. //ende des Programmes
Lösung zu 2.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure Symbol;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin //anfang der Prozedur Button
with form1.canvas do begin
moveto(20,120);
Symbol; //neue Prozedur (wie oben "Haus")
sleep(2000); //Ruhezeit der Prozedur in Millisekunden
moveto(100,300);
Symbol;
sleep(2000);
moveto(300,50);
Symbol;
sleep(2000);
end
end;
procedure TForm1.Symbol;
begin
with form1.canvas do begin
pen.width:=5; //Breite des Stiftes mit dem gezeichnet wird
pen.color:= clred; //Farbe des Stiftes
ellipse(penpos.x,penpos.y,penpos.x+30,penpos.y-30); //Kreis wird gezeichnet
pen.color:=clblue;
lineto(penpos.x+30,penpos.y-30);
moveto(penpos.x,penpos.y+30);
lineto(penpos.x-30,penpos.y-30);
end;
end;
end.
|