UVOD. RAD U Delphiju Pri startovanju Delphija otvara se radno okruženje kao na slici. Delphi okruženje se sastoji od sledećih delova:

Similar documents
Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Podešavanje za eduroam ios

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

Otpremanje video snimka na YouTube

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

1. Instalacija programske podrške

Babylon - instalacija,aktivacija i rad sa njim

Direktan link ka kursu:

SAS On Demand. Video: Upute za registraciju:

LabVIEW-ZADACI. 1. Napisati program u LabVIEW-u koji računa zbir dva broja.

Uvod u relacione baze podataka

Tutorijal za Štefice za upload slika na forum.

Upute za korištenje makronaredbi gml2dwg i gml2dgn

3D GRAFIKA I ANIMACIJA

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

Programiranje za internet zimski semestar 2013/2014. Java kroz primjere (skripta je u fazi izradi)

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

Pokretanje (startovanje) programa Microsoft Word

Primer-1 Nacrtati deo lanca.

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

Nejednakosti s faktorijelima

za STB GO4TV in alliance with GSS media

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima

MASKE U MICROSOFT ACCESS-u

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports.

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

Poglavlje 1 POČETAK RADA SA MICROSOFT OFFICE-OM 2016

mdita Editor - Korisničko uputstvo -

Windows Easy Transfer

Uvod u MS Word. Nova znanja. Novi pojmovi

Ikone za brz pristup alatima. Slovne oznake kolona. ime. Traka sa alatima. Dugme Office Brojčane oznake redova

Pravljenje Screenshota. 1. Korak

- Vežba 3 - UVOD U FLASH ANIMACIJA FRAME-BY-FRAME SHAPE TWEEN MOTION TWEEN

Office 365, upute za korištenje elektroničke pošte

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09

Desna strana menija sadrži spisak nedavno otvaranih dokumenata.

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

STRUČNA PRAKSA B-PRO TEMA 13

UVOD. Uvod. Ključna pitanja: Koji objekti postoje u Toolbox-u? Koje metode Toolbox objekata postoje?

PowerPoint deo Umetanje oblika (shapes)

INFORMATIKA II AutoCAD 9. deo. Rudarsko-geološki fakultet Rudarski odsek

Port Community System

KatzeView Uputstvo. verzija Novi Sad Josifa Marinkovića 44. Tel: +381 (0) Fax: +381 (0) Mob: +381 (0)

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o.

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Struktura i organizacija baza podataka

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

PROJEKTNI PRORAČUN 1

IZRADA TEHNIČKE DOKUMENTACIJE

Microsoft Office PowerPoint 2007 korak po korak

Klasterizacija. NIKOLA MILIKIĆ URL:

Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll)

Deo II. Priprema datoteke s podacima

EKONOMSKI FAKULTET UNIVERZITETA U BEOGRADU copyright by A.Bradi & G. Petri, as. Windows 98.

1. MODEL (Ulaz / Zadržavanje / Stanje)

Uvod u programiranje u Turbo Pascalu 7 (1)

4.1 Korišćenje aplikacije Ćelije Rukovanje radnim listovima... 32

VBA moduli. mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice

SKRIPTA ZA VEŽBE IZ PREDMETA ELEKTRONSKO POSLOVANJE

Mindomo online aplikacija za izradu umnih mapa

EUnet dial-up konfigurator

Projekat iz predmeta Računarska elektronika

Naredba je uputa računalu za obavljanje određene operacije.

Programiranje kroz aplikacije. Subprocedure Opseg promenljivih Excel VBA objektni model

16 IZRADA WEB STRANICA

MICROSOFT WORD. Word pokrećete iz START - PROGRAMS menija ili klikom na prečicu na desktopu. Ruler / Lenjir. Tekstualni kursor.

VEŽBA 4 TOOLS - RAD SA ALATIMA

Bušilice nove generacije. ImpactDrill

DZM Aplikacija za servise

BENCHMARKING HOSTELA

Uputstvo za korišćenje Asseco WEB 3.0 aplikacije za Fizička lica

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

2. Kreiranje nove baze podataka

OTVARANJE BAZE PODATAKA U MICROSOFT ACCESSU XP

P R O J E K T N I R A D

Windows Live Movie Maker

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

Najnoviju verziju uputa skinite na: Stranica. barxprint upute (verzija 26/04/2012)

Jelena Radić, Bane Popadić, Marko Gecić, Vladimir Milosavljević, Vladimir Popadić, Vladimir Rajs, Jovan Bajic Softverski praktikum

Programiranje. Nastava: prof.dr.sc. Dražena Gašpar. Datum:

OSNOVI PRIMENE RAČUNARA PROGRAM NASTAVE U LETNJEM SEMESTRU

Posmatrani i objekti posmatraci

U sledećem koraku birate traženi program:

IMPLEMENTACIJA PODLOGE ZA SARADNJU KROKI ALATA SA ALATIMA ZA UML MODELOVANJE OPŠTE NAMENE

Uputstvo za upotrebu kvalifikovanog elektronskog sertifikata (KES)

Upute za upotrebu softvera

OSNOVI PRIMENE RAČUNARA RASPORED U LETNJEM SEMESTRU Nedelja Datum Tema Prvi čas - Uvod

Primer izrade dinamičkog sajta

Transcription:

UVOD Delphi je proizvod firme Borland, danas poznate kao Inprise. Ova firma je poznata po programskim jezicima kao što su Pascal, C, C++... Ustvari, Delphi je objektni Pascal, dakle proširen na 32-bitne sisteme. Delphi je dobio ime prema legendarnom grčkom proročištu, a i njegov zaštitni znak je upravo grčki hram. Još jedna osobina vezana za ovo je da svakom exe file-u automatski daje ikonu baklje. Delphi je vrlo moćan alat, izuzetno jasan i matematički definisan.. Svaka akcija u Windows-u se može napraviti u Delphiju, tako da se jedan celi operativni sistem može napraviti u Delphiju. Štaviše, sam Delphi je napravljen u Delphiju. TakoĎe je i kompletan alat. Naime, moguće je manipulisati bazama podataka, SQL-om, HTML-om, game driverima i sl. Njegova najznačajnija osobina je kompatibilnost. Sam programer može kreirati nove komponente i tako prilagoditi Delphi samom sebi. RAD U Delphiju Pri startovanju Delphija otvara se radno okruženje kao na slici. Delphi okruženje se sastoji od sledećih delova: - glavnog menija i traka sa alatima - palete komponenti (Component palette) - Form Designer (dizajner forme) - Code Editor (editor programa) - Object Inspector (inspektor objekata) - Code Explorer (istraživač programa) - Project Manager (administrator projekta) PROJEKTI Dok se piše Delphi aplikacija dosta toga se dešava u pozadini. Grupa projekata se koristi za administriranje grupom projekata pisanih na Delphiju, koji zajedno formiraju kompletan softverski proizvod. Delphi upravlja projektima koristeći nekoliko datoteka za podršku. Kada prvi put kreirate projekt, Delphi će kreirati najmanje četiri datoteke (podrazumeva se tipična Delphi GUI aplikacija): - Izvorni kod projekta. - Junit glavne forme. - Resursna datoteka glavne forme. - Resursna datoteka projekta 1

Tipovi datoteka koji se koriste u Delphiju Nastavak Opis...pos pas-izvorni kod jezika Object Pascal. Za svaki junit stoji jedna ovakva datoteka, kao i bilo koja datoteka izvornog koda koju dodajete projektu..dfm Datoteka forme. Ova datoteka je u stvari skrivena binarna resursna datoteka (.res). Ona predstavlja opis forme i svih njenih komponenti. Svaka forma ima svoju.dfm datoteku..dsk Datoteka radne površine projekta. Ova datoteka čuva podatke o načinu na koji se prikazuje radna površina nakon poslednjeg zapisivanja (odnosno zat varanja) projekta..dof Datoteka opcija projekta. Ova datoteka sadrži opcije projekta koje su definisane u dijalogu Project Options..exe Finalni izvršni program..cfgkonfiguraciona datoteka projekta. Ova datoteka primarno sadrži trenutno odabrane opcije prevodioca i programa za povezivanje, koje se odnose na tekući projekt..dcu Prevedena binarna objektna datoteka. Ove datoteke kreira prevodilac u toku prevoďenja vaših Object Pascal junita..dpr Izvorni kod projekta..res Prevedena binarna resursna datoteka. Zadatak: 1. Kreirajte nov Folder na disku 2. Otvorite Delphi 3. File-New Application (na ekranu se pojavljuje prazna forma) 4. File-Save All i upišite naziv Junita, i naziv projekta 5. Odaberite opciju Project- Build Test 6. File-Close All 7. PronaĎite svoj Folder i primetićete nekoliko datoteka (obično 8). OBJEKTI Objekti su ustvari suština Delphija. Nema Delphija bez objekata. Naime, sve što vidite u Delphiju i sa čime radite su objekti. Tako, recimo, čim otvorite Delphi, dobijate prvi i glavni objekt sa kojim ćete raditi, a to je Form. Form je ustvari prozor na koji se stavljaju ostali objekti. Naravno, Delphi ne bi bio to što jeste da se objektima ne može manipulisati. Vrlo važna odlika objekata je nasljeďivanje. Naime, kad god se jedan objekat stavi na drugi ( npr. Label na Form ) ovaj prvi postaje 'dete' ( engl. Child ), a drugi 'roditelj' ( engl. Parent ), te će, po toj logici, prvi objekt naslediti neke osobine od drugog ( npr. boju, font... ). Važno je napomenuti da broj 'dete' objekata uopšte nije ograničen za jedan 'roditelj' objekt. To dopušta itekako veliku slobodu programeru. Kao i sve u Delphiju, programer može sam stvarati objekte po svom nahoďenju i svojim željama. Najvažnije na kraju: za svaki objekt vezane su njegove osobine ( engl. Properties ). Pomoću njih se manipuliše objektima. Osobine se menjaju na dva načina. Onaj koji se prvi nauči je pomoću Object Inspectora. To je prozor koji se nalazi sa leve strane i uvijek je otvoren. On sadrži osobine svih objekata koje trenutno programer koristi, ali je samo jedna vidljiva i to ona koja je pod fokusom ( na koju je kliknuto mišem ). Tako recimo Form, kao glavni objekt, sadrži sledeće osobine: 2

Action Izaberete neku proceduru koja će biti obavljena pri otvaranju prozora ActiveControl Pokazuje objekat koji je aktivan nakon otvaranja prozora Align Prijanjanje uz neku od ivica ekrana Anchors Pokazuje kako je objekat vezan za 'roditelj' objekat AutoScroll OdreĎuje da li će se automatski pojaviti scrollbarovi ako je to potrebno AutoSize OdreĎuje da li će objekt tako prilagoditi veličinu da nema slobodnog prostora BiDiMode Pravac objekata BorderIcons Ikone poput minimize, maximize, close BorderStyle OdreĎuje stil prozora ( npr. Sizeable - moguće je mijenjati veličinu u radu ) BorderWidth Širina okvira Caption Naslov ( npr. u ovom prozoru je naslov 'Programiranje: Osobine...' ) ClientHeight Visina 'korisnog' dela prozora ClientWidth Širina 'korisnog' dela prozora Color Boja Constraints Ograničenja ( npr. visine ) Ctl3D OdreĎuje da li će objekat biti 3D renderisan Cursor OdreĎuje kakav će kursor biti iznad objekta DefaultMonitor OdreĎuje koji objekat će biti glavni DockSite OdreĎuje da li je objekat vezan DragKind OdreĎuje vrstu povlačenja objekta DragMode OdreĎuje način povlačenja objekta Enabled Pokazuje da li je objekat 'živ' Font OdreĎuje font na objektu FormStyle Stil prozora ( npr. MDIChild - prozor unutar drugog prozora ) Height Visina objekta ( dimenzija po y-osi ) HelpContext Dio Help file koji će biti prikazan po pritisku na 'What's this?' HelpFile OdreĎuje koji file služi kao Help file Hint Tekst koji se nalazi u žutom okviru koji služi kao objašnjenje HorzScrollBar OdreĎuje osobine horizontalnog scrollbara Icon Ikona u gornjem lijevom uglu prozora KeyPreview OdreĎuje da li će objekat reagovati na tastaturu prije aktivne kontrole Left Udaljenost objekta od lijeve strane 'roditelj' objekta ( ovdje ekrana ) 3

Menu Pokazuje na meni tog prozora Name Ime objekta ( automatski je Form1, ali se može mijenjati ) ObjectMenuItem Pokazuje na jedan dio menija OldCreateOrder OdreĎuje kreiranje i uništavanje objekta ParentBiDiMode NasljeĎivanje BiDiMode ParentFont NasljeĎivanje fonta PixelsPerInch Broj tačaka po inču PopupMenu OdreĎuje popup meni za objekat Position OdreĎuje poziciju prozora ( npr. ScreenCentar - uvijek u centru ekrana ) PrintScale Skala za printanje Scaled Skaliranje ShowHint OdreĎuje da li će Hint biti prikazan Tag Brojna oznaka objekta Top Udaljenost objekta od gornje strane 'roditelj' objekta ( ovde ekrana ) UseDockManager OdreĎuje korištenje dock managera pri pomeranju prozora VertScrollBar OdreĎuje osobine vertikalnog scrollbara Visible Pokazuje da li je objekat vidljiv Width OdreĎuje širinu objekta ( dimenzija po x-osi ) WindowMenu OdreĎuje meni ako je FormStyle MDIForm WindowState Stanje prozora ( npr. Maximized - starta se maximizovan ) Naravno, nisu iste osobine za sve objekte, ali je princip isti. Drugi način menjanja osobina je menjanje u radu. Ovo je programerski način. Naime, dok program radi programer nema mogućnost menjati osobine pomoću Object Inspectora. Tako recimo ako hoćemo da u toku rada programa, prozor ( npr. Form1 ) promeni visinu ( koja je iznosila npr. 375 ) na 400, treba da ukucamo kod u Junitu npr: Form1.Height := 400; Dakle, prvo upisujemo ime objekta, pa stavljamo tačku. Delphi je toliko razvijen da će automatski izbaciti listu osobina, pa se lako može izabrati Height ( visina ). Poznavatelji Pascal-a prepoznaju ovde standardni način dodeljivanja vrednosti promjenljivoj. Važno je napomenuti da ovaj kod možemo kucati samo kao deo neke procedure. Dvostrukim klikom na objekat automatski ulazimo u kod za objekat-junit. Delphi će postaviti kursor za unos naredbe tačno na mesto gde treba da se nalazi. 4

Zadatak: 1. Kreirajte nov projekat i dajte mu ime. 2. Dizajnirejte formu na sledeći način: Promenite ime forme Form1 u Naslovna - u Object Inspector-u u polje Caption ukucajte novo ime. (pogledajte automatsku promenu u kodu Junit-a) Promenite boju pozadine forme- u Object Inspector-u u polje Color izaberite boju. Promenite dimenzije forme - u Object Inspector-u u polje With i Height unesite brojeve po želji. 3. Sačuvajte projekat u svoj folder i pogledajte šta se desilo! KOMPONENTE Delphi sadrži spektar komponenti koje su podeljene u odvojene kategorije. Standardne komponente uključuju : TButton, TEdit, TListBox, TMemo, TMainMenu, TScrollBar, TPopupMenu, TCheckBox, TRadioButton, TRadioGroup, TGroupBox, TPanel, TActionList. Komponente se postavljaju na formu aktiviranjem ikone iz Palete komponenti. Posle postavke osobine komponenti se mogu menjati pomoću Object Inspector-a. Svaka komponenta u Delphiju treba da ima naziv (Name), koji mora biti jedinstven. Dva svojstva koja se često koriste za prilago avanje korisničkog interfejsa su svojstva Color i Font. Postoji nekoliko svojstava koja su vezana za boju. Svojstvo Color se obično odnosi na boju pozadine komponente. TakoĎe, postoji svojstvo Color za fontove i mnoge druge grafičke elemente. Osim standarnih ponuďenih boja korisnik može dodeliti druge boje. Postoji mnogo načina i evo dva: - Tip svojstva je TColor i ako znate engleske reči onda ih navedite (npr: clblue, clsilver, clred i dr.). - Tip svojstva TColor naznačite brojem RGB inteziteta ($00FF0000-plava, $0000FF00-zelena i dr). Mnoge komponente imaju, takoďe, svojstva ParentColor i ParentFont, koja označavaju da li komponenta treba da koristi boju i font roditeljske komponente, koja je obično formular. KOMPONENTE TEKSTA Komponenta Edit omogućava korisniku da unese jednu liniju teksta, poravnatoj u levo. Za tekst se mogu koristiti i komponente Label i StaticText, ali se one obično koriste za nepromenljivi tekst, kao i za izlaz koji generiše program. Promene se vrše karakteristikom Caption. Komponenta MaskEdit je Edit komponenta kojoj je dodat filter za unos teksta. Ona naznačava da li karakter treba da bude prikazan malim, velikim slovima, ciframa i sl. Npr za unos datuma se koristi poseban format (03/21/98) i ova kontrola definiše tu vrstu unosa. Karakteristika EditMask kontroliše masku koja se koristi. Kada se aktivira polje Value u Object Inspector-u otvara se dijalog prozor (Input MaskEditor) koji omogućava da izaberete jednu od ponuďenih maski ili da kreirate svoju. 5

