24
7/23/2019 Skola Delphi http://slidepdf.com/reader/full/skola-delphi 1/24 1 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

Skola Delphi

Embed Size (px)

Citation preview

Page 1: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 124

1

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čkihram 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 DelphijuTakoĎ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 DelphijuPri 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 administriranjegrupom projekata pisanih na Delphiju koji zajedno formiraju kompletan softverski proizvodDelphi 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 224

2

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 projektudfm 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 datotekudsk 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) projektadof Datoteka opcija projekta Ova datoteka sadrži o pcije projekta koje su definisane u dijalogu

Project Optionsexe Finalni izvršni programcfgKonfiguraciona 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šihObject Pascal junita

dpr Izvorni kod projekta

res Prevedena binarna resursna datoteka

Zadatak

1

Kreirajte nov Folder na disku2 Otvorite Delphi3

File-New Application (na ekranu se pojavljuje prazna forma)4 File-Save All i upišite naziv Junita i naziv projekta5 Odaberite opciju Project- Build Test6 File-Close All7 PronaĎite svoj Folder i primetićete nekoliko datoteka (obično 8)

OBJEKTIObjekti su ustvari suština Delphija Nema Delphija bez objekata Naime sve što vidite u Delphiju i sa čime

radite su objektiTako 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 ostaliobjekti Naravno Delphi ne bi bio to što jeste da se objektima ne možemanipulisati Vrlo važna odlika objekata je nasljeĎivanje Naime kad godse jedan objekat stavi na drugi ( npr Label na Form ) ovaj prvi

postaje dete ( engl Child ) a drugi roditelj ( engl Parent ) te će po tojlogici 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štaitekako 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 ) Takorecimo Form kao glavni objekt sadrži sledeće osobine

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 324

3

Action Izaber ete 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 Odr eĎ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 Whats 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 )

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 424

4

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 r adi 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 jeiznosila npr 375 ) na 400 treba da ukucamo kod u Junitu npr

Form1Height = 400

Dakle prvo upisujemo ime objekta pa stavljamo tačku Delphi jetoliko razvijen da će automatski izbaciti listu osobina pa se lakomože izabrati Height ( visina )

Poznavatelji Pascal-a prepoznaju ovde standardni načindodeljivanja vrednosti promjenljivoj

Važno je napomenuti da ovaj kod možemo kucati samo kao deo neke procedure Dvostrukim klikom naobjekat automatski ulazimo u kod za objekat-Junit Delphi će postaviti kursor za unos naredbe tačno na

mesto gde treba da se nalazi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 524

5

Zadatak

1 Kreirajte nov projekat i dajte mu ime2

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 kategorijeStandardne komponente uključuju TButton TEdit TListBox TMemo TMainMenu TScrollBarTPopupMenu TCheckBox TRadioButton TRadioGroup TGroupBox TPanel TActionList

Komponente se postavljaju na formu aktiviranjem ikone iz Palete komponenti Posle postavke osobinekomponenti 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 Postojinekoliko svojstava koja su vezana za boju Svojstvo Color se obično odnosi na boju pozadine komponenteTakoĎ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 komponentatreba da koristi boju i font roditeljske komponente koja je obično formular

KOMPONENTE TEKSTAKomponenta Edit omogućava korisniku da unese jednu liniju teksta poravnatoj u levo

Za tekst se mogu koristiti i komponente Label i StaticTex t ali se one obično koriste za nepromenljivi tekstkao i za izlaz koji generiše program Promene se vrše karakteristikom Caption

Komponenta MaskEdit je Edit komponenta kojoj je dodat filter zaunos teksta Ona naznačava da li karakter treba da bude prikazanmalim velikim slovima ciframa i sl Npr za unos datuma se koristi

poseban format (032198) i ova kontrola definiše tu vrstu unosa Karakteristika EditMask kontroliše masku koja se koristi Kada seaktivira polje Value u Object Inspector-u otvara se dijalog prozor(Input MaskEditor) koji omogućava da izaberete jednu od ponuĎenihmaski ili da kreirate svoju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 624

6

Komponenta Memo dozvoljava unos više linija teksta ali omogućava samo jedan font za ceo tekstKarakteristika Lines iz Object Inspector-a omogućava snimanje sadržaja teksta sa diska i na diskKarakteristika 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 kontroleOpcija 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 nataster 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 Usuprotnom edit kontrola ne menja veličinu prilikom

promene veličine fonta Generička vrednost TrueCharCaseEdit MaskEdit OdreĎuje da li će edit kontrola prikazivati velika slova

(ecUpperCase) mala slova (ecLowerCase) ili normalan

tekst (ecNormal) Generička vrednost ecNormalHideScrollBars RichEdit Kada je podešena na True trake za pomeranje će biti prikazane ukoliko je to potrebno u protivnom će bitiskrivene Kada je podešena na False trake za pomeranjeće biti prikazane na osnovu vrednosti karakteristikeScrollBars

HideSelection Edit Memo RichEdit Kada je podešeno na True tekst koji je označen neće biti prikazan kao označen prilikom prelaska korisnikana narednu kontrolu pritiskom na taster Tab Generičkavrednost False

Lines Memo RichEdit Tekst koji se sadrĎi u komponenti Lines je slučaj klase

TStringsMaxLength sve Definiše maksimalan broj karaktera koje će komponenta

moći da sadrži Ukoliko je vrednost 0 može se unetineograničena dužina teksta (ograničena samo zahtevimasistema) Kada je podešena na bilo koju vrednostrazličitu od nule broj karaktera je ograničen zadatomvrednosti Generička vrednost 0

OEMConvert Edit Memo Podesite ovu karakteristiku na True kada tekst koji seunosi sadrži naziv datoteke Generička vrednost False

PasswordChar Edit MaskEdit Kada je ova karakteristika podešena na vrednostrazličitu od ASCII 0 tekst koji unosite će biti prikazan

korišćenjem definisanih karaktera Tekst u okviru editkontrole neće biti izmenjenGenerička vrednost 0

PlainText RichEdit Kada je podešena na True RTF (Rich Text Format)datoteke će biti prikazane kao običan tekst bezformatiranja karaktera i paragrafa Kada je podešena naFalse

7Text Edit MaskEdit Sadrži tekst u okviru komponenteWantReturns Memo RichEdit Kada je podešena na True komponenta zadržava

karakter za kraj reda i novu liniju koju korisnik unosi uedit kontrolu pritiskom na taster Enter Kada je

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 724

7

podešena na False karakteri za kraj reda i novu linijuulaze u formu ali se ne postavljaju u okviru editkontrole Generička vrednost True

WantTabs Memo RichEdit Kada je podešena na True kada korisnik pritisne tasterTab u edit kontrolu se upisuje karakter tab Kada je

postavljen na False tab karakteri prelaze na formuto omogućava izlazak iz edit kontrole pritiskom nataster Tab Generička vrednost False

Zadatak

1 Otvorite predhodni projekat2 Iz Palete komponenti izaberite komponentu Label1 (slovo A) i kreirajte na formu3 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 grupukomponenti u okviru panela treba da držite pritisnut taster ltCtrlgt dok prevlačite mišem kako bi odabralikomponentu Paneli se o bično koriste za naslove i delove teksta koje treba nagltzle i BorderWidth

KOMPONENTE ButtonKomponente Button karakterišu osobine ModalResult Default Cansel i Enabled Button su principusimulira klik miša pa može da zatvara Form aktivira aplikaciju i sl

Zadatak

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 naformu

4 Izmenite osobine komponenti po želji

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 824

8

JUNIT

Pascal juniti

Programiranje je više od kucanja programskog koda Pre svega programiranje je kombinacija planiranjazadatka za programiranje a zatim kucanja koda koji će izvršavati taj zadatak Kod koji kucate se upisuje utekst datoteku Prevodilac uzima ovu datoteku i prevodi je u mašinski kod koji računar može da razumeTekst 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 nastavakDPR

Drugi tip junita koji Delphijeve GUI aplikacije sadrže je junit glavne forme Junit forme i njegovnaziv ukazuju na junit izvornog koda koji mu je pridružen Ovaj tip junita ima nastavak PAS Ovajtip junita ćete u većini slučajeva koristiti u Vašim Delphi programima Delphijeve GUI aplikacijeuvek 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 formatuda bi prevodilac mogao da čita junit i prevodi kod junitaJuniti Delphi projekta sadrže ključnu reč program iza kog sledi naziv junita i kod blok koji se nalazi izmeĎuključnih reči begin i end Izvorni junit projekta za generički Delphijev projekt izgleda

Izvorni kod projekta za generički Delphijev project 01 program Project10203 uses

04 Forms05 Unit1 in Unit1pas Form10607 $R RES0809 begin10 ApplicationInitialize11 ApplicationCreateForm(TForm1 Form1)12 ApplicationRun13 end

U liniji 1 ključna reč program identifikuje junit kao glavni izvorni junit programaMožete videti da se naziv junita Project1 nalazi iza ključne reči program (Delphi daje projektu generik činaziv sve dok ne snimite projekt pod nazivom koji ima bolje značenje) Počev od linije 3 vidite deo koji jeidentifikovan 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 Spisakse završava znakom tačka-zarezU liniji 7 možete videti direktivu prevodiocu koja pokazuje Delphiju da uključi odgovarajuću resursnudatotekuLinija 9 sadr ži ključnu reč begin a linija 13 sadrži ključnu reč end Zapazite da poslednja ključna reč end uokviru junita iza sebe ima tačku (Junit može sadržati više blokova koda označenih sa begin 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 aplikacijeodnosno startuje aplikaciju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 924

9

Zadatak

1 Kreirajte još jedan osnovni junit (FileNew) i pogledajte kodDvostrukim klikom na formu Delphi će prikazati nov junit u editor koda (Code Editor)

Prazan Pascal junit 01 unit Unit202

03 interface0405 implementation0607 endOvaj junit ima dve slične stvari sa junitom koji je predhodno

prikazan Prvo junit počinje ključnom reči unit iza koje sledinaziv junita Unit2 (opet generički naziv koji kreira DelphiKljuč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 deoimplementation Prazan Listing se razlikuje od predhodnog i po tome što nema iskaz begin Glavni junit programa moraimati oba iskaza begin 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 junitaOdeljak interface je odeljak junita u okviru kog se deklarišu identifikatori koje navedeni junit izvoziIdentifikator za izvoz predstavlja identifikator kome mogu pristupiti drugi juniti u okviru projektaVeć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 azavršava se ključnom reči implementation

Odeljak implementationOdeljak za implementaciju junita je odeljak k oji 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 constOdeljak const opisuje listu promenljivih koje su poznate kao konstante

Konstanta je identifikator koji se ne može menjati NprconstDefaultWidth = 400DefaultHeight = 200Description = 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 posebnomodeljku koda koji je naznačen ključnom reči var Npr

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1024

10

varX Integer variable X declared as an integer variable Y Integer variable Y declared as an integer variable

Najčešće deklaracije promenljivih su Integer RealChar 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 314div celobrojno deljenje x = y div 10= dodeljivanje x =10And logičko i if (x=1) and (y=2) then= jednako if (x=10) thenltgt nije jednako if (xltgt10) thenlt manje je od if (xlt10) thenlt= veće ili jednako if (xlt=) 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

Label1Caption=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

Label1FontSize=20Label1FontColor=clRed

5 Startujte program6 Sačuvajte ga pod imenom KlikNaLabelu

Zadatakza 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)

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 2: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 224

2

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 projektudfm 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 datotekudsk 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) projektadof Datoteka opcija projekta Ova datoteka sadrži o pcije projekta koje su definisane u dijalogu

Project Optionsexe Finalni izvršni programcfgKonfiguraciona 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šihObject Pascal junita

dpr Izvorni kod projekta

res Prevedena binarna resursna datoteka

Zadatak

1

Kreirajte nov Folder na disku2 Otvorite Delphi3

File-New Application (na ekranu se pojavljuje prazna forma)4 File-Save All i upišite naziv Junita i naziv projekta5 Odaberite opciju Project- Build Test6 File-Close All7 PronaĎite svoj Folder i primetićete nekoliko datoteka (obično 8)

OBJEKTIObjekti su ustvari suština Delphija Nema Delphija bez objekata Naime sve što vidite u Delphiju i sa čime

radite su objektiTako 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 ostaliobjekti Naravno Delphi ne bi bio to što jeste da se objektima ne možemanipulisati Vrlo važna odlika objekata je nasljeĎivanje Naime kad godse jedan objekat stavi na drugi ( npr Label na Form ) ovaj prvi

postaje dete ( engl Child ) a drugi roditelj ( engl Parent ) te će po tojlogici 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štaitekako 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 ) Takorecimo Form kao glavni objekt sadrži sledeće osobine

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 324

3

Action Izaber ete 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 Odr eĎ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 Whats 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 )

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 424

4

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 r adi 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 jeiznosila npr 375 ) na 400 treba da ukucamo kod u Junitu npr

Form1Height = 400

Dakle prvo upisujemo ime objekta pa stavljamo tačku Delphi jetoliko razvijen da će automatski izbaciti listu osobina pa se lakomože izabrati Height ( visina )

Poznavatelji Pascal-a prepoznaju ovde standardni načindodeljivanja vrednosti promjenljivoj

Važno je napomenuti da ovaj kod možemo kucati samo kao deo neke procedure Dvostrukim klikom naobjekat automatski ulazimo u kod za objekat-Junit Delphi će postaviti kursor za unos naredbe tačno na

mesto gde treba da se nalazi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 524

5

Zadatak

1 Kreirajte nov projekat i dajte mu ime2

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 kategorijeStandardne komponente uključuju TButton TEdit TListBox TMemo TMainMenu TScrollBarTPopupMenu TCheckBox TRadioButton TRadioGroup TGroupBox TPanel TActionList

Komponente se postavljaju na formu aktiviranjem ikone iz Palete komponenti Posle postavke osobinekomponenti 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 Postojinekoliko svojstava koja su vezana za boju Svojstvo Color se obično odnosi na boju pozadine komponenteTakoĎ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 komponentatreba da koristi boju i font roditeljske komponente koja je obično formular

KOMPONENTE TEKSTAKomponenta Edit omogućava korisniku da unese jednu liniju teksta poravnatoj u levo

Za tekst se mogu koristiti i komponente Label i StaticTex t ali se one obično koriste za nepromenljivi tekstkao i za izlaz koji generiše program Promene se vrše karakteristikom Caption

Komponenta MaskEdit je Edit komponenta kojoj je dodat filter zaunos teksta Ona naznačava da li karakter treba da bude prikazanmalim velikim slovima ciframa i sl Npr za unos datuma se koristi

poseban format (032198) i ova kontrola definiše tu vrstu unosa Karakteristika EditMask kontroliše masku koja se koristi Kada seaktivira polje Value u Object Inspector-u otvara se dijalog prozor(Input MaskEditor) koji omogućava da izaberete jednu od ponuĎenihmaski ili da kreirate svoju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 624

6

Komponenta Memo dozvoljava unos više linija teksta ali omogućava samo jedan font za ceo tekstKarakteristika Lines iz Object Inspector-a omogućava snimanje sadržaja teksta sa diska i na diskKarakteristika 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 kontroleOpcija 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 nataster 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 Usuprotnom edit kontrola ne menja veličinu prilikom

promene veličine fonta Generička vrednost TrueCharCaseEdit MaskEdit OdreĎuje da li će edit kontrola prikazivati velika slova

(ecUpperCase) mala slova (ecLowerCase) ili normalan

tekst (ecNormal) Generička vrednost ecNormalHideScrollBars RichEdit Kada je podešena na True trake za pomeranje će biti prikazane ukoliko je to potrebno u protivnom će bitiskrivene Kada je podešena na False trake za pomeranjeće biti prikazane na osnovu vrednosti karakteristikeScrollBars

HideSelection Edit Memo RichEdit Kada je podešeno na True tekst koji je označen neće biti prikazan kao označen prilikom prelaska korisnikana narednu kontrolu pritiskom na taster Tab Generičkavrednost False

Lines Memo RichEdit Tekst koji se sadrĎi u komponenti Lines je slučaj klase

TStringsMaxLength sve Definiše maksimalan broj karaktera koje će komponenta

moći da sadrži Ukoliko je vrednost 0 može se unetineograničena dužina teksta (ograničena samo zahtevimasistema) Kada je podešena na bilo koju vrednostrazličitu od nule broj karaktera je ograničen zadatomvrednosti Generička vrednost 0

OEMConvert Edit Memo Podesite ovu karakteristiku na True kada tekst koji seunosi sadrži naziv datoteke Generička vrednost False

PasswordChar Edit MaskEdit Kada je ova karakteristika podešena na vrednostrazličitu od ASCII 0 tekst koji unosite će biti prikazan

korišćenjem definisanih karaktera Tekst u okviru editkontrole neće biti izmenjenGenerička vrednost 0

PlainText RichEdit Kada je podešena na True RTF (Rich Text Format)datoteke će biti prikazane kao običan tekst bezformatiranja karaktera i paragrafa Kada je podešena naFalse

7Text Edit MaskEdit Sadrži tekst u okviru komponenteWantReturns Memo RichEdit Kada je podešena na True komponenta zadržava

karakter za kraj reda i novu liniju koju korisnik unosi uedit kontrolu pritiskom na taster Enter Kada je

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 724

7

podešena na False karakteri za kraj reda i novu linijuulaze u formu ali se ne postavljaju u okviru editkontrole Generička vrednost True

WantTabs Memo RichEdit Kada je podešena na True kada korisnik pritisne tasterTab u edit kontrolu se upisuje karakter tab Kada je

postavljen na False tab karakteri prelaze na formuto omogućava izlazak iz edit kontrole pritiskom nataster Tab Generička vrednost False

Zadatak

1 Otvorite predhodni projekat2 Iz Palete komponenti izaberite komponentu Label1 (slovo A) i kreirajte na formu3 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 grupukomponenti u okviru panela treba da držite pritisnut taster ltCtrlgt dok prevlačite mišem kako bi odabralikomponentu Paneli se o bično koriste za naslove i delove teksta koje treba nagltzle i BorderWidth

KOMPONENTE ButtonKomponente Button karakterišu osobine ModalResult Default Cansel i Enabled Button su principusimulira klik miša pa može da zatvara Form aktivira aplikaciju i sl

Zadatak

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 naformu

4 Izmenite osobine komponenti po želji

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 824

8

JUNIT

Pascal juniti

Programiranje je više od kucanja programskog koda Pre svega programiranje je kombinacija planiranjazadatka za programiranje a zatim kucanja koda koji će izvršavati taj zadatak Kod koji kucate se upisuje utekst datoteku Prevodilac uzima ovu datoteku i prevodi je u mašinski kod koji računar može da razumeTekst 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 nastavakDPR

Drugi tip junita koji Delphijeve GUI aplikacije sadrže je junit glavne forme Junit forme i njegovnaziv ukazuju na junit izvornog koda koji mu je pridružen Ovaj tip junita ima nastavak PAS Ovajtip junita ćete u većini slučajeva koristiti u Vašim Delphi programima Delphijeve GUI aplikacijeuvek 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 formatuda bi prevodilac mogao da čita junit i prevodi kod junitaJuniti Delphi projekta sadrže ključnu reč program iza kog sledi naziv junita i kod blok koji se nalazi izmeĎuključnih reči begin i end Izvorni junit projekta za generički Delphijev projekt izgleda

Izvorni kod projekta za generički Delphijev project 01 program Project10203 uses

04 Forms05 Unit1 in Unit1pas Form10607 $R RES0809 begin10 ApplicationInitialize11 ApplicationCreateForm(TForm1 Form1)12 ApplicationRun13 end

