### **1.UVOD**: **Komponente**

  

Komponente su osnovni elementi aplikacije. Projektovanje aplikacija se sastoji od izbora određenog broja komponenati i definisanju kako one deluju jedna na drugu.
Većina komponenti može da se pronađe na paleti komponenata u glavnom prozoru Delphija.
Komponente mogu da budu: vizuelne, nevizuelne, upravljačke. upravljačke komponente sa prozorom, upravljačke komponente bez prozora. 

  

#### *1.1 Svojstva komponenata*

  

Svojstva (properties) su parametri čije vrednosti određuju trenutno stanje komponente. Neka svojstva su raspoloživa za vreme projektovanja a neka samo za vreme izvršenja aplikacije. Postoje i svojstva čije su vrednosti dostupne (mogu se očitati) ali se ne mogu promeniti.
Svojstva mogu da budu tipa: integer, string, boolean (true,false), set, svojstva koja se unose pomoću prozora za dijalog.
Najznačajnija svojstva komponenata:

##### I. Ime komponente

Name (ime) –nalazi se u svojstvu tipa string. Koristi se za pristup datoj komponenti. Svi obrasci istog projekta moraju imati različita imena. Sve komponente unutar istog obrasca moraju da imaju različita imena. Imena ne treba menjati za vreme izvršenja aplikacije.

  

##### II. Vidljivost i upotrebljivost komponenata

Vidljivost komponente kontroliše se svojstvom Visible (vidljivo) tipa Boolean. Vrednost True označava da komponentu treba prikazivati na ekranu, vrednost False da komponentu ne treba prikazivati.
Upotrebljivost komponente tj. da li žiža može da se pomeri na komponentu, kontroliše se svojstvom Enabled (omogućeno) tipa Boolean. Ako je vrednost True komponenta je upotrebljiva, inače nije.

##### III. Položaj i veličina komponenata

Položaj komponente određuje se svojstvima:
a. Top (vrh);
b. Left (levo);
To su koordinate gornjeg levog temena komponente u odnosu na gornji levi ugao radnog prostora roditelja posmatrane komponente.

  

Veličina komponente iskazuje se pomoću svojstava:
c. Height (visina);
d. Width (širina);
Veličina radnog prostora komponente iskazuje se pomoću svojstava:
e. ClientHeight (visina klijenta);
f. ClientWidth (širina klijenta);
g. Constraints (ograničenja);
h. Align (poravnjanje);
i. Anchors (relativan položaj u odnosu na ivice roditelja).

##### IV. Natpis komponente

To je tekst kojim se označava data komponenta.
Pedstavlja se svojstvom Caption (natpis) tipa String. Podrazumevana vrednost natpisa poklapa se sa imenom (Name). Može da se postavlja za vreme projektovanja i da se menja za vreme izvršenja aplikacije. U upravljačkim komponentama ispred jednog znaka u natpisu može da se stavi znak & i tako obeležen znak je prečica.

##### V. Izgled komponente

Svojstvo Ctl3D (trodimenzionalna komponenta) tipa Boolean s podrazumevanom vrednošću True označava prikazivanje sa trodimenzionalnim efektima, a vrednost False označava prosto dvodimenzionalno iscrtavanje.
Svojstvo ParentCtl3D (trodimenzionalnost roditelja) tipa Boolean s vrednošću True označava da komponenta preuzima vrednost svojstva Ctrl3D od svog roditelja. Vrednost False da se broj dimenzija komponente podešava nezavisno od roditelja.
Svojstvo BorderStyle (stil ivica) s vrednošću bsSingle (jednostruka) označava iscrtavanje okvira čije su ivice jednostruke linije, a vrednost bsNone (ništa) označava odsustvo okvira.
Svojstvo BevelKind (vrsta kosina) određuje da li se oko komponente prikazuju kosine ili ne.
Svojstvo BevelOuter (spoljašna kosina).
Svojstvo BevelInner (unutrašnja kosina).
Svojstvo Cursor (pokazivač) određuje izgled pokazivača miša.
Svojstvo Color (boja) određuje boju komponente.
Svojstvo Font (font) određuje osobine slova.

  

#### *1.2. Metode komponenata*