Komponenta Memo dozvoljava unos više linija teksta, ali omogućava samo jedan font za ceo tekst. Karakteristika Lines iz Object Inspector-a omogućava snimanje sadržaja teksta sa diska i na disk. Karakteristika ScrollBars je jedinstvena za komponentu Memo i omogućuje trake za pomeranje. Komponenta RichText, ne spade u grupu standardnih kotrola, omogućava unos velike količine teksta sa promenljivim fontovima, poravnanjima pasusa i sl. Karakteristike za edit kontrole Opcija Odnosi se na Opis Karakteristike. AutoSelectEdit, MaskEdit Kada je podešeno na True, tekst u okviru edit kontrole će automatski biti označen kada korisnik pritiskom na taster Tab preďe na kontrolu. Generička vrednost: True. AutoSizeEdit, MaskEdit Kada je podešeno na True, edit kontrola će automatski promeniti veličinu kada se fontedit kontrole promeni. U suprotnom, edit kontrola ne menja veličinu prilikom promene veličine fonta. Generička vrednost: True. CharCaseEdit, MaskEdit OdreĎuje da li će edit kontrola prikazivati velika slova (ecuppercase), mala slova (eclowercase) ili normalan tekst (ecnormal). Generička vrednost: ecnormal. HideScrollBars RichEdit Kada je podešena na True, trake za pomeranje će biti prikazane, ukoliko je to potrebno, u protivnom će biti skrivene. Kada je podešena na False, trake za pomeranje će biti prikazane na osnovu vrednosti karakteristike ScrollBars. HideSelection Edit, Memo, RichEdit Kada je podešeno na True, tekst koji je označen neće biti prikazan kao označen prilikom prelaska korisnika na narednu kontrolu pritiskom na taster Tab. Generička vrednost: False. Lines Memo, RichEdit Tekst koji se sadrďi u komponenti. Lines je slučaj klase TStrings. MaxLength sve Definiše maksimalan broj karaktera koje će komponenta moći da sadrži. Ukoliko je vrednost 0, može se uneti neograničena dužina teksta (ograničena samo zahtevima sistema). Kada je podešena na bilo koju vrednost različitu od nule, broj karaktera je ograničen zadatom vrednosti. Generička vrednost: 0. OEMConvert Edit, Memo Podesite ovu karakteristiku na True, kada tekst koji se unosi sadrži naziv datoteke. Generička vrednost: False. PasswordChar Edit, MaskEdit Kada je ova karakteristika podešena na vrednost različitu od ASCII #0, tekst koji unosite će biti prikazan korišćenjem definisanih karaktera. Tekst u okviru edit kontrole neće biti izmenjen.generička vrednost: #0. PlainText RichEdit Kada je podešena na True, RTF (Rich Text Format) datoteke će biti prikazane kao običan tekst bez formatiranja karaktera i paragrafa. Kada je podešena na False 7 Text Edit, MaskEdit Sadrži tekst u okviru komponente. WantReturns Memo, RichEdit Kada je podešena na True, komponenta zadržava karakter za kraj reda i novu liniju koju korisnik unosi u edit kontrolu pritiskom na taster Enter. Kada je 6

