Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
- ExtCtrls;
- type
- TGrafik=class(TShape)
- public
- x,y:Integer;
- nachfolger:TGrafik;
- procedure zeichne;
- constructor create(e:TComponent); override;
- end;
- { TForm1 }
- TForm1 = class(TForm)
- Button1: TButton;
- Button2: TButton;
- Panel1: TPanel;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- private
- public
- end;
- var
- Form1: TForm1;
- wurzel:TGrafik;
- nummer:Integer=0;
- r:Trect;
- implementation
- {$R *.lfm}
- { TForm1 }
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- Randomize;
- wurzel:=TGrafik.create(Form1);
- wurzel.nachfolger:=TGrafik.create(Form1);
- wurzel.nachfolger.nachfolger:=TGrafik.create(Form1);
- wurzel.nachfolger.nachfolger.nachfolger:=TGrafik.create(Form1);
- //nicht elegant
- wurzel.zeichne;
- end;
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- canvas.clear;
- canvas.clear;
- r:=rect(0,0,Form1.Height,Form1.Width);
- canvas.Brush.color:=clDefault;
- panel1.color:=clDefault;
- canvas.FillRect(r);
- nummer:=0;
- end;
- constructor TGrafik.create(e:TComponent);
- begin
- inherited create(e);
- x:=random(200);
- y:=random(200);
- nachfolger:=nil;
- end;
- procedure TGrafik.zeichne;
- begin
- nummer:=nummer+1;
- if (nachfolger<>nil) then
- begin
- Form1.Canvas.TextOut(x,y,inttostr(nummer));
- form1.canvas.moveto(x,y);
- form1.canvas.lineto(nachfolger.x,nachfolger.y);
- nachfolger.zeichne;
- end
- else
- begin
- Form1.Canvas.TextOut(x,y,inttostr(nummer));
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement