Delphi
Delphi je programski paket namenjen kreiranju Windows aplikacija. Kranji proizvod Delphi-ja je izvrni program koji reava yadatke zbog kojih je kreiran u okruenju operativnog sistema Windows. Programski jezik koji koristi Delphi je modernizovana verzija Pascal-a poznata pod nazivom Object Pascal.
Zadatak:
Napraviti aplikaciju kalkulator, aplikacija treba da podrzava osnovne aritmeticke operacije nad brojevima, u zavisnosti od rezultata treba da oboji pozadinu forme crveno, zuto, zeleno za negativan, nulu i pozitivan rezultat respektivno. Ukoliko korisnik ostavi prazna polja prikazati poruku o tome da polja za brojeve moraju da budu popunjena.
Početak rada
Program delphi najjednostavnije se pokreće pomoću prečice sa radne povrine, ako je prečica postavljena. Drugi način pokretanja je nalazenje prečice u meniju start, Start => Programs => Borland Delphi 7 => Delphi 7.
Kada se pokrene program ekran dobija izgled kao na slici. Polazni ekran ima 8 delova:
1. Naslovnu liniju sadri ikonicu kontrolnog menija programa Delphi, naziv projekta koji se realizuje i tri dugmeta za upravljanje veličinom prozora aplikacije,
2. Meni liniju klasična Windows meni linija na kojoj se nalazi 11 opcija koje se aktiviraju klikom misa,
3. Liniju alata sadri najčeće korićene komande koje se zadaju direktnim klikom mia na odgovarajuću sličicu,
4. Linija komponenti sastoji se od vie stranica, pri čemu svaka stranica ima svoje komponente,
5. Prozora za hijerarhijski prikaz komponenti aplikacije (Object TreeView) - se prikazuje hijerarhijsko stablo objekata postavljenih u okviru aplikacije,
6. Prozora za određivanje osobina objekta i događaja (Object Inspector) - se nalayi na levoj strani ekrana i slui za podeavanje osobina (Properties) i događaja (Events) objekata koje se formiraju tokom razvoja aplikacije.
7. Prozora obrasca za dizajniranje - automatski se formira pri pokretanju Delphi-ja i naziva se forma. Forma generički dobija ime Form1 koje se kasnije moe promeniti. Ova forma iako prazna poseduje osobine Windows programa: moe se premetati, mogu joj se menjati dimenzije, moe se minimizirati, maksimizirati i zatvoriti. Ima i svoju ikonicu koja se dodeljuje pri minimizaciji, ima naslovnu liniju, okvir i radnu povrinu. Na radnoj povrini se nalazi mrea tačkica koja slui kao pomoć pri postavljanju i poravnavanju komponenti.
8. Prozora za pisanje programskog koda ovaj prozor predstavlja editor teksta u koji se unosi programski Pascal kod.
Kreiranje novog projekta
Prazan projekat moemo dobiti na jedan od sledećih načina: pokretanjem programa Delphi ili korićenjem opcije File => New => Application iz meni linije. Ukoliko elimo da kreiramo konzolnu aplikaciju to postiemo korićenjem opcije File => New => Other => Console Application.
Pre bilo kog daljeg rada potrebno je snimiti aplikaciju. Snimamo aplikaciju tako to odaberemo opciju File => Save all, prvo dajemo naziv paskal fajla, a onda dajemo naziv projektu, nazivi moraju da se razlikuju. Moj predlog bi bio nazivPrograma za prvi fajl, a za drugi ProjectNazivPrograma.
Komponente
Prilikom kreiranja novog projekta mi dobijemo prozor za formiranje forme, nakon toga trebamo dodati komponente u formi. Najvećemo najznačajnija svojstva komponenti:
1. Name (ime) svojstvo tipa string. Koristi se za pristup datoj komponenti u programskom kodu. Sve komponente istog obrasca (forme) moraju imati različita imena.
2. Posedovanje komponenata Aplikacija je vlasnik svih obrazaca (formi) u njoj. Obrasci (forme) su vlasnici svih elemenata (komponenti). Vlasnik komponente nalazi se u svojstvu owner. Broj komponenti kojima je data komponenta vlasnik, nalazi se u svojstvu ComponentCount. Niz komponenata kojima je komponenta vlasnik, nalazi se u svojstvu Components.
3. Sadravanje komponenata Jedna komponenta postaje dete druge komponente kad se umetne u radni prostor te druge komponente. Roditelj komponente predstavlja se svojstvom Parrent. Broj dece neke kontejnerske komponente nalazi se u svojstvu ControlCount elementa. Niz dece predstavlja niz onih komponenata koje data komponenta sadrzi. Nalazi se u svojstvu Controls.
4. Vidljivost komponenata Vidljivost komponente kontrolise se svojstvom Visible tipa Boolean. Vrednost True označava da komponentu treba prikazati na ekranu, vrednost False da komponentu ne treba prikazati.
5. Upotrebljivost komponenti kontrolie se svojstvom Enabled tipa Boolean. Ako je vrednost True komponenta je upotrebljiva, inače nije upotrebljiva.
6. Poloaj se određuje svojstvima:
a. Top(vrh);
b. Left(levo);
To su koordinate gornjeg levog temena komponente u odnosu na gornji levi ugao radnog prostora roditelja posmatrane komponente.
7. Veličina - se određuje svojstvima:
a. Height(visina);
b. Width(irina);
8. Veličina radnog prostora komponente iskazuje se svojstvima:
a. ClientHeight (visina klijenta);
b. ClientWidth (irina klijenta);
c. Constraints (ograničenja);
d. Align (poravnanje);
e. Anchors (relativan poloaj u odnostu na ivice roditelja).
9. Natpis komponente - tekst koji se izpisuje na komponentu u formi. Predstavlja se svojstvom Caption (natpis) tipa String. Podrazumevana vrednost natpisa poklapa se sa imenom komponente (Name).
10. Ctl3D (trodimenzionalna komponenta) tipa Boolean ima vrednost True ukoliko se komponenta prikazuje za trodimenzionalnim efektima, u suprotnom vrednost False označava prosto dvodimenzionalno iscrtavanje.
11. ParentCtl3D (trodimenzionalnost roditelja) tipa Boolean sa vrednoću True označava da komponenta preuzima vrednost svojstva Ctrl3D od svog roditelja. Vrednost False da se broj dimenzija komponente podeava nezavisno od roditelja.
12. BorderStyle (stil ivica) moguće vrednosti su:
a. bsSingle (jednostruka) - označava iscrtavanje okvira čije su ivice jednostruke linije
b. bsNone (nita) označava odsustvo okvira.
13. BevelKind (vrsta kosina) određuje da li se oko komponente prikazuju kosine ili ne.
14. BevelOuter vrsta spoljanje kosine.
15. Bevelnner unutranja kosina.
16. Cursor određuje izgled pokazivača mia.
17. Color određuje boju komponente.
18. Font određjuje osobine teksta koji se prikazuje na komponentu.
Opis komponeti koje ćemo koristiti u primeru
· Label (oznaka) - obično se koristi za prikaz nekog statičkog teksta na ekranu. Moemo da menjamo tekst stojstvom Caption.
· Button (dugme) - prvenstveno se koriste za pokretanje nekih akcija. Ukoliko dva puta kliknemo na dugme Delphi automatski kreira proceduru koja se poziva prilikom klika na to dugme i prikazuje nam editor koda, gde moemo da pisemo kod u zavisnosti ta elimo da uradimo kada kliknemo na neko dugme.
· EditText (okvir za tekst) omogućuje unos jednog reda teksta i numeričkih podataka. Ovo je kontejnerska komponenta i sadri neka svojstva koja se razlikuju u odnosu na klasicne komponente. Ne sadri svojstvo Caption, umesto toga postoji svojstvo Text. Bitna svojstva za nas su:
o Text (tekst) je glavno svojstvo koje predstavlja tekst koji komponenta sadri. Vrednost moe da se menja u toku izvravanja aplikacije.
o CharCase (veličina slova) određuje da li se u tekstu prihvataju mala i velika slova onako kako se unose preko tastature, moemo da stavimo da se svako uneseno slovo automatski konvertuje u malo slovo i obrnuto.
o PasswordChar (znak za lozinku) određuje znak koji se na ekranu prikazuje u okviru za tekst kada se unosi lozinka.
· RadioGroup - grupa radio dugmadi sadri po nekoliko radio-dugmadi povezanih u nedeljivu i nezavisnu celinu. Unutar svake grupe svakog trenutka moe da bude odabrano po jedno dugme. Dugmad unutar grupe vizuelno su povezana pravougaonom linijom koja obuhvata svu dugmad u grupi. Gornja ivica pravougaonika moe da sadri natpis grupe. Sadri tri bitna svojstva:
o Items (stavke) svaka linija teksta predstavlja jedno radio dugme.
o ItemIndex (indeks stavke) - označava koje je radio dugme u grupi selektovano.
o
ItemCount broj radio dugmića u grupi.
Reavanje zadatka
Ubacimo komponente na formu na sledeći tako da forma izleda otprilike ovako:
Komponente na formu moemo ubaciti na dva načina. Jedan način je dvostruki klik na komponentu, u tom slučaju komponenta se stvara na sredini forme, potrebno je promeniti mesto i veličinu komponente. Drugi način je klik na komponentu, pa onda nakon sto je selektovana komponenta kliknemo na formu gde elimo da postavimo komponentu.
Kao to smo rekli, svaka komponenta sadri svojstvo Name. Preporučljivo je da svi nazivi Labeli počinju sa Lbl_naziv, naziv dugmadi sa Btn_naziv, naziv edit teksta Edt_naziv...
Nakon to imenujemo sve komponente potrebno je dodati funkcionalnost aplikaciji. Dvostrukim klikom na komponentu otvara nam se prozor za pisanje koda. Delphi automatski kreira proceduru koja će se izvriti kada kliknemo na dugme. Potrebno je samo da unesemo kod J. Da bi smo dalje nastavili sa radom potrebno je da znamo jo neke funkcije za konverziju:
· StrToInt( '845' ) pretvara string u integer
· StrToFloat( '43.23' ) pretvara string u realan broj
· IntToStr( 932 ) - pretvara integer u string
· FloatToStr( 532.43 ) pretvara realan broj u string
Nakon toga je potrebno napisati kod funkcije:
procedure TForm1.Btn_saberiClick(Sender: TObject);
Var prvi, drugi, rez : Integer;
begin
prvi := StrToInt(Edt_prvi. Text);
drugi := StrToInt(Edt_drugi.Text);
rez := prvi + drugi;
Edt_rez.Text := IntToStr(rez);
end;
Time je prvi deo naeg programa gotov. Sada elimo da modifikujemo program tako da podrava i druge operacije osim sabiranja. Da bi smo to uradili ubacujemo jednu RadioButton komponentu gde ćemo izabrati akciju, komponentu ubacujemo izmedju dugmeta i kontrola za unos drugog broja. Nakon ubacivanja forma bi trebala da izgleda otprilike ovako:
Menjamo naziv RadioGroup1 u Operacija i jo je potrebno dodati stavke u radio grupi. Dodajemo dugmiće u grupi odabirom svojstva Items i klikom na tri tacke . Nakon toga nam se otvara prozor za unos stavki (dugmica) svaki red teksta predstavljaće po jedno dugme.
Nakon to unesemo stavke potrebno je da promenimo tekst dugmeta sa '+' na '=' i da izmenimo kod koji se izvrava. Evo dela koda koji se odnosi na ispitivanje koja je operacija selektovana:
if Operacija.ItemIndex = 0 then rez := prvi + drugi
else if Operacija.ItemIndex = 1 then rez := prvi - drugi
else if Operacija.ItemIndex = 2 then rez := prvi * drugi
else if Operacija.ItemIndex = 3 then rez := prvi div drugi;
Jo samo da obojimo formu u zavisnosti od rezultata, to postiemo sledecim kodom:
if rez < 0 then Form1.Color := clRed
else if rez = 0 then Form1.Color := clYellow
else if rez > 0 then Form1.Color := clGreen;
Primetimo da naziv svake boje pocinje prefiksom cl. Ukoliko elimo da odtampamo poruku korisniku, na primer ako je ostavio neko prazno polje to postiemo komandom ShowMessage('poruka'). Jo bismo mogli da onemogućimo unos teksta u Edit rezultat, to postiemo tako to svojstvo ReadOnly postavimo na True.
Zadatak za vezbu
Kreirati aplikaciju u kojoj se računa idealna teina osobe na osnovu njene visine i teine i daje savet da li osoba treba da se ugoji ili smrsa i za koliko kilograma. Forma treba da sadri dva dugmeta, prvo je računaj, gde se računa idealna teina i ispisuje poruka, drugo dugme je poniti koje vraća vrednosti komponenti na početno stanje, tj, ukoliko je bio neki tekst u neki od edit-a brie se i tako dalje. Formula za izračunavanje idealne teine je sledeće:
· Ukuliko je osoba muskog pola idealna teina = visina 100,
· Ukoliko je osoba enskog pola idealna teina = visina 110.
Нема коментара:
Постави коментар