podešena na False, karakteri za kraj reda i novu liniju ulaze u formu, ali se ne postavljaju u okviru edit kontrole.. Generička vrednost: True. WantTabs Memo, RichEdit Kada je podešena na True, kada korisnik pritisne taster Tab u edit kontrolu se upisuje karakter tab. Kada je postavljen na False, tab karakteri prelaze na formu, {to omogućava izlazak iz edit kontrole pritiskom na taster Tab. Generička vrednost: False......... Zadatak 1. Otvorite predhodni projekat 2. Iz Palete komponenti izaberite komponentu Label1 (slovo A) i kreirajte na formu. 3. Promenite osobine u Object Inspector-u. Ukucajte tekst po želji (polje Caption) Promenite boju pozadine Label1 u ljubičasto (Color) Promenite vrstu, veliičinu i boju slova (Font). 4. Postavite još neke kontrole za tekst i uočite razlike 5. Sačuvajte izmene u projektu. 6. Pogledajte kod komponenti (dodat je automatski u class TForm) KOMPONENTA Panel Često će vam se dogoditi da imate komponente koje su postavljene u okviru drugih komponenti. Komponenta Panel se obično koristi kao kontejner za druge komponente. Da biste odabrali grupu komponenti u okviru panela, treba da držite pritisnut taster <Ctrl>, dok prevlačite mišem kako bi odabrali komponentu. Paneli se obično koriste za naslove i delove teksta koje treba nagltzle i BorderWidth. Zadatak: KOMPONENTE Button Komponente Button karakterišu osobine: ModalResult, Default, Cansel i Enabled. Button su principu simulira klik miša, pa može da zatvara Form, aktivira aplikaciju i sl. 1. Otvorite nov projekat. 2. Odaberite komponentu Panel u okviru Palete komponenti i postavite je na formu, koristeći metod prevlačenja. Proširite je tako da zauzme veći deo forme. 3. Sada odaberite komponentu Button i postavite šest dugmadi na formu. 4. Izmenite osobine komponenti po želji. 7

JUNIT Pascal juniti Programiranje je više od kucanja programskog koda. Pre svega programiranje je kombinacija planiranja zadatka za programiranje, a zatim kucanja koda koji će izvršavati taj zadatak. Kod koji kucate se upisuje u tekst datoteku. Prevodilac uzima ovu datoteku i prevodi je u mašinski kod koji računar može da razume. Tekst datoteka koju Delphi prevodi u mašinski kod se zove junit (unit). Tipovi junita Delphijeve GUI aplikacije će sadržati najmanje dva junita. Izvorni junit projekta sadrži izvorni kod projekta. Juniti izvornog koda programa imaju nastavak DPR. Drugi tip junita, koji Delphijeve GUI aplikacije sadrže, je junit glavne forme. Junit forme i njegov naziv ukazuju na junit izvornog koda koji mu je pridružen. Ovaj tip junita ima nastavak PAS. Ovaj tip junita ćete u većini slučajeva koristiti u Vašim Delphi programima. Delphijeve GUI aplikacije uvek imaju jedan junit forme (za glavnu formu), ali, takoďe, mogu imati jednu, ili više dodatnih junita formi. Sadržaj junita Delphi juniti moraju pratiti unapred definisan format. Junit mora biti napisan u unapred definisanom formatu da bi prevodilac mogao da čita junit i prevodi kod junita. Juniti Delphi projekta sadrže ključnu reč program, iza kog sledi naziv junita i kod blok koji se nalazi izmeďu ključnih reči i end. Izvorni junit projekta za generički Delphijev projekt izgleda : Izvorni kod projekta za generički Delphijev project. 01: program Project1; 02: 03: uses 04: Forms, 05: Unit1 in.unit1.pas. {Form1}; 06: 07: {$R *.RES} 08: 09: 10: Application.Initialize; 11: Application.CreateForm(TForm1, Form1); 12: Application.Run; 13: end. U liniji 1, ključna reč program identifikuje junit kao glavni izvorni junit programa. Možete videti da se naziv junita, Project1 nalazi iza ključne reči program. (Delphi daje projektu generikči naziv sve dok ne snimite projekt pod nazivom koji ima bolje značenje.) Počev od linije 3 vidite deo koji je identifikovan ključnom reči uses. Iza ključne reči uses se nalaze nazivi junita koje navedeni junit traži da bi mogao da bude preveden. Spisak se završava znakom tačka-zarez. U liniji 7 možete videti direktivu prevodiocu koja pokazuje Delphiju da uključi odgovarajuću resursnu datoteku... Linija 9 sadrži ključnu reč, a linija 13 sadrži ključnu reč end. Zapazite da poslednja ključna reč end u okviru junita iza sebe ima tačku. (Junit može sadržati više blokova koda označenih sa i end, ali samo jedan krajnji end iskaz.) Kod u okviru linija 10, 11 i 12 je kod koji inicijalizuje aplikaciju, kreirajući glavnu formu aplikacije, odnosno startuje aplikaciju. 8

Zadatak 1. Kreirajte još jedan osnovni junit (File/New) i pogledajte kod. Dvostrukim klikom na formu Delphi će prikazati nov junit u editor koda (Code Editor) Prazan Pascal junit. 01: unit Unit2; 02: 03: interface 04: 05: implementation 06: 07: end. Ovaj junit ima dve slične stvari sa junitom koji je predhodno prikazan. Prvo, junit počinje ključnom reči unit iza koje sledi naziv junita Unit2 (opet generički naziv koji kreira Delphi Ključna reč end pojavljuje na kraju oba listinga. Kod u okviru praznog listinga se razlikuje od predhodnog po tome što sadrži delove pod nazivom interface i implementation. Junit koji nije glavni izvorni junit programa mora sadržati deo interface i deo implementation. Prazan Listing se razlikuje od predhodnog i po tome što nema iskaz. Glavni junit programa mora imati oba iskaza i end, ali izvorni junit jedini može sadržati poslednji iskaz end. Odeljak interface. Ova ključna reč označava početak odeljka za interfejs u okviru junita. Odeljak interface je odeljak junita u okviru kog se deklarišu identifikatori koje navedeni junit izvozi. Identifikator za izvoz predstavlja identifikator kome mogu pristupiti drugi juniti u okviru projekta. Većina junita će sadržati kod koji ostali juniti koriste. Može se reći da odeljak za interfejs sadrži listu stavki u okviru junita koje ostali juniti mogu da koriste. Odeljak za intrerfejs počinje ključnom reči interface a završava se ključnom reči implementation. Odeljak implementation Odeljak za implementaciju junita je odeljak koji sadrži aktuelni kod junita. Odeljak za implementaciju počinje ključnom reči implementation a završava se ključnom reči sledećeg junita. Kljućne reči u junitu Ključna reč const Junit opciono može sadržati jedan ili više odeljaka const. Odeljak const je odreďen ključnom reči const. Odeljak const opisuje listu promenljivih koje su poznate kao konstante. Konstanta je identifikator koji se ne može menjati. Npr: const DefaultWidth = 400; DefaultHeight = 200; Description =.Something really cool..; Ključna reč type Ključna reč type se koristi da deklariše nove tipove koje će koristiti program. Ključna reč var Ključna reč var se koristi da deklariše odeljak koda u kom se deklarišu promenljive. Promenljive treba da budu deklarisane pre nego što se koriste. Promenljive treba da deklarišete u posebnom odeljku koda koji je naznačen ključnom reči var. Npr: 9

var X : Integer; { variable X declared as an integer variable } Y : Integer; { variable Y declared as an integer variable } Najčešće deklaracije promenljivih su: Integer, Real,Char, Word, Boolean i dr. Često korišćeni operatori Operator Opis Primer Matemati~ki operatori. + sabiranje x :=y + z; - oduzimanje x := y - z, * množenje x := y * z; / deljenje realnog broja x := y / 3.14; div celobrojno deljenje x := y div 10; := dodeljivanje x :=10; And logičko.i. if (x=1) and (y=2) then... = jednako if (x=10) then... <> nije jednako if (x<>10) then... < manje je od if (x<10) then.. <= veće ili jednako if (x<=) then... Zadatak. Kreirati aplikaciju koja će aktiviranjem labele ispisivati tekst po želji u crvenoj boji, veličine 20. 1. Na otvorenu formu dodajte labelu (Label1) 2. Aktivirajte kod labele (dvostruki klik na labelu) i ukucajte naredbu Label1.Caption:='Dobar dan. Hvala sto ste kliknuli na mene'; (као на слици ). Слика 11. 3. Startujte program i kliknite na labelu (pojaviće se uneti tekst). Vratite se u režim rada. 4. Podesite veličinu i boju slova: font Color-Red i Size-20. Unesite kod ispod predhodnog: Label1.Font.Size:=20; Label1.Font.Color:=clRed; 5. Startujte program 6. Sačuvajte ga pod imenom KlikNaLabelu. Zadatak.za vežbu. Kreirati aplikaciju koja će ispisati neku poruku kada se klikne na dugme (Button1) koje je dodato na formu žute pozadine (Color), sa nazivom Poruka (Caption). 10

Zadatak. Kreirati aplikaviju koja će sabirati dva uneta broja: 1. Promenite svojstva forme Name->Aritmetika, Caption->Kalkulator 2. Dodajte na formu 3 Edit-a. Name->prvibroj, drugibroj i rezultat, Caption->0,0 i prazno polje. 3. Ispred Edit-a kreirajte tri Label-e sa osobinama Name->poruka1, poruka2, porukarezultat, Caption->prvi sabirak, drugi sabirak i zbir. 4. Kreirati jedan Baton, Captio->+, Name->Zbir. U Inspektor objektu odaberite karticu Events/OnClik. Pojaviće se kod: 5. U kodu deklarišite promenljive kao Real i unesite kod za sabiranje. 6. Pokrenite aplikaciju i proverite račun. 7. Sačuvati u svoj folder, pod imenom Zbir. Zadatak.za vežbu Kreirati aplikaciju za oduzimanje i množenje kao na slici. 11

Zadatak. Napisati program kojim se menja boja pozadine forme. Na formi postaviti tri tastera sa nazivima: crvena, plava i zelena. Pritiskom na odgovarajuć taster menja se boja forme. Postaviti labelu sa nazivom Promena pozadine forme. Formi dati naziv Primer1. procedure TForm1.Button1Click(Sender: TObject); Form1.Color := clred; procedure TForm1.Button2Click(Sender: TObject); Form1.Color := clblue; procedure TForm1.Button4Click(Sender: TObject); Form1.Color := clgreen; Zadatak. Kreirati aplikaciju koja sadrži Edit kontrolu i dugme(button), i koja: Koja obezbeďuje da se u toku kreiranja forme obriše sav sadržaj Edit kontrole, a boja forme postavi n a žuto; U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku: Napravili ste dvostruki klik!; Ispisuje hint(savet) za Edit kontrolu: klikni 2 puta!; Zatvara formu klikom na dugme (Caption: Kraj) Procedure TForm1.FormCreate(Sender: TObject); Edit1.Text:=''; Form1.Color:=clYellow; procedure TForm1.Edit1DblClick(Sender: TObject); Edit1.Text:='Napravili ste DblClick!'; procedure TForm1.btKrajClick(Sender: TObject); Close; 12

Zadatak. Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodat na formi. - Podesiti za taster sledeća svojstva: Caption-Klik na dugme, u Inspector Objektu/Evants dogaďaj OnClick. - U nazivu procedure treba da piše: procedure TForm1.Button1Click procedure imeforme.imedugmetaclick Junit treba da je sledećeg oblika: COMPONENTA Memo Komponenta Memo je namenjena za rad sa tekstom sa više linija teksta. Linije teksta su indeksirane i može im se pristupiti sa: Memo1.Lines[0], Memo1.Lines[1],..., Memo1.Lines[i],..., Memo1.Lines [Memo1.Lines.Count[i]-1]. Zadatak. Napisati program kojim se vrše unos članova niza od 10 elemenata pomoću Memo komponente (krem pozadina sa plavim brojevima). Na formi definiši odgovarajuće Edit polje (žuta pozadina, sa plavim brojevima) za prikaz največeg člana niza. Traženje najvećeg člana niza počni pritiskom na tater Pronadji. Formi dati naziv Primer8. Izgled forme rešenja ovog zadataka prikazan je na slici. Forma koristi standardne komponente Label, Edit i Button kao i komponentu Memo u koju se unose članovi niza. Glavni deo koda ovog programa je sledeći:. procedure TForm1.Ponisti(Sender: TObject); Var i: integer; For i:=1 To 100 Do a[i]:=0; procedure TForm1.Button1Click(Sender: TObject); Var max,i,j,n,gr: integer; s: string; For i:=0 To 9 Do Begin s:=memo1.lines[i]; Val(s,n,gr); j:=i+1; If gr = 0 Then a[j]:=strtoint(memo1.lines[i]); End; max:=a[1]; For i:=1 To 10 Do If a[i] > max Then max:=a[i]; Edit1.Text:=IntToStr(max); end. 13

COMPONENTE ListBox i ComboBox Komponente ListBox i ComboBox se često koriste. Komponenta ListBox predstavlja standardni Windows okvir za listu, koja predstavlja listu za izbor opcija koje korisnik može odabrati. Dijalog prouor ToolBarEditor sadrži dva okvira za liste Okvir za listu na levoj strani je običan okvir za listu; prikazuje grupe dugmadi koje možete odabrati. Okvir za listu na desnoj strani je korisnički definisan okvir za listu; pokazuje dugmad koja će se pojaviti na traci sa alatima, kao i tekst opisa funkcije koju dugme izvršava. Kombo okviri su specijalizovani okviri za liste. Ustvari, kombo okvir je kombinacija okvira za listu i edit kontrole. Korisnik može odabrati opciju sa liste, odnosno upisati vrednost u deo za editovanje. Kada korisnik odabere opciju sa liste, opcija se postavlja u edit kontrolu. Postoje tri različita tipa kombo okvira. Tip kombo okvira je odreďen karakteristikom Style. Zadatak. Napisati program kojim se konvertuju sledeći decimalni brojevi u heks-a: 12, 14, 123, 512, 1023, 2111, 4780 i 27500. Date brojeve upisati u ListBox komponentu (boja pozadine clcream a boja brojeva plava). Na formi definisati odgovarajuće Edit polje (žuta pozadina, sa plavim brojevima) za prikaz dobijenog heks-a broja. Iznad ovog polja u komponenti Label napiši Heksa a iznad ListBox komponente napiši decimalni. Izgled forme rešenja ovog zadataka prikazan je na donjoj slici. Forma koristi novu komponentu ListBox koja sadrži niz stavki u našem primeru brojeva i omuguće da se izabere jedna (a može i više stavki). Prtitskom na svojstvo Items otvoriće se ekran String List Editor pomoću kojeg upišemo članove te liste što je prikazano na donjoj slici. Glavni deo koda ovog programa je sledeći:. procedure TForm1.ListBox1Click(Sender: TObject); Var i:integer; i:=listbox1.itemindex; Edit1.Text :=IntToHex(StrToInt(ListBox1.Items[i]),2); end. Glavne karakteristike ovog programa: U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i:=listbox1.itemindex) a zatim prikažemo njegovu heksa prezentaciju u polju Edit1. Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni, kao i funkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj. 14

Zadatak. Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature. Brojevi se unose pomoću Editpolja ComboBoxa. Na kraju unosa svakog broja pritisnuti taster <Enter>. - Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici: - Odgovarajući programski kod je: U procedure se proverava da li je pritisnut taster <Enter>- kod#13 i zatim se upisani tekst dodaje ComboBoxu, briše se sadržaj Edt polja ComboBoxa (ComboBox1.Text) i sistemskoj promenljivoj (Key:=#0) dodeljuje vrednost različita od koda Enter. Zadatak. Kreirati aplikaciju za formiranje slučajnih brojeva koje generiše računar na osnovu datog broja elemenata. 15

ISCRTAVANJE FIGURA U Delphiju. Da bismo nacrtali bilo koju figure moramo znati koordinate početne i krajnje tačke, poziciju tačaka i naredbe za linije i krive. Koordinata početne leve-gornje tačke je (0,0), a naredba za iscrtavanje linije je u okviru procedure ili funkcije. Npr : convas.lineto(x,y); convas.moveto (x,y); Zadatak. Kreirati aplikaciju koja će aktiviranjem tastera <CRTAJ> nacrtati kocku sledećeg izgleda: 1. Kreirati taster Button <CRTAJ> i u njegovoj proceduri uneti kod, da bi se nacrtao kvadrat. 2. Sačuvati projekat i pokrenuti aplikaciju. 3. Dodati kod za iscrtavanje celokupne kocke Zadatak Kreirati aplikaciju koja će iscrtati trougao aktiviranjem tastera <ISCRTAVANJE TROUGLA>. 16

Zadataci za vežbu: 1) Kreirati aplikaciju koja će aktiviranjem tastera iscrtati pravougli trougao. 2) Kreirati aplikaciju koja će aktiviranjem tastera iscrtati piramidu. Zadatak. Kreirati aplikaciju koja će izračunavati zapreminu i površinu piramide Uputstvo: - Kreirati: šest Label-a, četiri Edit-a i dva Buttons-a kao na slici. - U Proceduru za Button1 uneti kod: procedure TForm1.Button1Click(Sender: TObject); var i:integer; a,s,d,h,b,v,ha,m,p:real; a:=strtofloat(edit1.text); s:=strtofloat(edit2.text); b:=sqr(a); h:=sqrt(sqr(s)-sqr(d/2)); v:=b*h/3; m:=2*a*ha; ha:=sqrt(s*s-(a/2)*(a/2)); p:=b+m; edit3.text:=floattostr(v); edit4.text:=floattostr(p); - U Proceduru za Button2 uneti kod: procedure TForm1.Button2Click(Sender: TObject); close 17