U liniji 1 ključna reč program identifikuje junit kao glavni izvorni junit programaMožete videti da se naziv junita Project1 nalazi iza ključne reči program (Delphi daje projektu generik činaziv sve dok ne snimite projekt pod nazivom koji ima bolje značenje) Počev od linije 3 vidite deo koji jeidentifikovan 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 Spisakse završava znakom tačka-zarezU liniji 7 možete videti direktivu prevodiocu koja pokazuje Delphiju da uključi odgovarajuću resursnudatotekuLinija 9 sadr ži ključnu reč begin a linija 13 sadrži ključnu reč end Zapazite da poslednja ključna reč end uokviru junita iza sebe ima tačku (Junit može sadržati više blokova koda označenih sa begin 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 aplikacijeodnosno startuje aplikaciju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 924

9

Zadatak

1 Kreirajte još jedan osnovni junit (FileNew) i pogledajte kodDvostrukim klikom na formu Delphi će prikazati nov junit u editor koda (Code Editor)

Prazan Pascal junit 01 unit Unit202

03 interface0405 implementation0607 endOvaj junit ima dve slične stvari sa junitom koji je predhodno

prikazan Prvo junit počinje ključnom reči unit iza koje sledinaziv junita Unit2 (opet generički naziv koji kreira DelphiKljuč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 deoimplementation Prazan Listing se razlikuje od predhodnog i po tome što nema iskaz begin Glavni junit programa moraimati oba iskaza begin 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 junitaOdeljak interface je odeljak junita u okviru kog se deklarišu identifikatori koje navedeni junit izvoziIdentifikator za izvoz predstavlja identifikator kome mogu pristupiti drugi juniti u okviru projektaVeć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 azavršava se ključnom reči implementation

Odeljak implementationOdeljak za implementaciju junita je odeljak k oji 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 constOdeljak const opisuje listu promenljivih koje su poznate kao konstante

Konstanta je identifikator koji se ne može menjati NprconstDefaultWidth = 400DefaultHeight = 200Description = 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 posebnomodeljku koda koji je naznačen ključnom reči var Npr

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1024

10

varX Integer variable X declared as an integer variable Y Integer variable Y declared as an integer variable

Najčešće deklaracije promenljivih su Integer RealChar 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 314div celobrojno deljenje x = y div 10= dodeljivanje x =10And logičko i if (x=1) and (y=2) then= jednako if (x=10) thenltgt nije jednako if (xltgt10) thenlt manje je od if (xlt10) thenlt= veće ili jednako if (xlt=) 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

Label1Caption=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

Label1FontSize=20Label1FontColor=clRed

5 Startujte program6 Sačuvajte ga pod imenom KlikNaLabelu

Zadatakza 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)

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 3: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 324

3

Action Izaber ete 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 Odr eĎ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 Whats 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 )

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 424

4

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 r adi 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 jeiznosila npr 375 ) na 400 treba da ukucamo kod u Junitu npr

Form1Height = 400

Dakle prvo upisujemo ime objekta pa stavljamo tačku Delphi jetoliko razvijen da će automatski izbaciti listu osobina pa se lakomože izabrati Height ( visina )

Poznavatelji Pascal-a prepoznaju ovde standardni načindodeljivanja vrednosti promjenljivoj

Važno je napomenuti da ovaj kod možemo kucati samo kao deo neke procedure Dvostrukim klikom naobjekat automatski ulazimo u kod za objekat-Junit Delphi će postaviti kursor za unos naredbe tačno na

mesto gde treba da se nalazi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 524

5

Zadatak

1 Kreirajte nov projekat i dajte mu ime2

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 kategorijeStandardne komponente uključuju TButton TEdit TListBox TMemo TMainMenu TScrollBarTPopupMenu TCheckBox TRadioButton TRadioGroup TGroupBox TPanel TActionList

Komponente se postavljaju na formu aktiviranjem ikone iz Palete komponenti Posle postavke osobinekomponenti 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 Postojinekoliko svojstava koja su vezana za boju Svojstvo Color se obično odnosi na boju pozadine komponenteTakoĎ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 komponentatreba da koristi boju i font roditeljske komponente koja je obično formular

KOMPONENTE TEKSTAKomponenta Edit omogućava korisniku da unese jednu liniju teksta poravnatoj u levo

Za tekst se mogu koristiti i komponente Label i StaticTex t ali se one obično koriste za nepromenljivi tekstkao i za izlaz koji generiše program Promene se vrše karakteristikom Caption

Komponenta MaskEdit je Edit komponenta kojoj je dodat filter zaunos teksta Ona naznačava da li karakter treba da bude prikazanmalim velikim slovima ciframa i sl Npr za unos datuma se koristi

poseban format (032198) i ova kontrola definiše tu vrstu unosa Karakteristika EditMask kontroliše masku koja se koristi Kada seaktivira polje Value u Object Inspector-u otvara se dijalog prozor(Input MaskEditor) koji omogućava da izaberete jednu od ponuĎenihmaski ili da kreirate svoju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 624

6

Komponenta Memo dozvoljava unos više linija teksta ali omogućava samo jedan font za ceo tekstKarakteristika Lines iz Object Inspector-a omogućava snimanje sadržaja teksta sa diska i na diskKarakteristika 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 kontroleOpcija 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 nataster 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 Usuprotnom edit kontrola ne menja veličinu prilikom

promene veličine fonta Generička vrednost TrueCharCaseEdit MaskEdit OdreĎuje da li će edit kontrola prikazivati velika slova

(ecUpperCase) mala slova (ecLowerCase) ili normalan

tekst (ecNormal) Generička vrednost ecNormalHideScrollBars RichEdit Kada je podešena na True trake za pomeranje će biti prikazane ukoliko je to potrebno u protivnom će bitiskrivene Kada je podešena na False trake za pomeranjeće biti prikazane na osnovu vrednosti karakteristikeScrollBars

HideSelection Edit Memo RichEdit Kada je podešeno na True tekst koji je označen neće biti prikazan kao označen prilikom prelaska korisnikana narednu kontrolu pritiskom na taster Tab Generičkavrednost False

Lines Memo RichEdit Tekst koji se sadrĎi u komponenti Lines je slučaj klase

TStringsMaxLength sve Definiše maksimalan broj karaktera koje će komponenta

moći da sadrži Ukoliko je vrednost 0 može se unetineograničena dužina teksta (ograničena samo zahtevimasistema) Kada je podešena na bilo koju vrednostrazličitu od nule broj karaktera je ograničen zadatomvrednosti Generička vrednost 0

OEMConvert Edit Memo Podesite ovu karakteristiku na True kada tekst koji seunosi sadrži naziv datoteke Generička vrednost False

PasswordChar Edit MaskEdit Kada je ova karakteristika podešena na vrednostrazličitu od ASCII 0 tekst koji unosite će biti prikazan

korišćenjem definisanih karaktera Tekst u okviru editkontrole neće biti izmenjenGenerička vrednost 0

PlainText RichEdit Kada je podešena na True RTF (Rich Text Format)datoteke će biti prikazane kao običan tekst bezformatiranja karaktera i paragrafa Kada je podešena naFalse

7Text Edit MaskEdit Sadrži tekst u okviru komponenteWantReturns Memo RichEdit Kada je podešena na True komponenta zadržava

karakter za kraj reda i novu liniju koju korisnik unosi uedit kontrolu pritiskom na taster Enter Kada je

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 724

7

podešena na False karakteri za kraj reda i novu linijuulaze u formu ali se ne postavljaju u okviru editkontrole Generička vrednost True

WantTabs Memo RichEdit Kada je podešena na True kada korisnik pritisne tasterTab u edit kontrolu se upisuje karakter tab Kada je

postavljen na False tab karakteri prelaze na formuto omogućava izlazak iz edit kontrole pritiskom nataster Tab Generička vrednost False

Zadatak

1 Otvorite predhodni projekat2 Iz Palete komponenti izaberite komponentu Label1 (slovo A) i kreirajte na formu3 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 grupukomponenti u okviru panela treba da držite pritisnut taster ltCtrlgt dok prevlačite mišem kako bi odabralikomponentu Paneli se o bično koriste za naslove i delove teksta koje treba nagltzle i BorderWidth

KOMPONENTE ButtonKomponente Button karakterišu osobine ModalResult Default Cansel i Enabled Button su principusimulira klik miša pa može da zatvara Form aktivira aplikaciju i sl

Zadatak

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 naformu

4 Izmenite osobine komponenti po želji

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 824

8

JUNIT

Pascal juniti

Programiranje je više od kucanja programskog koda Pre svega programiranje je kombinacija planiranjazadatka za programiranje a zatim kucanja koda koji će izvršavati taj zadatak Kod koji kucate se upisuje utekst datoteku Prevodilac uzima ovu datoteku i prevodi je u mašinski kod koji računar može da razumeTekst 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 nastavakDPR

Drugi tip junita koji Delphijeve GUI aplikacije sadrže je junit glavne forme Junit forme i njegovnaziv ukazuju na junit izvornog koda koji mu je pridružen Ovaj tip junita ima nastavak PAS Ovajtip junita ćete u većini slučajeva koristiti u Vašim Delphi programima Delphijeve GUI aplikacijeuvek 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 formatuda bi prevodilac mogao da čita junit i prevodi kod junitaJuniti Delphi projekta sadrže ključnu reč program iza kog sledi naziv junita i kod blok koji se nalazi izmeĎuključnih reči begin i end Izvorni junit projekta za generički Delphijev projekt izgleda

Izvorni kod projekta za generički Delphijev project 01 program Project10203 uses

04 Forms05 Unit1 in Unit1pas Form10607 $R RES0809 begin10 ApplicationInitialize11 ApplicationCreateForm(TForm1 Form1)12 ApplicationRun13 end

U liniji 1 ključna reč program identifikuje junit kao glavni izvorni junit programaMožete videti da se naziv junita Project1 nalazi iza ključne reči program (Delphi daje projektu generik činaziv sve dok ne snimite projekt pod nazivom koji ima bolje značenje) Počev od linije 3 vidite deo koji jeidentifikovan 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 Spisakse završava znakom tačka-zarezU liniji 7 možete videti direktivu prevodiocu koja pokazuje Delphiju da uključi odgovarajuću resursnudatotekuLinija 9 sadr ži ključnu reč begin a linija 13 sadrži ključnu reč end Zapazite da poslednja ključna reč end uokviru junita iza sebe ima tačku (Junit može sadržati više blokova koda označenih sa begin 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 aplikacijeodnosno startuje aplikaciju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 924

9

Zadatak

1 Kreirajte još jedan osnovni junit (FileNew) i pogledajte kodDvostrukim klikom na formu Delphi će prikazati nov junit u editor koda (Code Editor)

Prazan Pascal junit 01 unit Unit202

03 interface0405 implementation0607 endOvaj junit ima dve slične stvari sa junitom koji je predhodno

prikazan Prvo junit počinje ključnom reči unit iza koje sledinaziv junita Unit2 (opet generički naziv koji kreira DelphiKljuč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 deoimplementation Prazan Listing se razlikuje od predhodnog i po tome što nema iskaz begin Glavni junit programa moraimati oba iskaza begin 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 junitaOdeljak interface je odeljak junita u okviru kog se deklarišu identifikatori koje navedeni junit izvoziIdentifikator za izvoz predstavlja identifikator kome mogu pristupiti drugi juniti u okviru projektaVeć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 azavršava se ključnom reči implementation

Odeljak implementationOdeljak za implementaciju junita je odeljak k oji 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 constOdeljak const opisuje listu promenljivih koje su poznate kao konstante

Konstanta je identifikator koji se ne može menjati NprconstDefaultWidth = 400DefaultHeight = 200Description = 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 posebnomodeljku koda koji je naznačen ključnom reči var Npr

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1024

10

varX Integer variable X declared as an integer variable Y Integer variable Y declared as an integer variable

Najčešće deklaracije promenljivih su Integer RealChar 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 314div celobrojno deljenje x = y div 10= dodeljivanje x =10And logičko i if (x=1) and (y=2) then= jednako if (x=10) thenltgt nije jednako if (xltgt10) thenlt manje je od if (xlt10) thenlt= veće ili jednako if (xlt=) 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

Label1Caption=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

Label1FontSize=20Label1FontColor=clRed

5 Startujte program6 Sačuvajte ga pod imenom KlikNaLabelu

Zadatakza 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)

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 4: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 424

4

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 r adi 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 jeiznosila npr 375 ) na 400 treba da ukucamo kod u Junitu npr

Form1Height = 400

Dakle prvo upisujemo ime objekta pa stavljamo tačku Delphi jetoliko razvijen da će automatski izbaciti listu osobina pa se lakomože izabrati Height ( visina )

Poznavatelji Pascal-a prepoznaju ovde standardni načindodeljivanja vrednosti promjenljivoj

Važno je napomenuti da ovaj kod možemo kucati samo kao deo neke procedure Dvostrukim klikom naobjekat automatski ulazimo u kod za objekat-Junit Delphi će postaviti kursor za unos naredbe tačno na

mesto gde treba da se nalazi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 524

5

Zadatak

1 Kreirajte nov projekat i dajte mu ime2

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 kategorijeStandardne komponente uključuju TButton TEdit TListBox TMemo TMainMenu TScrollBarTPopupMenu TCheckBox TRadioButton TRadioGroup TGroupBox TPanel TActionList

Komponente se postavljaju na formu aktiviranjem ikone iz Palete komponenti Posle postavke osobinekomponenti 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 Postojinekoliko svojstava koja su vezana za boju Svojstvo Color se obično odnosi na boju pozadine komponenteTakoĎ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 komponentatreba da koristi boju i font roditeljske komponente koja je obično formular

KOMPONENTE TEKSTAKomponenta Edit omogućava korisniku da unese jednu liniju teksta poravnatoj u levo

Za tekst se mogu koristiti i komponente Label i StaticTex t ali se one obično koriste za nepromenljivi tekstkao i za izlaz koji generiše program Promene se vrše karakteristikom Caption

Komponenta MaskEdit je Edit komponenta kojoj je dodat filter zaunos teksta Ona naznačava da li karakter treba da bude prikazanmalim velikim slovima ciframa i sl Npr za unos datuma se koristi

poseban format (032198) i ova kontrola definiše tu vrstu unosa Karakteristika EditMask kontroliše masku koja se koristi Kada seaktivira polje Value u Object Inspector-u otvara se dijalog prozor(Input MaskEditor) koji omogućava da izaberete jednu od ponuĎenihmaski ili da kreirate svoju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 624

6

Komponenta Memo dozvoljava unos više linija teksta ali omogućava samo jedan font za ceo tekstKarakteristika Lines iz Object Inspector-a omogućava snimanje sadržaja teksta sa diska i na diskKarakteristika 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 kontroleOpcija 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 nataster 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 Usuprotnom edit kontrola ne menja veličinu prilikom

promene veličine fonta Generička vrednost TrueCharCaseEdit MaskEdit OdreĎuje da li će edit kontrola prikazivati velika slova

(ecUpperCase) mala slova (ecLowerCase) ili normalan

tekst (ecNormal) Generička vrednost ecNormalHideScrollBars RichEdit Kada je podešena na True trake za pomeranje će biti prikazane ukoliko je to potrebno u protivnom će bitiskrivene Kada je podešena na False trake za pomeranjeće biti prikazane na osnovu vrednosti karakteristikeScrollBars

HideSelection Edit Memo RichEdit Kada je podešeno na True tekst koji je označen neće biti prikazan kao označen prilikom prelaska korisnikana narednu kontrolu pritiskom na taster Tab Generičkavrednost False

Lines Memo RichEdit Tekst koji se sadrĎi u komponenti Lines je slučaj klase

TStringsMaxLength sve Definiše maksimalan broj karaktera koje će komponenta

moći da sadrži Ukoliko je vrednost 0 može se unetineograničena dužina teksta (ograničena samo zahtevimasistema) Kada je podešena na bilo koju vrednostrazličitu od nule broj karaktera je ograničen zadatomvrednosti Generička vrednost 0

OEMConvert Edit Memo Podesite ovu karakteristiku na True kada tekst koji seunosi sadrži naziv datoteke Generička vrednost False

PasswordChar Edit MaskEdit Kada je ova karakteristika podešena na vrednostrazličitu od ASCII 0 tekst koji unosite će biti prikazan

korišćenjem definisanih karaktera Tekst u okviru editkontrole neće biti izmenjenGenerička vrednost 0

PlainText RichEdit Kada je podešena na True RTF (Rich Text Format)datoteke će biti prikazane kao običan tekst bezformatiranja karaktera i paragrafa Kada je podešena naFalse

7Text Edit MaskEdit Sadrži tekst u okviru komponenteWantReturns Memo RichEdit Kada je podešena na True komponenta zadržava

karakter za kraj reda i novu liniju koju korisnik unosi uedit kontrolu pritiskom na taster Enter Kada je

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 724

7

podešena na False karakteri za kraj reda i novu linijuulaze u formu ali se ne postavljaju u okviru editkontrole Generička vrednost True

WantTabs Memo RichEdit Kada je podešena na True kada korisnik pritisne tasterTab u edit kontrolu se upisuje karakter tab Kada je

postavljen na False tab karakteri prelaze na formuto omogućava izlazak iz edit kontrole pritiskom nataster Tab Generička vrednost False

Zadatak

1 Otvorite predhodni projekat2 Iz Palete komponenti izaberite komponentu Label1 (slovo A) i kreirajte na formu3 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 grupukomponenti u okviru panela treba da držite pritisnut taster ltCtrlgt dok prevlačite mišem kako bi odabralikomponentu Paneli se o bično koriste za naslove i delove teksta koje treba nagltzle i BorderWidth

KOMPONENTE ButtonKomponente Button karakterišu osobine ModalResult Default Cansel i Enabled Button su principusimulira klik miša pa može da zatvara Form aktivira aplikaciju i sl

Zadatak

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 naformu

4 Izmenite osobine komponenti po želji

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 824

8

JUNIT

Pascal juniti

Programiranje je više od kucanja programskog koda Pre svega programiranje je kombinacija planiranjazadatka za programiranje a zatim kucanja koda koji će izvršavati taj zadatak Kod koji kucate se upisuje utekst datoteku Prevodilac uzima ovu datoteku i prevodi je u mašinski kod koji računar može da razumeTekst 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 nastavakDPR

Drugi tip junita koji Delphijeve GUI aplikacije sadrže je junit glavne forme Junit forme i njegovnaziv ukazuju na junit izvornog koda koji mu je pridružen Ovaj tip junita ima nastavak PAS Ovajtip junita ćete u većini slučajeva koristiti u Vašim Delphi programima Delphijeve GUI aplikacijeuvek 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 formatuda bi prevodilac mogao da čita junit i prevodi kod junitaJuniti Delphi projekta sadrže ključnu reč program iza kog sledi naziv junita i kod blok koji se nalazi izmeĎuključnih reči begin i end Izvorni junit projekta za generički Delphijev projekt izgleda

Izvorni kod projekta za generički Delphijev project 01 program Project10203 uses

04 Forms05 Unit1 in Unit1pas Form10607 $R RES0809 begin10 ApplicationInitialize11 ApplicationCreateForm(TForm1 Form1)12 ApplicationRun13 end