A. constructor Create –stvori
Ova metoda je konstruktor za sve komponente. 
Po stvaranju komponente treba podesiti svojstva te komponente ili naredbom ili odgovarajućom metodom (posebno svojstvo Name). Da bi nova komponenta bila upotrebljiva treba dodeliti vrednost svojstvu Parent (roditelj). Najčešće se navede vrednost Self čime se tekući obrazac proglašava vlasnikom. Primer:
NovoDugme:=TButton.Create (Self);
NovoDugme.Parent:=self;
B. procedure Free –oslobodi
Ovom metodom uništava se komponenta i oslobađa memorija.
C. procedure Show -prikaži
Ova metoda čini da tekuća komponenta postane vidljiva i to postiže postavljanjem vrednosti svojstva Visible na True.
D. procedure Hide -sakrij
Ova metoda čini da komponenta postane nevidljiva postavljanjem vrednosti Visible na False.
E. procedure SetBounds (Levo, Gore, Širina, Visina: Integer); -postavi granice
Ova metoda određuje položaj i veličinu komponente odjednom.

#### *1.3. Događaji komponenata*

##### I. Događaji pri pomeranju žiže

Kada se žiža pomeri na neku komponentu, desiće joj se događaj OnEnter (prilikom ulaska), a kada se žiža pomeri na drugu komponentu, događaj OnExit (prilikom izlaska).

##### II. Događaji sa mišem

Najčešće korišćen događaj pomoću miša jeste pritisak na komponentu mišem OnClick (prilikom pritiska mišem).
Drugi često korišćen događaj je dvostruki pritisak komponente mišem OnDblClick (prilikom dvostrukog pritiska mišem).
Sledeća dva događaja pomoću miša jesu pritiskanje nekog tastera miša (bez otpuštanja) OnMouseDown (prilikom pritiskanja miša) i OnMouseUp (prilikom otpuštanja miša).

##### III. Događaj sa tastaturom

Osnovni događaj koji može da se proizvede pomoću tastature jeste pritisak i otpuštanje nekog tastera na tastaturi OnKeyPress (prilikom pritiska na taster) i OnKeyUp (prilikom otpuštanja tastera).

  

#### *1.4. Konverzije*

Konverzije se koriste za pretvaranje jednog tipa podatka u neki drugi tip.

StrToInt( ) – pretvara string u integer
StrToFloat( ) – pretvara string u realan broj
IntToStr( ) – pretvara integer u string
FloatToStr( ) – pretvara realan broj u string
TimeToStr( Time) – pretvara vreme u string
DateToStr( Date) – pretvara datum u string.

### **2.Okviri za tekst**

U okvire za tekst unosi se tekst preko tastature za vreme izvršavanja aplikacije. Mogu da se podele na jednoredne i višeredne.
Pored svojstva uobičajenih za komponente imaju i specifična svojstva.

#### 2.1 Svojstva

  

• Svojstvo MaxLenght (najveća dužina) –tipa Integer određuje najveći broj znakova koji korisnik može da unese u okvir za tekst.
• Svojstvo ReadOnly (samo čitanje) –tipa Boolean s vrednošću True označava da korisnik u dati okvir za tekst na može da unese tekst. Podrazumevana vrednost False označava da korisnik može da menja sadržaj okvira.
• Svojstvo Modified (promenjen) –tiša Boolean s vrednošću True označava da je sadržaj okvira za tekst menjan od stvaranja komponente, vrednost False označava da u međuvremenu sadržaj teksta u okviru nije menjan.
• Svojstvo AutoSelect (automatsko obeležavanje) –tipa Boolean s vrednošću True označava da se sadržaj okvira automatski obeleži kada se žiža pomeri na komponentu, a vrednost False da se to ne radi.
• Svojstvo HideSelection (sakrij obeležavanje) –tipa Boolean s vrednošću False označava da obeleženi deo teksta unutar okvira ostaje obeležen i kada se žiža pomeri. Podrazumevana vrednost True označava da se obeležavanje poništava.
• Svojstvo SelStart (početak obeležavanja) –tipa Integer predstavlja redni broj prvog znaka u obeleženom delu teksta.
• Svojstvo SelLenght (dužina obeležavanja) –tipa Integer predstavlja broj znakova u obeleženom delu teksta.
• Svojstvo SelText (obeleženi tekst) –tipa String predstavlja obeleženi deo teksta unutar okvira. Pomoću njega, iz programa može da se pristupi obeleženom delu teksta.
Svojstva SelStart, SelLenght, SelText stoje na raspolaganju samo za vreme izvršenja programa. 