KOMPONENTA CheckBox Komponenta CheckBox se koristi za izbor proizvoljnog broja od ponuďenih stavki. Grafički ova komponenta je Predstavljena sa kvadratom i tekstom pored njega. Kvadrat može da bude prazan ili da sadrži X. Prazan kvadrat označava da stavka nije odabrana. U toku izvršavanja aplikacije korisnik može da promeni stanje komponente klikom na nju. Natpis pored kvadratića se podešava preko svojstva Caption. Zadatak1. Kreirati aplikacije sa: 3 CheckBox-a, Label1 i Edit1 sa tekstom kao na slici. Aktiviranjem CheckBox se menjaju veličina, boja i ispis teksta. Checkbox1- menja veličinu slova 25-10 Checkbox2- menja tekst Dobar dan Checkbox3- menja boju crvena-zelena KOMPONENTA RadioButton RadioButton se koristi za izbor jedne od više ponuďenih stavki. Grafički ova komponenta ima krug-ček sa natpisom pored. Prazan krug označava stavku koja nije aktivna. U toku izvršavanja aplikacije korisnik može menjati stanje komponente. Natpis pored kružića se podešavaju preko svojstva Caption. Stanje komponente se podešavaju pomoću logičkog tipa (može imati vrednost True i False), pri čemu samo jedno radon dugme može biti odabrano (čekirano). 18

Zadatak2. Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1. Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji. Zadatak3. Kreirati aplikaciju za izračunavanje +-*/ kao na slici. 19

Zadaci za vežbu 1. Kreirati aplikaciju koja će menjati: tekst: Svoje ime->nadimak veličinu slova: 15->30 boje: crvena->žuta. 2. Kreirati aplikaciju koja će čekiranjem RadioButtons (12) menjati imena meseca u godini. 3. Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika. 20

Zadatak: Kreirati aplikaciju koja će izračunati kvadratnu jednačinu sledećeg izgleda: Uputstvo: Na formu dodajemo 3Edit polja za unos koeficijenata jednačina i 2 Edit polja za rešenja. Svojstva Name Su Podešena redom: koefa, koefb, koefc, Edx1 и Edx2. Dodati taster za aktiviranje rešenja. SvojstvoCaption podesiti na: Resi jednacinu. Dadoti 7 Labela sa svojstvom Caption kao na slici Labeli iznad rešenja je podešeno svojstvo Name u poruka. Svojstvo Button1 je u kodu: 21

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici: procedure TForm1.Button1Click(Sender: TObject); var s,l,c,x :real; s:=strtofloat (edit1.text); c:=strtofloat (edit2.text); l:=strtofloat (edit3.text); x:=strtofloat (edit4.text); x:=2*s*l*c/100 end. Zadatak. Napraviti aplikaciju koja će pozdraviti na više jezika, kao na slici: Glavni deo koda ovog programa je sledeći: procedure TForm1.Button1Click(Sender: TObject); If Srpski.Checked Then Begin Edit1.Text:='Dobar dan'; Label2.Caption:='Srpski' End; If Engleski.Checked Then Begin Edit1.Text:='Hello'; Label2.Caption:='Engleski' End; If Nemacki.Checked Then Begin Edit1.Text:='Guten Tag'; Label2.Caption:='Nemacki' End; If Francuski.Checked Then Begin Edit1.Text:='Bonjour'; Label2.Caption:='Francuski' End; If Havajski.Checked Then Begin Edit1.Text:='Aloha'; Label2.Caption:='Havajski' End; If Hebrejski.Checked Then Begin Edit1.Text:='Shalom'; Label2.Caption:='Hebrejski' End; procedure TForm1.Postavi(Sender: TObject); Srpski.Checked:=True; Edit1.Text:='Dobar dan'; Label2.Caption:='Srpski'; end. Nakon poziva programa biće pozvana procedura Postavi (dogaďaj na formi OnActivate) u kojoj se postavlja unutar RadioButton komponente, prva opcije kao podrazumevana (Srpski jezik) i pozdrav "Dobar dan". U proceduri Button1Click ispitujemo koji je jezik odabran, prikazujemo pozdrav kao i naziv jezika. 22

