Upload
matthew-gomez
View
263
Download
1
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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