Timer komponenta

1 коментар

 

Časovnik (Timer) je nevizuelna komponenta pomoću koje može da se meri vreme. Ova komponenta periodično generiše događaj OnTimer (prilikom isteka vremena) kad god istekne zadati period vremena, tako da program može sam nešto da uradi a da korisnik ne čini nikakvu akciju.

Svojstvo Interval (integer) određuje koliko često će se generisati neki događaj OnTimer. Podrazumevana vrednost ovog svojstva je 1000 i predstavlja interval od 1 sekunde. Što je ova vrednost manja, događaji OnTimer će se brže generisati.

Ako se svojstvo enabled postavi na True, časovnik je aktivan, a ako je vrednost ovog svojstva False, časovnik je neaktivan, odnosno zaustavljen.

Da se podsetimo:

Funkcija Random geneiše slučajne cele brojeve između 0 i zadate gornje granice. Npr.

Random(100) generiše slučajan broj u intervalu od 0 do 100

Primer1:

clip_image002Na formi se nalazi Timer i jedan Shape (krug). Želimo da se svake sekunde taj krug pomeri na drugo mesto na formi. Znači, treba da se menja svojstvo Left (udaljenost od leve ivice forme) i svojstvo Top (udaljenost od gornje ivice forme).

Na događaj OnTimer komponente Timer treba da se promene ove vrednosti. Koristićemo slučajne brojeve (funkcija Random), ali ćemo ih ograničiti na širinu (clientwidth) i visinu (clientheight) forme.

To bi moglo da se napiše

procedure TForm1.Timer1Timer(Sender: TObject);

begin

shape1.Left:=random(clientwidth);

shape1.Top:=random(clientheight);

clip_image004end;

U ovom slučaju se može desiti da nam se ne vidi ceo krug, a to možemo sprečiti ako smanjimo gornje granice intervala za visinu, odnosno širinu kruga. Ako napišemo

procedure TForm1.Timer1Timer(Sender: TObject);

begin

shape1.Left:=random(clientwidth-shape1.Width);

shape1.Top:=random(clientheight-shape1.Height);

end;

neće se desiti da krug izađe iz forme.

Ako želimo da ubrzamo prikazivanje kruga, smanjimo interval.

Vežba sa oblicima (Shape komponenta)

1 коментар

 

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.

Rad sa slikama

1 коментар

 

 

Urađena vežba se može skinuti sa sledećeg linka

clip_image002Na formi se nalaze dve Image komponente. U jednoj je postavljena slika u toku dizajna (properties, pictures). U drugu komponentu se učitavaju slike u toku izvršavanja aplikacije (LoadFromFile).

U memo komponentu se učitavaju dva tekstualna fajla, ’ucitavanje.txt’ i ’svojstva.txt’, u kojima je opisan način učitavanja slika i neka bitna svojstva Image komponente.

P.S. OpenDialog je postavljen na formu, ali se ne koristi.

Kod:

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.bik1Click(Sender: TObject);

begin

image2.Picture.LoadFromFile(‘maske\bik.jpg’);

label2.Caption:=’Bik’;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

memo1.Visible:=false;

button1.Visible:=false;

end;

procedure TForm1.Imagesvojstva1Click(Sender: TObject);

begin

memo1.Visible:= true;

button1.Visible:=true;

memo1.Lines.LoadFromFile(‘svojstva.txt’);

end;

procedure TForm1.ljubicica1Click(Sender: TObject);

begin

image2.Picture.LoadFromFile(‘maske\ljubicica.jpg’);

label2.Caption:=’ljubicica’;

end;

procedure TForm1.meda1Click(Sender: TObject);

begin

image2.Picture.LoadFromFile(‘maske\meda.jpg’);

label2.Caption:=’Meda’;

end;

procedure TForm1.ucitavanjeslike1Click(Sender: TObject);

begin

memo1.Visible:=true;

button1.Visible:=true;

memo1.Lines.LoadFromFile(‘ucitavanje.txt’);

end;

end.

Vežba Muzeji

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

clip_image002Na formi se nalazi jedna Image komponenta i jedna memo komponenta (potrebno u properties izabrati odgovarajući skrol bar). U meniju imamo meni muzeji sa opcijama par poznatih muzeja, i građevine sa opcijama par poznatih građevina. Izborom neke opcije u Image komponentu se učitava odgovarajuća slika, a u memo tekstualni fajl. I naravno u jednoj labeli prikazati o kojoj se građevini radi.

Kod ove vežbe je najbitnije pravilno usnimiti slike i tekstove, i u kodu navesti tačnu adrese fajla koji se učitava.

clip_image004

Ovo je slika sadržaja foldera gde je snimljen projekat čiji je kod prikazan ispod. U folderu slike se nalaze sve slike, a u folderu tekstovi svi tekstovi.

Kod :

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BigBen1Click(Sender: TObject);

begin

memo1.Visible:=true;

memo1.Lines.LoadFromFile(‘tekstovi\bigben.txt’);