Zadatak. Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem ili opadajućem poretku. procedure TForm1.Button1Click(Sender: TObject); var i,j,br:integer; s:string; s:=''; br:=0; val(edit1.text,i,j); if j<> 0 then Showmessage('Greska na poziciji '+inttostr(j)) else for j:=i downto 1 do if i mod j =0 then if checkbox1.checked then s:=inttostr(j)+' '+s else s:=s+inttostr(j)+' '; br:=br+1 Memo1.text:=s; Label1.Caption:='Ukupno:'+inttostr(br) end. Zadatak. Kreirati aplikaciju koja će pretvarati decimalni u binarni broj. 23

procedure TForm1.ComboBox1Change(Sender: TObject); Var i,n,gr:integer; s:string; i:=combobox1.itemindex; s:=combobox1.items[i]; Val(s,n,gr); If gr <> 0 Then ComboBox1.SetFocus; ComboBox1.SelectAll End Else Begin n:=strtoint(combobox1.items[i]); Edit1.Text:=DecToBinStr(n) End; function TForm1.DecToBinStr(N: Integer): string; var S: string; i: Integer; Negativan: Boolean; if N<0 then Negativan:=True; N:=Abs(N); for i:=1 to SizeOf(N)*8 do if N<0 then S:=S+'1' else S:=S+'0'; N:=N shl 1; Delete(S,1,Pos('1',S)-1); if Negativan then S:='-'+S; Result:=S; procedure TForm1.Unos(Sender: TObject; var Key: Char); If Key=#13 Then ComboBox1.Items.Add(ComboBox1.Text); ComboBox1.Text:=''; Key:=#0; End; end. Zadaci za vežbu: 1. Kreirati aplikaciju koja ispisuje reć Zdravo na 4 jezika. 2. Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati temperature u Farenhajtima. 24