U liniji 1 ključna reč program identifikuje junit kao glavni izvorni junit programaMožete videti da se naziv junita Project1 nalazi iza ključne reči program (Delphi daje projektu generik činaziv sve dok ne snimite projekt pod nazivom koji ima bolje značenje) Počev od linije 3 vidite deo koji jeidentifikovan 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 Spisakse završava znakom tačka-zarezU liniji 7 možete videti direktivu prevodiocu koja pokazuje Delphiju da uključi odgovarajuću resursnudatotekuLinija 9 sadr ži ključnu reč begin a linija 13 sadrži ključnu reč end Zapazite da poslednja ključna reč end uokviru junita iza sebe ima tačku (Junit može sadržati više blokova koda označenih sa begin 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 aplikacijeodnosno startuje aplikaciju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 924

9

Zadatak

1 Kreirajte još jedan osnovni junit (FileNew) i pogledajte kodDvostrukim klikom na formu Delphi će prikazati nov junit u editor koda (Code Editor)

Prazan Pascal junit 01 unit Unit202

03 interface0405 implementation0607 endOvaj junit ima dve slične stvari sa junitom koji je predhodno

prikazan Prvo junit počinje ključnom reči unit iza koje sledinaziv junita Unit2 (opet generički naziv koji kreira DelphiKljuč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 deoimplementation Prazan Listing se razlikuje od predhodnog i po tome što nema iskaz begin Glavni junit programa moraimati oba iskaza begin 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 junitaOdeljak interface je odeljak junita u okviru kog se deklarišu identifikatori koje navedeni junit izvoziIdentifikator za izvoz predstavlja identifikator kome mogu pristupiti drugi juniti u okviru projektaVeć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 azavršava se ključnom reči implementation

Odeljak implementationOdeljak za implementaciju junita je odeljak k oji 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 constOdeljak const opisuje listu promenljivih koje su poznate kao konstante

Konstanta je identifikator koji se ne može menjati NprconstDefaultWidth = 400DefaultHeight = 200Description = 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 posebnomodeljku koda koji je naznačen ključnom reči var Npr

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1024

10

varX Integer variable X declared as an integer variable Y Integer variable Y declared as an integer variable

Najčešće deklaracije promenljivih su Integer RealChar 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 314div celobrojno deljenje x = y div 10= dodeljivanje x =10And logičko i if (x=1) and (y=2) then= jednako if (x=10) thenltgt nije jednako if (xltgt10) thenlt manje je od if (xlt10) thenlt= veće ili jednako if (xlt=) 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

Label1Caption=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

Label1FontSize=20Label1FontColor=clRed

5 Startujte program6 Sačuvajte ga pod imenom KlikNaLabelu

Zadatakza 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)

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 5: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 524

5

Zadatak

1 Kreirajte nov projekat i dajte mu ime2

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 kategorijeStandardne komponente uključuju TButton TEdit TListBox TMemo TMainMenu TScrollBarTPopupMenu TCheckBox TRadioButton TRadioGroup TGroupBox TPanel TActionList

Komponente se postavljaju na formu aktiviranjem ikone iz Palete komponenti Posle postavke osobinekomponenti 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 Postojinekoliko svojstava koja su vezana za boju Svojstvo Color se obično odnosi na boju pozadine komponenteTakoĎ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 komponentatreba da koristi boju i font roditeljske komponente koja je obično formular

KOMPONENTE TEKSTAKomponenta Edit omogućava korisniku da unese jednu liniju teksta poravnatoj u levo

Za tekst se mogu koristiti i komponente Label i StaticTex t ali se one obično koriste za nepromenljivi tekstkao i za izlaz koji generiše program Promene se vrše karakteristikom Caption

Komponenta MaskEdit je Edit komponenta kojoj je dodat filter zaunos teksta Ona naznačava da li karakter treba da bude prikazanmalim velikim slovima ciframa i sl Npr za unos datuma se koristi

poseban format (032198) i ova kontrola definiše tu vrstu unosa Karakteristika EditMask kontroliše masku koja se koristi Kada seaktivira polje Value u Object Inspector-u otvara se dijalog prozor(Input MaskEditor) koji omogućava da izaberete jednu od ponuĎenihmaski ili da kreirate svoju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 624

6

Komponenta Memo dozvoljava unos više linija teksta ali omogućava samo jedan font za ceo tekstKarakteristika Lines iz Object Inspector-a omogućava snimanje sadržaja teksta sa diska i na diskKarakteristika 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 kontroleOpcija 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 nataster 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 Usuprotnom edit kontrola ne menja veličinu prilikom

promene veličine fonta Generička vrednost TrueCharCaseEdit MaskEdit OdreĎuje da li će edit kontrola prikazivati velika slova

(ecUpperCase) mala slova (ecLowerCase) ili normalan

tekst (ecNormal) Generička vrednost ecNormalHideScrollBars RichEdit Kada je podešena na True trake za pomeranje će biti prikazane ukoliko je to potrebno u protivnom će bitiskrivene Kada je podešena na False trake za pomeranjeće biti prikazane na osnovu vrednosti karakteristikeScrollBars

HideSelection Edit Memo RichEdit Kada je podešeno na True tekst koji je označen neće biti prikazan kao označen prilikom prelaska korisnikana narednu kontrolu pritiskom na taster Tab Generičkavrednost False

Lines Memo RichEdit Tekst koji se sadrĎi u komponenti Lines je slučaj klase

TStringsMaxLength sve Definiše maksimalan broj karaktera koje će komponenta

moći da sadrži Ukoliko je vrednost 0 može se unetineograničena dužina teksta (ograničena samo zahtevimasistema) Kada je podešena na bilo koju vrednostrazličitu od nule broj karaktera je ograničen zadatomvrednosti Generička vrednost 0

OEMConvert Edit Memo Podesite ovu karakteristiku na True kada tekst koji seunosi sadrži naziv datoteke Generička vrednost False

PasswordChar Edit MaskEdit Kada je ova karakteristika podešena na vrednostrazličitu od ASCII 0 tekst koji unosite će biti prikazan

korišćenjem definisanih karaktera Tekst u okviru editkontrole neće biti izmenjenGenerička vrednost 0

PlainText RichEdit Kada je podešena na True RTF (Rich Text Format)datoteke će biti prikazane kao običan tekst bezformatiranja karaktera i paragrafa Kada je podešena naFalse

7Text Edit MaskEdit Sadrži tekst u okviru komponenteWantReturns Memo RichEdit Kada je podešena na True komponenta zadržava

karakter za kraj reda i novu liniju koju korisnik unosi uedit kontrolu pritiskom na taster Enter Kada je

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 724

7

podešena na False karakteri za kraj reda i novu linijuulaze u formu ali se ne postavljaju u okviru editkontrole Generička vrednost True

WantTabs Memo RichEdit Kada je podešena na True kada korisnik pritisne tasterTab u edit kontrolu se upisuje karakter tab Kada je

postavljen na False tab karakteri prelaze na formuto omogućava izlazak iz edit kontrole pritiskom nataster Tab Generička vrednost False

Zadatak

1 Otvorite predhodni projekat2 Iz Palete komponenti izaberite komponentu Label1 (slovo A) i kreirajte na formu3 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 grupukomponenti u okviru panela treba da držite pritisnut taster ltCtrlgt dok prevlačite mišem kako bi odabralikomponentu Paneli se o bično koriste za naslove i delove teksta koje treba nagltzle i BorderWidth

KOMPONENTE ButtonKomponente Button karakterišu osobine ModalResult Default Cansel i Enabled Button su principusimulira klik miša pa može da zatvara Form aktivira aplikaciju i sl

Zadatak

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 naformu

4 Izmenite osobine komponenti po želji

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 824

8

JUNIT

Pascal juniti

Programiranje je više od kucanja programskog koda Pre svega programiranje je kombinacija planiranjazadatka za programiranje a zatim kucanja koda koji će izvršavati taj zadatak Kod koji kucate se upisuje utekst datoteku Prevodilac uzima ovu datoteku i prevodi je u mašinski kod koji računar može da razumeTekst 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 nastavakDPR

Drugi tip junita koji Delphijeve GUI aplikacije sadrže je junit glavne forme Junit forme i njegovnaziv ukazuju na junit izvornog koda koji mu je pridružen Ovaj tip junita ima nastavak PAS Ovajtip junita ćete u većini slučajeva koristiti u Vašim Delphi programima Delphijeve GUI aplikacijeuvek 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 formatuda bi prevodilac mogao da čita junit i prevodi kod junitaJuniti Delphi projekta sadrže ključnu reč program iza kog sledi naziv junita i kod blok koji se nalazi izmeĎuključnih reči begin i end Izvorni junit projekta za generički Delphijev projekt izgleda

Izvorni kod projekta za generički Delphijev project 01 program Project10203 uses

04 Forms05 Unit1 in Unit1pas Form10607 $R RES0809 begin10 ApplicationInitialize11 ApplicationCreateForm(TForm1 Form1)12 ApplicationRun13 end

U liniji 1 ključna reč program identifikuje junit kao glavni izvorni junit programaMožete videti da se naziv junita Project1 nalazi iza ključne reči program (Delphi daje projektu generik činaziv sve dok ne snimite projekt pod nazivom koji ima bolje značenje) Počev od linije 3 vidite deo koji jeidentifikovan 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 Spisakse završava znakom tačka-zarezU liniji 7 možete videti direktivu prevodiocu koja pokazuje Delphiju da uključi odgovarajuću resursnudatotekuLinija 9 sadr ži ključnu reč begin a linija 13 sadrži ključnu reč end Zapazite da poslednja ključna reč end uokviru junita iza sebe ima tačku (Junit može sadržati više blokova koda označenih sa begin 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 aplikacijeodnosno startuje aplikaciju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 924

9

Zadatak

1 Kreirajte još jedan osnovni junit (FileNew) i pogledajte kodDvostrukim klikom na formu Delphi će prikazati nov junit u editor koda (Code Editor)

Prazan Pascal junit 01 unit Unit202

03 interface0405 implementation0607 endOvaj junit ima dve slične stvari sa junitom koji je predhodno

prikazan Prvo junit počinje ključnom reči unit iza koje sledinaziv junita Unit2 (opet generički naziv koji kreira DelphiKljuč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 deoimplementation Prazan Listing se razlikuje od predhodnog i po tome što nema iskaz begin Glavni junit programa moraimati oba iskaza begin 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 junitaOdeljak interface je odeljak junita u okviru kog se deklarišu identifikatori koje navedeni junit izvoziIdentifikator za izvoz predstavlja identifikator kome mogu pristupiti drugi juniti u okviru projektaVeć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 azavršava se ključnom reči implementation

Odeljak implementationOdeljak za implementaciju junita je odeljak k oji 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 constOdeljak const opisuje listu promenljivih koje su poznate kao konstante

Konstanta je identifikator koji se ne može menjati NprconstDefaultWidth = 400DefaultHeight = 200Description = 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 posebnomodeljku koda koji je naznačen ključnom reči var Npr

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1024

10

varX Integer variable X declared as an integer variable Y Integer variable Y declared as an integer variable

Najčešće deklaracije promenljivih su Integer RealChar 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 314div celobrojno deljenje x = y div 10= dodeljivanje x =10And logičko i if (x=1) and (y=2) then= jednako if (x=10) thenltgt nije jednako if (xltgt10) thenlt manje je od if (xlt10) thenlt= veće ili jednako if (xlt=) 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

Label1Caption=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

Label1FontSize=20Label1FontColor=clRed

5 Startujte program6 Sačuvajte ga pod imenom KlikNaLabelu

Zadatakza 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)

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 6: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 624

6

Komponenta Memo dozvoljava unos više linija teksta ali omogućava samo jedan font za ceo tekstKarakteristika Lines iz Object Inspector-a omogućava snimanje sadržaja teksta sa diska i na diskKarakteristika 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 kontroleOpcija 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 nataster 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 Usuprotnom edit kontrola ne menja veličinu prilikom

promene veličine fonta Generička vrednost TrueCharCaseEdit MaskEdit OdreĎuje da li će edit kontrola prikazivati velika slova

(ecUpperCase) mala slova (ecLowerCase) ili normalan

tekst (ecNormal) Generička vrednost ecNormalHideScrollBars RichEdit Kada je podešena na True trake za pomeranje će biti prikazane ukoliko je to potrebno u protivnom će bitiskrivene Kada je podešena na False trake za pomeranjeće biti prikazane na osnovu vrednosti karakteristikeScrollBars

HideSelection Edit Memo RichEdit Kada je podešeno na True tekst koji je označen neće biti prikazan kao označen prilikom prelaska korisnikana narednu kontrolu pritiskom na taster Tab Generičkavrednost False

Lines Memo RichEdit Tekst koji se sadrĎi u komponenti Lines je slučaj klase

TStringsMaxLength sve Definiše maksimalan broj karaktera koje će komponenta

moći da sadrži Ukoliko je vrednost 0 može se unetineograničena dužina teksta (ograničena samo zahtevimasistema) Kada je podešena na bilo koju vrednostrazličitu od nule broj karaktera je ograničen zadatomvrednosti Generička vrednost 0

OEMConvert Edit Memo Podesite ovu karakteristiku na True kada tekst koji seunosi sadrži naziv datoteke Generička vrednost False

PasswordChar Edit MaskEdit Kada je ova karakteristika podešena na vrednostrazličitu od ASCII 0 tekst koji unosite će biti prikazan

korišćenjem definisanih karaktera Tekst u okviru editkontrole neće biti izmenjenGenerička vrednost 0

PlainText RichEdit Kada je podešena na True RTF (Rich Text Format)datoteke će biti prikazane kao običan tekst bezformatiranja karaktera i paragrafa Kada je podešena naFalse

7Text Edit MaskEdit Sadrži tekst u okviru komponenteWantReturns Memo RichEdit Kada je podešena na True komponenta zadržava

karakter za kraj reda i novu liniju koju korisnik unosi uedit kontrolu pritiskom na taster Enter Kada je

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 724

7

podešena na False karakteri za kraj reda i novu linijuulaze u formu ali se ne postavljaju u okviru editkontrole Generička vrednost True

WantTabs Memo RichEdit Kada je podešena na True kada korisnik pritisne tasterTab u edit kontrolu se upisuje karakter tab Kada je

postavljen na False tab karakteri prelaze na formuto omogućava izlazak iz edit kontrole pritiskom nataster Tab Generička vrednost False

Zadatak

1 Otvorite predhodni projekat2 Iz Palete komponenti izaberite komponentu Label1 (slovo A) i kreirajte na formu3 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 grupukomponenti u okviru panela treba da držite pritisnut taster ltCtrlgt dok prevlačite mišem kako bi odabralikomponentu Paneli se o bično koriste za naslove i delove teksta koje treba nagltzle i BorderWidth

KOMPONENTE ButtonKomponente Button karakterišu osobine ModalResult Default Cansel i Enabled Button su principusimulira klik miša pa može da zatvara Form aktivira aplikaciju i sl

Zadatak

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 naformu

4 Izmenite osobine komponenti po želji

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 824

8

JUNIT

Pascal juniti

Programiranje je više od kucanja programskog koda Pre svega programiranje je kombinacija planiranjazadatka za programiranje a zatim kucanja koda koji će izvršavati taj zadatak Kod koji kucate se upisuje utekst datoteku Prevodilac uzima ovu datoteku i prevodi je u mašinski kod koji računar može da razumeTekst 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 nastavakDPR

Drugi tip junita koji Delphijeve GUI aplikacije sadrže je junit glavne forme Junit forme i njegovnaziv ukazuju na junit izvornog koda koji mu je pridružen Ovaj tip junita ima nastavak PAS Ovajtip junita ćete u većini slučajeva koristiti u Vašim Delphi programima Delphijeve GUI aplikacijeuvek 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 formatuda bi prevodilac mogao da čita junit i prevodi kod junitaJuniti Delphi projekta sadrže ključnu reč program iza kog sledi naziv junita i kod blok koji se nalazi izmeĎuključnih reči begin i end Izvorni junit projekta za generički Delphijev projekt izgleda

Izvorni kod projekta za generički Delphijev project 01 program Project10203 uses

04 Forms05 Unit1 in Unit1pas Form10607 $R RES0809 begin10 ApplicationInitialize11 ApplicationCreateForm(TForm1 Form1)12 ApplicationRun13 end

U liniji 1 ključna reč program identifikuje junit kao glavni izvorni junit programaMožete videti da se naziv junita Project1 nalazi iza ključne reči program (Delphi daje projektu generik činaziv sve dok ne snimite projekt pod nazivom koji ima bolje značenje) Počev od linije 3 vidite deo koji jeidentifikovan 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 Spisakse završava znakom tačka-zarezU liniji 7 možete videti direktivu prevodiocu koja pokazuje Delphiju da uključi odgovarajuću resursnudatotekuLinija 9 sadr ži ključnu reč begin a linija 13 sadrži ključnu reč end Zapazite da poslednja ključna reč end uokviru junita iza sebe ima tačku (Junit može sadržati više blokova koda označenih sa begin 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 aplikacijeodnosno startuje aplikaciju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 924

9

Zadatak

1 Kreirajte još jedan osnovni junit (FileNew) i pogledajte kodDvostrukim klikom na formu Delphi će prikazati nov junit u editor koda (Code Editor)

Prazan Pascal junit 01 unit Unit202

03 interface0405 implementation0607 endOvaj junit ima dve slične stvari sa junitom koji je predhodno

prikazan Prvo junit počinje ključnom reči unit iza koje sledinaziv junita Unit2 (opet generički naziv koji kreira DelphiKljuč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 deoimplementation Prazan Listing se razlikuje od predhodnog i po tome što nema iskaz begin Glavni junit programa moraimati oba iskaza begin 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 junitaOdeljak interface je odeljak junita u okviru kog se deklarišu identifikatori koje navedeni junit izvoziIdentifikator za izvoz predstavlja identifikator kome mogu pristupiti drugi juniti u okviru projektaVeć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 azavršava se ključnom reči implementation

Odeljak implementationOdeljak za implementaciju junita je odeljak k oji 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 constOdeljak const opisuje listu promenljivih koje su poznate kao konstante

Konstanta je identifikator koji se ne može menjati NprconstDefaultWidth = 400DefaultHeight = 200Description = 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 posebnomodeljku koda koji je naznačen ključnom reči var Npr

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1024

10

varX Integer variable X declared as an integer variable Y Integer variable Y declared as an integer variable

Najčešće deklaracije promenljivih su Integer RealChar 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 314div celobrojno deljenje x = y div 10= dodeljivanje x =10And logičko i if (x=1) and (y=2) then= jednako if (x=10) thenltgt nije jednako if (xltgt10) thenlt manje je od if (xlt10) thenlt= veće ili jednako if (xlt=) 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

Label1Caption=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

Label1FontSize=20Label1FontColor=clRed

5 Startujte program6 Sačuvajte ga pod imenom KlikNaLabelu

Zadatakza 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)

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 7: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 724

7

podešena na False karakteri za kraj reda i novu linijuulaze u formu ali se ne postavljaju u okviru editkontrole Generička vrednost True

WantTabs Memo RichEdit Kada je podešena na True kada korisnik pritisne tasterTab u edit kontrolu se upisuje karakter tab Kada je

postavljen na False tab karakteri prelaze na formuto omogućava izlazak iz edit kontrole pritiskom nataster Tab Generička vrednost False

Zadatak

1 Otvorite predhodni projekat2 Iz Palete komponenti izaberite komponentu Label1 (slovo A) i kreirajte na formu3 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 grupukomponenti u okviru panela treba da držite pritisnut taster ltCtrlgt dok prevlačite mišem kako bi odabralikomponentu Paneli se o bično koriste za naslove i delove teksta koje treba nagltzle i BorderWidth

KOMPONENTE ButtonKomponente Button karakterišu osobine ModalResult Default Cansel i Enabled Button su principusimulira klik miša pa može da zatvara Form aktivira aplikaciju i sl

Zadatak

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 naformu

4 Izmenite osobine komponenti po želji

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 824

8

JUNIT

Pascal juniti

Programiranje je više od kucanja programskog koda Pre svega programiranje je kombinacija planiranjazadatka za programiranje a zatim kucanja koda koji će izvršavati taj zadatak Kod koji kucate se upisuje utekst datoteku Prevodilac uzima ovu datoteku i prevodi je u mašinski kod koji računar može da razumeTekst 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 nastavakDPR

Drugi tip junita koji Delphijeve GUI aplikacije sadrže je junit glavne forme Junit forme i njegovnaziv ukazuju na junit izvornog koda koji mu je pridružen Ovaj tip junita ima nastavak PAS Ovajtip junita ćete u većini slučajeva koristiti u Vašim Delphi programima Delphijeve GUI aplikacijeuvek 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 formatuda bi prevodilac mogao da čita junit i prevodi kod junitaJuniti Delphi projekta sadrže ključnu reč program iza kog sledi naziv junita i kod blok koji se nalazi izmeĎuključnih reči begin i end Izvorni junit projekta za generički Delphijev projekt izgleda

Izvorni kod projekta za generički Delphijev project 01 program Project10203 uses

04 Forms05 Unit1 in Unit1pas Form10607 $R RES0809 begin10 ApplicationInitialize11 ApplicationCreateForm(TForm1 Form1)12 ApplicationRun13 end

U liniji 1 ključna reč program identifikuje junit kao glavni izvorni junit programaMožete videti da se naziv junita Project1 nalazi iza ključne reči program (Delphi daje projektu generik činaziv sve dok ne snimite projekt pod nazivom koji ima bolje značenje) Počev od linije 3 vidite deo koji jeidentifikovan 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 Spisakse završava znakom tačka-zarezU liniji 7 možete videti direktivu prevodiocu koja pokazuje Delphiju da uključi odgovarajuću resursnudatotekuLinija 9 sadr ži ključnu reč begin a linija 13 sadrži ključnu reč end Zapazite da poslednja ključna reč end uokviru junita iza sebe ima tačku (Junit može sadržati više blokova koda označenih sa begin 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 aplikacijeodnosno startuje aplikaciju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 924

9

Zadatak

1 Kreirajte još jedan osnovni junit (FileNew) i pogledajte kodDvostrukim klikom na formu Delphi će prikazati nov junit u editor koda (Code Editor)

Prazan Pascal junit 01 unit Unit202

03 interface0405 implementation0607 endOvaj junit ima dve slične stvari sa junitom koji je predhodno

prikazan Prvo junit počinje ključnom reči unit iza koje sledinaziv junita Unit2 (opet generički naziv koji kreira DelphiKljuč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 deoimplementation Prazan Listing se razlikuje od predhodnog i po tome što nema iskaz begin Glavni junit programa moraimati oba iskaza begin 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 junitaOdeljak interface je odeljak junita u okviru kog se deklarišu identifikatori koje navedeni junit izvoziIdentifikator za izvoz predstavlja identifikator kome mogu pristupiti drugi juniti u okviru projektaVeć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 azavršava se ključnom reči implementation

Odeljak implementationOdeljak za implementaciju junita je odeljak k oji 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 constOdeljak const opisuje listu promenljivih koje su poznate kao konstante

Konstanta je identifikator koji se ne može menjati NprconstDefaultWidth = 400DefaultHeight = 200Description = 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 posebnomodeljku koda koji je naznačen ključnom reči var Npr

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1024

10

varX Integer variable X declared as an integer variable Y Integer variable Y declared as an integer variable

Najčešće deklaracije promenljivih su Integer RealChar 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 314div celobrojno deljenje x = y div 10= dodeljivanje x =10And logičko i if (x=1) and (y=2) then= jednako if (x=10) thenltgt nije jednako if (xltgt10) thenlt manje je od if (xlt10) thenlt= veće ili jednako if (xlt=) 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

Label1Caption=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

Label1FontSize=20Label1FontColor=clRed

5 Startujte program6 Sačuvajte ga pod imenom KlikNaLabelu

Zadatakza 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)

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 8: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 824

8

JUNIT

Pascal juniti

Programiranje je više od kucanja programskog koda Pre svega programiranje je kombinacija planiranjazadatka za programiranje a zatim kucanja koda koji će izvršavati taj zadatak Kod koji kucate se upisuje utekst datoteku Prevodilac uzima ovu datoteku i prevodi je u mašinski kod koji računar može da razumeTekst 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 nastavakDPR

Drugi tip junita koji Delphijeve GUI aplikacije sadrže je junit glavne forme Junit forme i njegovnaziv ukazuju na junit izvornog koda koji mu je pridružen Ovaj tip junita ima nastavak PAS Ovajtip junita ćete u većini slučajeva koristiti u Vašim Delphi programima Delphijeve GUI aplikacijeuvek 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 formatuda bi prevodilac mogao da čita junit i prevodi kod junitaJuniti Delphi projekta sadrže ključnu reč program iza kog sledi naziv junita i kod blok koji se nalazi izmeĎuključnih reči begin i end Izvorni junit projekta za generički Delphijev projekt izgleda

Izvorni kod projekta za generički Delphijev project 01 program Project10203 uses

04 Forms05 Unit1 in Unit1pas Form10607 $R RES0809 begin10 ApplicationInitialize11 ApplicationCreateForm(TForm1 Form1)12 ApplicationRun13 end

U liniji 1 ključna reč program identifikuje junit kao glavni izvorni junit programaMožete videti da se naziv junita Project1 nalazi iza ključne reči program (Delphi daje projektu generik činaziv sve dok ne snimite projekt pod nazivom koji ima bolje značenje) Počev od linije 3 vidite deo koji jeidentifikovan 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 Spisakse završava znakom tačka-zarezU liniji 7 možete videti direktivu prevodiocu koja pokazuje Delphiju da uključi odgovarajuću resursnudatotekuLinija 9 sadr ži ključnu reč begin a linija 13 sadrži ključnu reč end Zapazite da poslednja ključna reč end uokviru junita iza sebe ima tačku (Junit može sadržati više blokova koda označenih sa begin 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 aplikacijeodnosno startuje aplikaciju

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 924

9

Zadatak

1 Kreirajte još jedan osnovni junit (FileNew) i pogledajte kodDvostrukim klikom na formu Delphi će prikazati nov junit u editor koda (Code Editor)

Prazan Pascal junit 01 unit Unit202

03 interface0405 implementation0607 endOvaj junit ima dve slične stvari sa junitom koji je predhodno

prikazan Prvo junit počinje ključnom reči unit iza koje sledinaziv junita Unit2 (opet generički naziv koji kreira DelphiKljuč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 deoimplementation Prazan Listing se razlikuje od predhodnog i po tome što nema iskaz begin Glavni junit programa moraimati oba iskaza begin 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 junitaOdeljak interface je odeljak junita u okviru kog se deklarišu identifikatori koje navedeni junit izvoziIdentifikator za izvoz predstavlja identifikator kome mogu pristupiti drugi juniti u okviru projektaVeć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 azavršava se ključnom reči implementation

Odeljak implementationOdeljak za implementaciju junita je odeljak k oji 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 constOdeljak const opisuje listu promenljivih koje su poznate kao konstante

Konstanta je identifikator koji se ne može menjati NprconstDefaultWidth = 400DefaultHeight = 200Description = 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 posebnomodeljku koda koji je naznačen ključnom reči var Npr

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1024

10

varX Integer variable X declared as an integer variable Y Integer variable Y declared as an integer variable

Najčešće deklaracije promenljivih su Integer RealChar 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 314div celobrojno deljenje x = y div 10= dodeljivanje x =10And logičko i if (x=1) and (y=2) then= jednako if (x=10) thenltgt nije jednako if (xltgt10) thenlt manje je od if (xlt10) thenlt= veće ili jednako if (xlt=) 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

Label1Caption=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

Label1FontSize=20Label1FontColor=clRed

5 Startujte program6 Sačuvajte ga pod imenom KlikNaLabelu

Zadatakza 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)

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 9: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 924

9

Zadatak

1 Kreirajte još jedan osnovni junit (FileNew) i pogledajte kodDvostrukim klikom na formu Delphi će prikazati nov junit u editor koda (Code Editor)

Prazan Pascal junit 01 unit Unit202

03 interface0405 implementation0607 endOvaj junit ima dve slične stvari sa junitom koji je predhodno

prikazan Prvo junit počinje ključnom reči unit iza koje sledinaziv junita Unit2 (opet generički naziv koji kreira DelphiKljuč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 deoimplementation Prazan Listing se razlikuje od predhodnog i po tome što nema iskaz begin Glavni junit programa moraimati oba iskaza begin 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 junitaOdeljak interface je odeljak junita u okviru kog se deklarišu identifikatori koje navedeni junit izvoziIdentifikator za izvoz predstavlja identifikator kome mogu pristupiti drugi juniti u okviru projektaVeć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 azavršava se ključnom reči implementation

Odeljak implementationOdeljak za implementaciju junita je odeljak k oji 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 constOdeljak const opisuje listu promenljivih koje su poznate kao konstante

Konstanta je identifikator koji se ne može menjati NprconstDefaultWidth = 400DefaultHeight = 200Description = 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 posebnomodeljku koda koji je naznačen ključnom reči var Npr

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1024

10

varX Integer variable X declared as an integer variable Y Integer variable Y declared as an integer variable

Najčešće deklaracije promenljivih su Integer RealChar 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 314div celobrojno deljenje x = y div 10= dodeljivanje x =10And logičko i if (x=1) and (y=2) then= jednako if (x=10) thenltgt nije jednako if (xltgt10) thenlt manje je od if (xlt10) thenlt= veće ili jednako if (xlt=) 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

Label1Caption=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

Label1FontSize=20Label1FontColor=clRed

5 Startujte program6 Sačuvajte ga pod imenom KlikNaLabelu

Zadatakza 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)

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 10: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1024

10

varX Integer variable X declared as an integer variable Y Integer variable Y declared as an integer variable

Najčešće deklaracije promenljivih su Integer RealChar 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 314div celobrojno deljenje x = y div 10= dodeljivanje x =10And logičko i if (x=1) and (y=2) then= jednako if (x=10) thenltgt nije jednako if (xltgt10) thenlt manje je od if (xlt10) thenlt= veće ili jednako if (xlt=) 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

Label1Caption=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

Label1FontSize=20Label1FontColor=clRed

5 Startujte program6 Sačuvajte ga pod imenom KlikNaLabelu

Zadatakza 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)

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 11: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1124

11

Zadatak Kreirati aplikaviju koja će sabirati dva uneta broja

1 Promenite svojstva forme Name-gtAritmetika Caption-gtKalkulator2

Dodajte na formu 3 Edit-a

Name-gtprvibroj drugibroj i rezultat Caption-gt00 i prazno polje

3

Ispred Edit-a kreirajte tri Label-e sa osobinama

Name-gtporuka1 poruka2 porukarezultat Caption-gtprvi sabirak drugi sabirak i zbir

4 Kreirati jedan Baton Captio-gt+ Name-gtZbir U Inspektor objektu odaberite karticu

EventsOnClik 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

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 12: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1224

12

Zadatak Napisati program kojim se menja boja pozadine forme Na formi postaviti tri tastera sa nazivimacrvena plava i zelena Pritiskom na odgovarajuć taster menja se boja forme Postaviti labelu sa nazivomldquoPromena pozadine formerdquo Formi dati naziv Primer1

procedure TForm1Button1Click(Sender TObject) begin

Form1Color = clRedend

procedure TForm1Button2Click(Sender TObject) begin

Form1Color = clBlueend

procedure TForm1Button4Click(Sender TObject) begin

Form1Color = clGreenend

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 na žuto U slučaju dvostrukog klika na Edit kontrolu ispisuje u Edit kontroli poruku Napravili ste dvostrukiklik

Ispisuje hint(savet) za Edit kontrolu klikni 2 puta

Zatvara formu klikom na dugme (Caption Kraj)

Procedure TForm1FormCreate(Sender TObject)

beginEdit1Text=Form1Color=clYellowend

procedure TForm1Edit1DblClick(Sender TObject) beginEdit1Text=Napravili ste DblClickend

procedure TForm1btKrajClick(Sender TObject)

beginCloseend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 13: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1324

13

Zadatak Kreirati aplikaciju koja će ispisati pozdravnu poruku kada se klikne na taster (Botton) koji je dodatna formi

- Podesiti za taster sledeća svojstva Caption-Klik na dugme u Inspector ObjektuEvants dogaĎaj

OnClick- U nazivu procedure treba da piše

procedure TForm1Button1Click procedure imeformeimedugmetaClick

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 imože im se pristupiti sa Memo1Lines[0] Memo1Lines[1] Memo1Lines[i]

Memo1Lines [Memo1LinesCount[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ćeEdit polje (žuta pozadina sa plavim brojevima) za prikaz največeg člananiza Traženje najvećeg člana niza počni pritiskom na tater PronadjiFormi 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 seunose članovi niza

Glavni deo koda ovog programa je sledeći

procedure TForm1Ponisti(Sender TObject)

Var i integer

begin

For i=1 To 100 Do

a[i]=0

end

procedure TForm1Button1Click(Sender TObject)

Var

maxijngr integers string

begin

For i=0 To 9 Do

Begin

s=Memo1Lines[i]

Val(sngr) j=i+1

If gr = 0 Then a[j]=StrToInt(Memo1Lines[i])

End

max=a[1]

For i=1 To 10 Do

If a[i] gt max Then max=a[i]

Edit1Text=IntToStr(max)

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 14: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1424

14

COMPONENTE ListBox i ComboBox

Komponente ListBox i ComboBox se često koriste Komponenta ListBox predstavlja standardni Windowsokvir 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 levojstrani je običan okvir za listu prikazuje grupe dugmadi koje možete odabrati Okvirza listu na desnoj strani je k orisnički definisan okvir za listu pokazuje dugmad kojaće se pojaviti na traci sa alatima kao i tekst opisa funkcije koju dugme izvršavaKombo okviri su specijalizovani okviri za liste Ustvari kombo okvir jekombinacija okvira za listu i edit kontrole Korisnik može odabrati opciju sa liste odnosno upisati vrednostu deo za editovanje Kada korisnik odabere opciju sa liste opcija se postavlja u edit kontrolu Postoje trirazlič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 5121023 2111 4780 i 27500 Date brojeve upisati u ListBoxkomponentu (boja pozadine clCream a boja brojeva plava) Na formidefinisati 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šidecimalni Izgled forme rešenja ovog zadataka prikazan je na donjojslici

Forma koristi novu komponentu ListBox koja sadrži niz stavki unašem primeru brojeva i omuguće da se izabere jedna (a može i višestavki) Prtitskom na svojstvo Items otvoriće se ekran String List

Editor pomoću kojeg upišemo članove te liste što je prikazano nadonjoj slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Li stBox1Cl ick(Sender TObject)

Var

iinteger

begin

i=ListBox1ItemIndex Edit1Text =IntToHex(StrToInt(ListBox1Items[i])2)

end

end

Glavne karakteristike ovog programa

U proceduri ListBox1Click (koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog broja (i=ListBox1ItemIndex) a zatim prikažemo njegovu heksa pr ezentaciju u polju Edit1 Za to koristimo funkciju IntToHex koja pretvara celi broj u heksadecimalni kao ifunkciju StrToInt koja odabrani broj iz ListBox-a (koji je string) pretvori u ceo broj

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 15: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1524

15

Zadatak Kreirati aplikaciju za unošenje niza realnih brojeva preko tastature Brojevi se unose pomoću Edit- polja ComboBoxa Na kraju unosa svakog broja pritisnuti taster ltEntergt

- Izgled otvorenog ComboBoxa (Style-csDropDown) je na slici

- Odgovarajući programski kod je

U procedure se proverava da li je pritisnut taster ltEntergt- kod13 i zatim se upisani tekst dodajeComboBoxu briše se sadržaj Edt polja ComboBoxa (ComboBox1Text) 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 brojaelemenata

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 16: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1624

16

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 linijei kriveKoordinata početne leve-gornje tačke je (00) a naredba za iscrtavanje linije je u okviru procedure ili funkcije Npr

convasLineTo(xy)convasMoveTo (xy)

Zadatak Kreirati aplikaciju koja će aktiviranjem tastera ltCRTAJgtnacrtati kocku sledećeg izgleda

1 Kreirati taster Button ltCRTAJgt 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 ltISCRTAVANJE TROUGLAgt

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 17: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1724

17

Zadataci za vežbu 1) Kreirati aplikaciju koja će aktiviranjem taster a iscrtati pravougli trougao2) 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 TForm1Button1Click(Sender TObject)

var

iinteger

asdhbvhampreal

begina=strtofloat(edit1Text)

s=strtofloat(edit2Text)b=sqr(a)

h=sqrt(sqr(s)-sqr(d2))

v=bh3

m=2aha

ha=sqrt(ss-(a2)(a2))

p=b+m

edit3Text=floattostr(v)

edit4Text=floattostr(p)

end

- U Proceduru za Button2 uneti kod

procedure TForm1Button2Click(Sender TObject)

beginclose

end

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 18: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1824

18

KOMPONENTA CheckBoxKomponenta 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 aplikacijekorisnik 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 sliciAktiviranjem CheckBox se menjaju veličina boja i ispis teksta

KOMPONENTA RadioButton

RadioButton se koristi za izbor jedne od više ponuĎenih stavki Grafički ova komponenta ima krug-čeksa natpisom pored Prazan krug označava stavku koja nije aktivna U toku izvršavanja aplikacije korisnikmože menjati stanje komponente Natpis pored kružića se podešavaju preko svojstva Caption Stanjekomponente 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)

Checkbox1- menja veličinu slova 25-10

Checkbox2- menja tekst Dobar dan

Checkbox3- menja boju crvena-zelena

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 19: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 1924

19

Zadatak2 Kreirati aplikaciju RadioGrup1 sa 7 Radiobuttons kao na slici i Label1Prilikom aktiviranja Radiobuttons-a u labeli se ispisuju dani u nedelji

Zadatak3 Kreirati aplikaciju za izračunavanje +- kao na slici

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 20: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2024

20

Zadaci za vežbu

1 Kreirati aplikaciju koja će menjatitekst Svoje ime-gtnadimak

veličinu slova 15-gt30 boje crvena-gtžuta

2 Kreirati aplikaciju koja će čekiranjem R adioButtons (12) menjati imena meseca u godini

3 Kreirati aplikaciju koja će čekiranjem RadioButtons-a (2) izračunavati površinu i zapreminu pravougaonika

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 21: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2124

21

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 NameSu Podešena redom koefA koefB koefC Edx1 и Edx2Dodati taster za aktiviranje rešenja SvojstvoCaption podesiti na Resi jednacinu

Dadoti 7 Labela sa svojstvom Caption kao na sliciLabeli iznad rešenja je podešeno svojstvo Name u porukaSvojstvo Button1 je u kodu

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 22: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2224

22

Zadatak Kreirati aplikaciju koja računa kilometražu kao na slici

Zadatak Napraviti aplikaciju koja će pozdraviti na više jezika kao na slici

Glavni deo koda ovog programa je sledeći

procedure TForm1Button1Cli ck(Sender TObject)

begin If SrpskiChecked Then Begin Edit1Text=Dobar dan Label2Caption=Srpski End If EngleskiChecked Then Begin Edit1Text=Hello Label2Caption=Engleski End If NemackiChecked Then Begin Edit1Text=Guten Tag Label2Caption=Nemacki End If FrancuskiChecked Then Begin Edit1Text=Bonjour Label2Caption=Francuski End If HavajskiChecked Then Begin Edit1Text=Aloha Label2Caption=Havajski End If HebrejskiChecked Then Begin Edit1Text=Shalom Label2Caption=Hebrejski End

end

procedure TF orm1Postavi(Sender TObject) begin

SrpskiChecked=True Edit1Text=Dobar dan Label2Caption=Srpskiend

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

procedure TForm1Button1Click(SenderTObject)var slcx real

begins=strtofloat (edit1Text)c=strtofloat (edit2Text)

l=strtofloat (edit3Text)x=strtofloat (edit4Text)x=2slc100

endend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 23: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2324

23

Zadatak Kreirati aplikaciju koja pronalazi delioce zadatog broja i ispisuje ih u rastućem iliopadajućem poretku

Zadatak Kreirati aplikaciju koja će pretvarati decimalni u binarni broj

procedure TForm1Button1Click(Sender TObject)var ijbrinteger sstring begins= br=0val(edit1textij)if jltgt 0 then Showmessage(Greska na poziciji +inttostr(j))else beginfor j=i downto 1 do

if i mod j =0 then beginif checkBox1Checked then s=inttostr(j)+ +selse s=s+inttostr(j)+ br=br+1endMemo1text=sLabel1Caption=Ukupno+inttostr(br)endendend

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend

Page 24: Skola Delphi

7232019 Skola Delphi

httpslidepdfcomreaderfullskola-delphi 2424

24

Zadaci za vežbu

1 Kreirati aplikaciju koja ispisuje reć ldquo Zdravordquo na 4 jezika 2 Kreirati aplikaciju koja će za zadatu temperature u Celzijusima izračunati

temperature u Farenhajtima

procedure TForm1ComboBox1Change(Sender TObject)Var

ingrintegersstring

begini=ComboBox1ItemIndexs=ComboBox1Items[i]Val(sngr)

If gr ltgt 0 Then beginComboBox1SetFocusComboBox1SelectAllEndElse Beginn=StrToInt(ComboBox1Items[i])Edit1Text=DecToBinStr(n)End

endfunction TForm1DecToBinStr(N Integer) stringvar

S stringi Integer Negativan Boolean

beginif Nlt0 then Negativan=True N=Abs(N)for i=1 to SizeOf(N)8 do begin

if Nlt0 then S=S+1else S=S+0 N=N shl 1endDelete(S1Pos(1S)-1)if Negativan then S=-+SResult=S

end

procedure TForm1Unos(Sender TObject var Key Char) begin

If Key=13 Then begin

ComboBox1ItemsAdd(ComboBox1Text)ComboBox1Text=Key=0

Endendend