image1.Picture.LoadFromFile(‘slike\big-ben.jpg’);

label1.Caption:=’Big Ben – London’;

end;

procedure TForm1.Ermita1Click(Sender: TObject);

begin

memo1.Visible:=true;

memo1.Lines.LoadFromFile(‘tekstovi\ermitaz.txt’);

image1.Picture.LoadFromFile(‘slike\ermitaz.jpg’);

label1.Caption:=’Ermitaž – Sankt Peterburg’;

end;

procedure TForm1.Keopsovapiramida1Click(Sender: TObject);

begin

memo1.Visible:=true;

memo1.Lines.LoadFromFile(‘tekstovi\piramida.txt’);

image1.Picture.LoadFromFile(‘slike\piramida.jpg’);

label1.Caption:=’Keopsova piramida – Giza’;

end;

procedure TForm1.Koloseum1Click(Sender: TObject);

begin

memo1.Visible:=true;

memo1.Lines.LoadFromFile(‘tekstovi\koloseum.txt’);

image1.Picture.LoadFromFile(‘slike\koloseum.jpg’);

label1.Caption:=’Koloseum – Rim’;

end;

procedure TForm1.Luvr1Click(Sender: TObject);

begin

memo1.Visible:=true;

memo1.Lines.LoadFromFile(‘tekstovi\luvr.txt’);

image1.Picture.LoadFromFile(‘slike\luvr.jpg’);

label1.Caption:=’Luvr – Pariz’;

end;

procedure TForm1.Prado1Click(Sender: TObject);

begin

memo1.Visible:=true;

memo1.Lines.LoadFromFile(‘tekstovi\prado.txt’);

image1.Picture.LoadFromFile(‘slike\prado.jpg’);

label1.Caption:=’Prado – Madrid’;

end;

end.

Vežba Snimanje i otvaranje tekstualnog fajla

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

clip_image002Na formi se nalaze OpenDialog (od), SaveDialog (sd), ListBox (ListBox1), memo komponenta (memo1), meni komponenta, edit polje, dugme i dve labele. Potrebno je uneti ime i prezime u edit, iz liste izabrati smer i potvrdom na dugme ok u memo polje dodati učenika. Kada se unesu svi učenici, spisak treba snimiti kao tekstualni fajl. U meniju podaci se nalaze opcije snimi, snimi kao i otvori. Izborom opcije snimi kao fajl se snima pod novim imenom, opcija snimi omogućuje snimanje nekih promena na postojećem fajlu, a opcija otvori omogućava otvaranje postojećeg fajla pomoću proyora Open.

Kod:

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

memo1.Lines.Add(edit1.Text+’ ‘+listbox1.Items[listbox1.ItemIndex]);

button1.Enabled:=false;

edit1.SetFocus;

end;

procedure TForm1.Edit1Change(Sender: TObject);

begin

button1.Enabled:=true;

end;

procedure TForm1.otvori1Click(Sender: TObject);

begin

if od.Execute then begin

memo1.Lines.LoadFromFile(od.FileName);

sd.FileName:=od.FileName;

end;

end;

procedure TForm1.snimi1Click(Sender: TObject);

begin

if sd.FileName<>“ then

memo1.Lines.SaveToFile(sd.FileName)

else

snimikao1.Click;

end;

procedure TForm1.snimikao1Click(Sender: TObject);

begin

if sd.Execute then

memo1.Lines.SaveToFile(sd.FileName);

end;

end.

Ефекти временске осе у Flash-u

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

Time line Efekti

Ugradjene efekte vremenske ose možemo primeniti na sve objekte: linije i oblike koji mogu da se uredjuju, grupisane objekte, blokove teksta, simbole i bit mape (ako efekat primenjujemo na negrupisane objekte, tekst, flash će ih sam pretvoriti u simbole).

Nalaze se u glavnom meniju, insert, timeline effects.

Blur

Ovim efektom menja se providnost, položaj i veličina objekta kako bismo postigli da objekat izgleda nejasno i zamućeno.

parametri koje možemo menjati u prozoru Blur:

· clip_image002Effect Duration – Broj kadrova koje će efekat zahvatiti tj. koliko će trajati.

· Resolution – Koliko kopija slike hoćemo da Flash prikaže da bi se dobio efekat zamućenja. Što ih je više, efekat je apstraktniji.

· Scale – Kakve će biti dimenzije slike pre nego što program počne da je zamućuje, izraženo u procentima veličine prvobitne slike.

· Allow Horizontal Blur – Ako unesemo znak za potvrdu pored ove opcije Flash pomera objekat ulevo i udesno.

· Allow Vertical Blur – Ako unesemo znak za potvrdu pored ove opcije Flash pomera objekat nagore i nadole.

· Direction of Movement – Ovde zadajemo smer u kome će Flash zamutiti sliku

Distibuted Duplicate

Pomoću ovog efekta kopiramo objekat i njegove kopije umećemo na scenu, smeštajući ih po pravoj liniji. Treba da izaberemo ugao prave linije i da zadamo koliko će biti rastojanje izmedju objekata i hoće li kopije biti različitih boja.

