Izvršnu verziju (exe fajl) možete da preuzmete sa sledećeg linka VezbaShape1

clip_image002Na formi se nalaze sledeće komponente:

Shape, oblik može biti krug ili kvadrat, bira se iz menija Oblik;

ColorDialog (cd) pomoću kojeg se bira boja. Color dijalog se otvara klikom na labelu u kojoj je prikazana boja popune (prvi kvadratić) ili klikom na labelu u kojoj je prikazana boja linije (drugi kvadratić);

SpinEdit, komponenta pomoću koje se bira debljina linije. Debljina linije se može zadati i unosom broja u edit polje ispod;

Dve komponente TrackBar, jedna nam služi da menjamo položaj Shape-a, a druga nam služi da menjamo veličinu oblika. Kod svakog TrackBar-a se nalazi i labela u kojoj se prikazuje trenutna pozicija na traci.

Kod prvog TrackBar-a je početna pozicija 0, min=-5, max=5. Kod drugog TrackBar-a početna pozicija je 1, min=1, max=10

Kod menjanja veličine oblika menjamo svojstvo Width i Height, odnosno visinu i širinu oblika. Sa trakom smo ga povezali tako što trenutnu poziciju na traci množimo sa nekim brojem (u primeru sa brojem 5, što je veći broj, oblik će se više smanjiti/povećati kako vučemo jezičak na traci) i tu vrednost dodajemo originalnoj širini i visini oblika. U primeru su uzete promenljive w (originalna, početna širina oblika) i h (originalna, početna visina oblika)

Kod menjanja položaja oblika (samo po horizontalnoj osi) menjamo svojstvo Left koje predstavlja udaljenost oblika od leve ivice forme. Što je svojstvo Left manje, oblik je bliži ivici, i obrnuto. Takođe poziciju na traci množimo sa nekim brojem (i ovde je u primeru u pitanju broj 5) i tu vrednost dodajemo početnoj vrednosti svojstva Left. U ovom primeru ta vrednost je predstavljena promenljivom a. Tako dobijamo da ako vučemo u levo, na traci je negativna pozicija, pa se svojstvo Left umanjuje, odnosno oblik se približava levoj ivici forme.

Kod:

var

Form1: TForm1; a,w,h:integer;

implementation

{$R *.dfm}

procedure TForm1.Edit2Change(Sender: TObject);

begin

if edit2.Text=“ then begin

edit2.Text:=’1′;

edit2.SelectAll;

end;

shape1.Pen.Width:=strtoint(edit2.Text);

spinedit1.Text:=edit2.Text;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

a:=shape1.Left;

w:=shape1.Width;

h:=shape1.Height;

end;

procedure TForm1.krug1Click(Sender: TObject);

begin

shape1.Shape:=stcircle;

shape1.Visible:=true;

end;

procedure TForm1.kvadrat1Click(Sender: TObject);

begin

shape1.Shape:=stsquare;

shape1.Visible:=true;

end;

procedure TForm1.Label2Click(Sender: TObject);

begin

if cd.Execute then begin

shape1.Brush.Color:=cd.Color;

label2.Color:=cd.Color;

end;

end;

procedure TForm1.Label4Click(Sender: TObject);

begin

if cd.Execute then begin

shape1.Pen.Color:=cd.Color;

label4.Color:=cd.Color;

end; end;

procedure TForm1.SpinEdit1Change(Sender: TObject);

begin

shape1.Pen.Width:=spinedit1.Value;

edit2.Text:=inttostr(spinedit1.Value);

end;

procedure TForm1.TrackBar1Change(Sender: TObject);

begin

label7.Caption:=inttostr(trackbar1.Position);

shape1.Left:=a+5*trackbar1.Position;

end;

procedure TForm1.TrackBar2Change(Sender: TObject);

begin

label5.Caption:=inttostr(trackbar2.Position);

shape1.Width:=w+trackbar2.Position*5;

shape1.Height:=h+trackbar2.Position*5;

end;

end.

Advertisements