Advertisement
55john

Verkette Listen

Mar 13th, 2019
561
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.76 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  9.   ExtCtrls;
  10.  
  11. type
  12.  
  13.   TGrafik=class(TShape)
  14.     public
  15.     x,y:Integer;
  16.     nachfolger:TGrafik;
  17.     procedure zeichne;
  18.     constructor create(e:TComponent);  override;
  19.   end;
  20.  
  21.   { TForm1 }
  22.  
  23.   TForm1 = class(TForm)
  24.     Button1: TButton;
  25.     Button2: TButton;
  26.     Panel1: TPanel;
  27.     procedure Button1Click(Sender: TObject);
  28.     procedure Button2Click(Sender: TObject);
  29.   private
  30.  
  31.   public
  32.    
  33.  
  34.   end;
  35.  
  36. var
  37.   Form1: TForm1;
  38.   wurzel:TGrafik;
  39.   nummer:Integer=0;
  40.   r:Trect;
  41. implementation
  42.  
  43. {$R *.lfm}
  44.  
  45. { TForm1 }
  46.  
  47. procedure TForm1.Button1Click(Sender: TObject);
  48. begin
  49.    Randomize;
  50.   wurzel:=TGrafik.create(Form1);
  51.   wurzel.nachfolger:=TGrafik.create(Form1);
  52.   wurzel.nachfolger.nachfolger:=TGrafik.create(Form1);
  53.   wurzel.nachfolger.nachfolger.nachfolger:=TGrafik.create(Form1);
  54.  
  55.                                                            //nicht elegant
  56.   wurzel.zeichne;
  57.  
  58. end;
  59.  
  60. procedure TForm1.Button2Click(Sender: TObject);
  61. begin
  62.   canvas.clear;
  63.   canvas.clear;
  64.   r:=rect(0,0,Form1.Height,Form1.Width);
  65.   canvas.Brush.color:=clDefault;
  66.   panel1.color:=clDefault;
  67.   canvas.FillRect(r);
  68.   nummer:=0;
  69. end;
  70.  
  71. constructor TGrafik.create(e:TComponent);
  72. begin
  73.   inherited create(e);
  74.   x:=random(200);
  75.   y:=random(200);
  76.   nachfolger:=nil;
  77. end;
  78.  
  79.  
  80. procedure TGrafik.zeichne;
  81. begin
  82.     nummer:=nummer+1;
  83.    if (nachfolger<>nil) then
  84.    begin
  85.      Form1.Canvas.TextOut(x,y,inttostr(nummer));
  86.      form1.canvas.moveto(x,y);
  87.      form1.canvas.lineto(nachfolger.x,nachfolger.y);
  88.      nachfolger.zeichne;
  89.    end
  90.    else
  91.    begin
  92.     Form1.Canvas.TextOut(x,y,inttostr(nummer));
  93.    end;
  94.  
  95. end;
  96.  
  97. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement