delphi, canvas, vežba umožavanje krugova

Поставите коментар

clip_image002Kreirati aplikaciju u kojoj se po formi iscrtava krug koji dodiruje sve četiri ivice forme. Preko spinedit kontrole se povećava broj krugova koji se iscrtavaju tako da se svi krugovi vide na formi. Svaki krug je različite boje.

(širina i visina forme moraju biti iste, spinedit min=1, value=1)

 

 

 

 

 

 

 

clip_image006clip_image004

Kod:

var

Form3: TForm3; n:integer;

implementation uses unit1;

{$R *.dfm}

procedure TForm3.FormPaint(Sender: TObject);

var x1,y1,x2,y2,i,a,b:integer;

begin

randomize;

n:=spinedit1.Value;

a:=clientwidth;

b:=round(a/n);

x1:=0;y1:=0;x2:=x1+b;y2:=y1+b;

for i := 1 to n do

begin

canvas.brush.color:=rgb(random(255),random(255),random(255));

canvas.Ellipse(x1,y1,x2,y2);

x1:=x2;x2:=x1+b;

end;

end;

procedure TForm3.SpinEdit1Change(Sender: TObject);

begin

refresh;

end;

end.

delphi, canvas, vežba duplirani krugovi

Поставите коментар

clip_image002Kreirati aplikaciju u kojoj se na formi iscrtava krug proizvoljnog prečnika, prislonjen na donju ivicu forme. Preko jednog spinedit-a se povećava broj krugova, svaki sledeći krug se iscrtava iznad prethodnog, udaljen za određeni razmak. Razmak između krugova se zadaje preko drugog spinedit-a. Svaki krug je druge boje.

 

 

 

clip_image004

Kod:

var

Form3: TForm3;

implementation uses unit1;

{$R *.dfm}

procedure TForm3.FormPaint(Sender: TObject);

var i,n,x1,y1,x2,y2,r:integer; boja:Tcolor;

begin

randomize;

r:=spinedit2.Value;

n:=spinedit1.Value;

x1:=round(clientwidth/2) -100;

y1:=clientheight-100;

x2:=x1+100;

y2:=y1+100;

for i:=1 to n do

begin

// canvas.Brush.Color:=rgb(random(255),random(255),random(255));

boja:= rgb(random(255),random(255),random(255));

canvas.Brush.Color:=boja;

canvas.Pen.Color:=boja;

canvas.Ellipse(x1,y1,x2,y2);

y1:=y1-r;

y2:=y2-r;

end;

end;

procedure TForm3.SpinEdit1Change(Sender: TObject);

begin

refresh;

end;

procedure TForm3.SpinEdit2Change(Sender: TObject);

begin

refresh;

end;

end.

delphi, canvas, vežba Šare

Поставите коментар

zadatak:

kreirati aplikaciju u kojoj se po formi iscrtava pravougaonik, a zatim se po pravougaoniku iscrtavaju izabrane šare (kvadrati ili krugovi). Unose se koordinate gornjeg levog ugla pravougaonika, kao i širina i visina pravougaonika (preko input boksa).

image

pravougaonik širine 400, visine 60, šare krugovi:

image

kod:

var
  Form3: TForm3;  var x1,x2,a,b,y1,y2,n,m:integer;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin
    x1:=strtoint(inputbox(‘gornji levi ugao’,’unesi prvu koordinatu’,“));
    y1:= strtoint(inputbox(‘gornji levi ugao’,’unesi drugu koordinatu’,“));
    a:=   strtoint(inputbox(‘dimenzije pravougaonika’,’unesi širinu pravougaonika’,“));
    b:=   strtoint(inputbox(‘dimenzije pravougaonika’,’unesi visinu pravougaonika’,“));
    x2:=x1+a;
    y2:=y1+b;
    canvas.Rectangle(x1,y1,x2,y2);
    n:=a div 10;

end;

procedure TForm3.RadioGroup1Click(Sender: TObject);
var i,q,w,e,r:integer;
begin
q:=x1;
w:=y1+b div 2-5;
e:=x1+10;
r:=w+10;
case radiogroup1.ItemIndex of
0: begin
refresh; canvas.Rectangle(x1,y1,x2,y2);
for I := 0 to n-1 do  begin
       canvas.Rectangle(q,w,e,r);
       q:=e;  e:=q+10;
end;
end;
1: begin
refresh;    canvas.Rectangle(x1,y1,x2,y2);
for I := 0 to n-1 do  begin
       canvas.ellipse(q,w,e,r);
       q:=e;  e:=q+10;
end;
end;
end;
end;

end.

delphi–canvas, vežba Šrafure

Поставите коментар

Zadatak: Kreirati aplikaciju u kojoj se po formi iscrtavaju horizontalne linije, vertikalne linije ili mreža, u zavisnosti od izbora. Broj linija se određuje preko komponente SpinEdit, minimalan broj je 5, a maksimalan 100. Linije treba da su različite boje, slučajnim izborom.

mreža:

image

horizontalne linije:

image

vertikalne linije:

image

kod:

var
  Form1: TForm1;  stat:string;

implementation

{$R *.dfm}

procedure TForm1.horizontalne1Click(Sender: TObject);
var a,b,i,n:integer;
begin
stat:=’h’;
randomize;
refresh;
n:=spinedit1.Value;
  a:=round(clientheight/n);

  b:=a;
   for I := 0 to n do
       begin
          canvas.Pen.Color:=rgb(random(255),random(255),random(255));

     canvas.MoveTo(0,b);
     canvas.LineTo(clientwidth,b);
     b:=b+a;
end;   end;

procedure TForm1.mreza1Click(Sender: TObject);
var n,i,a,b,x,y:integer;
begin
stat:=’m’;
randomize;
refresh;
n:=spinedit1.Value;
  a:=round(clientheight/n);
   b:=round(clientwidth/n);
  x:=a;
      for I := 0 to n do
       begin
          canvas.Pen.Color:=rgb(random(255),random(255),random(255));

     canvas.MoveTo(0,x);
     canvas.LineTo(clientwidth,x);
    x:=x+a;
end;
y:=b;
      for I := 0 to n do
       begin
          canvas.Pen.Color:=rgb(random(255),random(255),random(255));

     canvas.MoveTo(y,0);
     canvas.LineTo(y,clientheight);
     y:=y+b
end;
end;

 

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
        if stat=’h’ then

horizontalne1.Click;
if stat=’v’ then  vertikalne1.Click;
if stat=’m’ then   mreza1.Click;

end;

 

procedure TForm1.vertikalne1Click(Sender: TObject);
var i,n,a,b:integer;
begin
     stat:=’v’;
randomize;
refresh;
n:=spinedit1.Value;
  a:=round(clientwidth/n);

  b:=a;
   for I := 0 to n do
       begin
          canvas.Pen.Color:=rgb(random(255),random(255),random(255));

     canvas.MoveTo(b,0);
     canvas.LineTo(b,clientheight);
     b:=b+a;
end;

end;

  end.