clip_image004Parametri:

· Number of Copies – Ovde zadajemo Flashu koliko kopija prvobitnog objekta da prikaže.

· Offset Distance – Zadajemo rastojanje u pikselima izmedju susednih kopija i u kom smeru da budu postavljene.

· Offset Rotation – Zadajemo Flash-u koliko daleko da rotira svaku narednu kopiju u odnosu na prethodnu.

· Offset Start Frame – Zadajemo Flash-u koliko sporo da prikazuje nove kopije, pri čemu veće brojeve unosimo za sporije prikazivanje.

· Exponential Scaling/Linear Scaling, Lock icon, Scale – Flash-u možemo zadati da suzi ili proširi kopiju koju prikazuje na osnovu prethodne kopije (Exponential Scaling) ili prvobitnog objekta (Linear Scaling). Kada pritisnemo sličicu katanca, možemo da unesemo pojedinačne procente za promenu veličine horizontalne (X) i vertikalne (Y) dimenzije objekta. Kada ponovo pritisnemo sličicu, procentualna vrednost (Scale) ponovo je jedinstvena za ceo objekat.

· Change Color, Final Color, Final Alpha – Kada unesemo znak za potvrdu pored opcije Change Color, Flash prikazuje svaku kopiju u nešto drugačijoj boji, počev od boje i providnosti prvobitnog objekta, a završno sa bojom koju smo izabrali pomoću birača boja Final Color i providnošću koju smo izabrali pomoću klizača Final Alpha.

Expand

Ovim efektom postižemo da se objekti razmiču (šire) ili zbijaju (skupljaju).

clip_image006

Parametri:

· Effect Duration – Trajanje efekta.

· Expand – Da se uveća objekat

· Squeeze – Da se umanji objekat

· Both – Zadajemo Flash-u da naizmenično primenjuje širenje i skupljanje.

· Direction of Movement – Zadajemo smer širenja ili skupljanja.

· Shift Group Center by (X,Y) – Širi ili sužava, horizontalno ili vertikalno, u zavisnosti kako smo izabrali.

· Fragment Offset – Odredjuje medjusobno rastojanje objekata prilikom širenja ili skupljanja.

· Change Fragment Size by (Height, Width) – Zadajemo Flash-u da raširi ili skupi same objekte pri širenju ili skupljanju.

Explode

Kada primenimo ovaj efekat na grafički element, on izgleda kao da je prsnuo.

· clip_image008Effect Duration – Trajanje efekta.

· Direction of Explosion – Zadajemo smer rasprskavanja.

· Arc Size (X,Y) – Zadajemo koliko daleko komadići lete horizontalno ili vertikalno.

· Rotate Fragments by – Zadajemo koliko daleko u pikselima se rotira svaki komadić.

· Change Fragment Size by (X,Y) – Zadajemo koliko će se raširiti ili skupiti svaki komad tokom rasprskavanja.

· Final Alpha – Zadajemo koliko će komadići biti providni pri kraju sekvence rasprskavanja.

Transform

Za pravljenje međuoblika

clip_image010duration: trajanje efekta

Change position: određujemo za koliko piksela po x i po y osi treba da se pomeri objekat

Scale: ako želimo da se objekat na kraju transformacije uveća/umanji

Spin: ako želimo da se vrti unosimo kolkio puta

Change color ako je uključeno, promeniće se boja objekta (mostepeno) u onu koju izaberemo

Alpha: da povećamo transparentnost

Motion ease: možemo usporiti kretanje na početku ili na kraju efekta

Transition

Pomoću ovog efekta možemo napraviti dva prelaza:

· clip_image012Fade in/Fade out – Objekat je na početku providan, da bi postepeno postajao neprovidan i obrnuto.

· Wipe – Objekat se pojavljuje na ekranu deo po deo, kao da se iscrtava. Možemo isprobati ovaj efekat i to na tekstu:

  • Effect Duration – Trajanje efekta.
  • In/Out – Kada unesemo znak za potvrdu pored opcije In, Flash prvo prikaže providnu verziju objekta, koji se zatim postepeno pojavljuje na sceni. A kada unesemo znak za potvrdu pored opcije Out, onda je proces obrnut.
  • Fade – Dodajemo objektu providnost ili neprovidnost.
  • Wipe – Zadajemo Flash-u da napravi da se objekat pojavljuje ili nestaje deo po deo.da se objekat pojavljuje ili nestaje deo po deo.
  • Direction Arrows – Menjamo pravac kretanja efekta.
  • Motion Ease – Ovde podešavamo koliko će Flash jednoobrazno da primeni efekat (npr. kad je broj negativan, Flash počinje polako, pa ubrzava i obrnuto).

Menjanje efekata:

Da bi izmenili postojeći efekat, idemo na desni klik, Timeline effects, edit effects

Napomena: da bi se pri izradi efekta u prozoru videla promena, mora se pritisnuti Update preview