#### 2.2 Metode

 procedure Clear; -očisti (izbacuje sav tekst iz okvira za tekst);
 procedure SelectAll; -obeleži sve (obeležava celokupan tekst);
 procedure ClearSelection; -očisti obeleženi deo (uklanja obeleženi deo teksta);
 procedure CopyToClipboard; -kopiraj u Clipboard (smešta obeleženi deo teksta iz okvira u Windows Clipboard);
 procedure CutToClipboard: -iseci u Clipboard (smešta obeleženi deo teksta u Windows Clipboard i posle toga ga briše iz okvira za tekst.
 procedure PasteFromClipboard; -umetni iz Clipboarda (na mesto pokazivača teksta umeće sadržaj Windowsovog Clipboarda u okvir za tekst.

### **3.Edit (okvir za tekst)**

Okvir za tekst omogućuje unošenje jednog reda teksta preko tastature i numeričkih odataka.

Label, Button, Edit polje
Za njegovo umetanje u obrazac za vreme projektovanja postoji dugme prečica Edit, na stranici Standard, na paleti komponenata.
a) Svojstvo Text (tekst) –tipa String je glavno svojstvo koje sadrži tekst u posmatranom okviru. Njegova vrednost može da se postavi za vreme projektovanja i da se promeni za vreme izvršavanja aplikacije.
b) Svojstvo CharCase (veličina slova) –tipa nabrajanja određuje da li se u tekstu prihvataju mala i velika slova onako kako se unose preko tastature.
c) Svojstvo PasswordChar (znak za lozinku) –tipa Char određuje znak koji se na ekranu prikazuje u okviru za tekst kada se unosi lozinka.

### **4.MaskEdit (okvir za tekst s maskom)**

  

Okvir za tekst s maskom ima istu namenu i izgled na ekranu kao i običan okvir za tekst a razlikuje se po tome što može da nametne tačno određeni format za unošenje podataka (npr. samo cifre).
Za njegovo umetanje u obrazac postoji dugme prečica MaskEdit, na stranici Additional, na paleti komponenata.
Svojstvo EditMask (maska za uređivanje) tipa String definiše masku za formatizovanje podataka tokom unošenja preko tastature.

### **5.Reference**

1.^ a b "Delphi XE2 Feature Matrix" (PDF). Retrieved 2012-03-05.
  

2.^ "FireMonkey Platform Prerequisites: iOS Requirements on Mac". Docwiki.embarcadero.com. 2011-12-27. Retrieved 2012-03-05.
  

3.^ a b c d e f By: Tim DelChiaro. "Embarcadero: Firemonkey Q & A, undated but copyright 1994-2010". Edn.embarcadero.com. Retrieved 2012-03-05.
  

4.^ Intersimone, David. "Borland History: Why the name "Delphi?"". Retrieved 2013-1-7.
  

5.^ David Intersimone. "Press Release: Borland forming CodeGear to focus exclusively on developer productivity". Retrieved 2013-1-7.
  

6.^ Brian Long. "VCL versus CLX".
  

7.^ Nick Hodges. "Top ten reason to upgrade from Delphi 7".
  

8.^ Tim Anderson. "Borland's quality problems and Delphi 2005". Retrieved 2010-06-16.
  

9.^ "Embarcadero Prism XE2 downloads". Downloads.embarcadero.com. Retrieved 2012-03-05.
  

10.^ "News Briefs: December 15, 2008". SDTimes (BZ Media LLC). December 15, 2008. Retrieved 2011-08-24.
  

11.^ "Delphi 2010 What’s New". Retrieved 2006-11-28.
  

12.^ Jon Udell, Crash of the Object-Oriented Pascals, BYTE, July, 1989.
  

13.^ M.I.Trofimov, The End of Pascal?, BYTE, March, 1990, p.36.
  

14.^ Pascal ISO 7185:1990 6.10.