MIKRO KNJIGA
Programsko okruženje Delphi 4 sa rešenim zadacima
Rad u okruženju Delphi
Početak rada 16
Komande Delphija 19
Traženje priručne pomoći 20
Podešavanje parametara Delphija 23
Izvršavanje aplikacije 26
Snimanje projekta 29
Datoteke projekata u Delphiju 32
Izučavati jedno programsko okruženje ima smisla samo ako se sve što se prouči odmah praktično i isproba. Cilj ovog i narednog poglavlja je da osposobi čitaoca za korišćenje programskog okruženja Delphi.
U ovom poglavlju izloženi su osnovni elementi rada u okruženju Delphi: početak i kraj rada, podešavanje parametara okruženja i izvršavanje, doduše prazne, aplikacije.
2.1 Početak rada
Kao i svaka druga aplikacija Windowsa, programsko okruženje Delphi pokreće se izborom njegove sličice u radnom prostoru Windowsa (desk top), u prozoru Windows Explorera, ili na bilo koji drugi način koji nudi Windows. Slika 2.1 prikazuje izgled ekrana neposredno posle pokretanja Delphija.
Delphi automatski otvara četiri prozora:
- glavni prozor Delphija služi za upravljanje radom celokupnog programskog okruženja;
- prozor glavnog obrasca služi za vizuelno uređivanje izgleda glavnog prozora aplikacije koja se projektuje;
- prozor urednika koda (Code Editor) služi za unošenje i menjanje teksta programa aplikacije;
- prozor nadzornika objekata (Object Inspector) služi za podešavanje svojstava (parametara) komponenata u obrascu projekta.
Tri od ta četiri prozora se jasno vide, a četvrti, prozor urednika koda, samo se nazire ispod prozora sa natpisom Form1. Statusna traka ispod donje ivice prozora Form1 pripada tom četvrtom prozoru. Pritiskom na levi taster miša u trenutku kada se pokazivač miša nalazi iznad bilo koje tačke tog delimično pokrivenog prozora, on će se prikazati u celini.
Sa tim prozorima može nezavisno da se rukuje, uključujući pomeranje po ekranu, podešavanje veličine i minimiziranje (kada se minimizirani oblik pojavljuje neposredno iznad palete poslova). Izuzetak je glavni prozor, čijim minimiziranjem svi prozori Delphija nestaju sa ekrana i vidljivo ostaje samo dugme u paleti poslova. Naravno, prilikom reaktiviranja glavnog prozra, svi ostali prozori će ponovo da se pojave na mestima na kojima su bili pre.
Pošto su prozori Delphija međusobno nezavisne celine, između njih će da se vidi podloga radnog prostora Windowsa (koja može da bude šarena), sličice u radnom prostoru Windowsa, kao i prozori eventualnih drugih aplikacija. To može da kvari preglednost prozora Delphija i naročito može da smeta početnicima.
Treba napomenuti da je Delphi okruženje koje svaki korisnik može da prilagodi svojim specifičnim potrebama i željama. U tom slučaju početni izgled slike može da bude i drugačiji od ovde prikazanog. U ovoj knjizi, dok se ne naglasi drugačije, koristi se Delphi sa podrazumevanim parametrima neposredno posle instalacije. Slika 2.1 odgovara upravo tom početnom stanju.
U slučaju da čitalac koristi Delphi zajedno sa drugim programerima, može se desiti da će zateći Delphi sa izmenjenim parametrima. To može da prouzrokuje bitno različit izgled ekrana od ovde opisanog; čak do te mere da početnik neće biti u stanju da aktivno prati izlaganja u ovoj knjizi.
Ako se pored nabrojanih prozora u sredini ekrana pojavi još jedan prozor, na primer, prozor sa natpisom Database Form Wizard (čarobnjak obrazaca za rad sa bazama podataka slika 2.2), taj prozor do daljnjeg treba da se ukloni sa ekrana. To se postiže pritiskom na dugme Cancel (odustani) u njemu pomoću miša, ili pritiskom na taster Esc na tastaturi. Na eventualno pitanje, da li se stvarno želi prekidanje započete aktivnosti, treba dati potvrdan odgovor pritiskom na dugme Yes (da) pomoću miša ili znakom prečicom Y na tastaturi (slika 2.3).

Time se omogućava da se izlaganja u narednim odeljcima prate aktivno. Ekran će, doduše, izgledati nešto drugačije od gore prikazanog (slika 2.4), ali to neće smetati da se izložena materija i praktično isproba.
Podešavanje parametara, kojim se Delphi dovodi u stanje koje se pretpostavlja u ovoj knjizi, objašnjeno je u odeljku 2.4. Posle toga, slike u knjizi i slike koje čitalac vidi na ekranu svog računara biće usaglašene.
2.2 Komande Delphija
Upravljanje radom Delphija postiže se pomoću komandi preko glavnog prozora Delphija (slika 2.5). Glavni prozor je obeležen natpisom Delphi - Project1 i poseduje sve uobičajene elemente glavnog prozora aplikacije Windowsa.
Ispod trake sa natpisom nalazi se glavni meni Delphija. Radni prostor glavnog prozora deli se na dva dela: paletu komandi i paletu komponenata.
Osnovni način upravljanja Delphijem je preko glavnog menija. Izborom bilo koje stavke otvara se podmeni koji sadrži izvestan broj komandi. Slika 2.6 prikazuje podmeni File (datoteka) koji sadrži komande za manipulisanje datotekama.
Pojedine komande se izdaju izborom odgovarajuće stavke u podmeniju. Tako, na primer, izborom stavke Exit (izlaz) izdaje se komanda za završetak rada sa Delphijem. Ta komanda može da se izdaje i tasterima prečicama Alt+F+X preko tastature.
Osim preko menija, komande mogu da se izdaju i pomoću dugmadi u paleti komandi (slika 2.7), koja se nalazi u radnom prostoru glavnog prozora Delphija (slika 2.5). Paleta komandi sadrži dugmad za izdavanje nekih najčešće korišćenih komandi Delphija. Posebno su navedena značenja samo one dugmadi koja će se koristiti u početnom delu ove knjige.
Ako se pokazivač miša zadrži oko jedne sekunde na bilo kom dugmetu, pojaviće se i naziv tog dugmeta unutar okvira za uputstvo, malog žutog pravougaonika (slika 2.8). Ovo je naročito korisno za početnike koji još nisu upamtili funkcije pojedinih dugmeta.
Skreće se pažnja da je sadržaj palete komandi takođe jedan od elemenata koji u Delphiju može da se prilagodi potrebama i željama programera. Ako čitalac na svom ekranu ima drugačiju paletu komandi, to ne treba da ga brine. Zasad treba da je prihvati onakvu kakva je. Može da ustanovi šta se sve nalazi u njoj, zadržavajući pokazivač miša na svakom pojedinom dugmetu, da bi se prikazao njegov naziv.
2.3 Traženje priručne pomoći
Delphi je vrlo udobno okruženje za programere. Jedan od elemenata te udobnosti je velika količina informacija koje mogu da se dobiju kao priručna pomoć u toku rada.
Komande za dobijanje priručne pomoći nalaze se u podmeniju Help (pomoć slika 2.9).
Komandom Help | Contents (pomoć | sadržaj Alt+H+C) otvara prozor za dijalog sa natpisom Help Topics: Delphi Help (Poglavlja pomoći: Pomoć Delphija slika 2.10). Glavni deo prozora je organizovan u sledeće tri stranice:
- Contents (sadržaj) pruža informacije organizovane po poglavljima.
- Index (indeks) pruža informacije organizovane po ključnim rečima koje mogu da budu imena komandi, tipova podataka, vizuelnih komponenata itd.
- Find (nađi) omogućava traženje informacija na osnovu proizvoljno odabranih reči.

Prelazak s jedne stranice na drugu postiže se pritiskom mišem na odgovarajući jezičak.
Na slici 2.10 otkrivena je stranica Contents (sadržaj). Početnicima se posebno skreće pažnja na sledeća poglavlja:
- Učitelj za brzi početak (Quick Start Tutorial)
- Programiranje sa Delphijem (Programming with Delphi)
- Opis programskog jezika Object Pascal (Object Pascal Reference)
Sadržaj željenog poglavlja se prikazuje tako što se odabere njegov naslov i mišem pritisne dugme Open (otvori), odnosno taster Enter ili taster prečica Alt+O na tastaturi. Druga mogućnost je da se naslov poglavlja dva puta pritisne mišem.
Komandom Help | Index (pomoć | indeks Alt+H+N) prozor za dijalog za pružanje pomoći se otvori sa otkrivenom stranicom Index (indeks) koja omogućava traženje pomoći polazeći od konkretnih pojmova. Pojmovi mogu da se pregledaju po abecednom redosledu unutar okvira sa listom pojmova u donjem delu stranice, što nije baš praktično, jer je spisak podugačak.
Mnogo je bolje da se traženi pojam upiše u okvir za tekst označen sa: Type the first few letters of the word you\xd5 re loking for (unesite prvih nekoliko slova reči koju tražite). U toku unošenja, posle svakog otkucaja, sadržaj okvira sa listom pojmova automatski se pomeri na prvi pojam, koji počinje navedenim slovima ili, ako takvog nema, nalazi se neposredno iza unetog niza slova (slika 2.11). Ako više pojmova počinje unetim slovima, konkretan pojam treba odabrati u okviru sa listom pojmova. Objašnjenja o odabranom pojmu se dobijaju pritiskom na dugme Display (prikaži). Ako se dati pojam nalazi u više oblasti, na ekranu će se pojaviti novi prozor za dijalog sa natpisom Topics found (nađene oblasti). Kada se oblast izabere, potrebno je pritisnuti dugme Display (prikaži). 
Pored samostalnog pretraživanja sistema za pružanje priručne pomoći po oblastima ili po pojmovima, Delphi može da pruža i pomoć koja je zavisna od konteksta. Pritiskom na taster F1 Delphi pokreće mehanizam pružanja priručne pomoći, polazeći automatski od pojma koji korisnika, verovatno, upravo zanima. Kriterijum odabiranja je trenutno aktivan prozor i trenutno korišćeni detalj u tom prozoru.
Posebno se skreće pažnja da će se, ako je trenutno aktivan prozor obrasca projekta, pritiskom na taster F1 dobiti priručna pomoć o trenutno aktivnoj komponenti u tom obrascu.
Slično tome, ako je trenutno aktivan prozor urednika koda i pokazivač teksta se nalazi unutar neke službene reči ili imena bibliotečkog (sistemskog) potprograma, priručna pomoć koja će se dobiti pritiskom na taster F1 odnosiće se na tu službenu reč ili potprogram. Naravno, isto će se desiti i ako je takva reč istaknuta u tekstu. Na primer, slika 2.12 prikazuje prozor urednika koda u kome je istaknuta službena reč end (kraj), a slika 2.13 prozor priručne pomoći sa oblastima o toj službenoj reči posle pritiska na taster F1.

Razume se, ne treba očekivati da će Delphi baš uvek pogoditi upravo ono šta korisnika stvarno zanima.
2.4 Podešavanje parametara Delphija
Delphi je okruženje koje korisnik u širokim granicama može da prilagodi svojim potrebama. To, međutim, početnicima može da smeta. U ovom odeljku pokazano je kako Delphi s promenjenim parametrima može da se dovede u stanje koje se pretpostavlja u ovoj knjizi stanje odmah posle instalacije Delphija.
Komande za podešavanje parametara Delphija nalaze se u podmeniju Tools (alati slika 2.14).
Parametri okruženja se podešavaju pomoću komande Tools | Environment Options (alati | opcije okruženja Alt+T+O). Time se otvara prozor za dijalog Environment Options (opcije okruženja slika 2.15) koji je organizovan u deset stranica. 
Ovog trenutka od značaja je samo stranica Preferences (želje). Slika 2.15 prikazuje njen izgled neposredno posle instaliranja Delphija. Potrebno je da čitalac usaglasi izgled svog ekrana sa ovde prikazanim. Kasnije, kada stekne barem malo iskustva u radu sa Delphijem, moći će neke od podataka i da promeni.
Parametri koje će početnik, eventualno, poželeti da promeni, nalaze se u grupi dizajnera obrasca (Form designer). Pomoću njih se podešava mreža za poravnavanje komponenata u obrascima aplikacije.
Komponente se poravnavaju ako u okviru za potvrdu Snap to grid (poravnavanje uz mrežu) stoji znak za potvrdu 3. U tom slučaju komponente (tačnije temena komponenata) mogu da se smeste samo u presečne tačke mreže za poravnavanje.
Mreža za poravnavanje se prikazuje ako u okviru za potvrdu Display grid (prikazivanje mreže) stoji oznaka 3. Sama mreža prikazuje se pomoću tačkica koje se nalaze u presečnim tačkama zamišljene pravougaone mreže vodoravnih i uspravnih linija. Ako je poravnavanje uključeno, ono se vrši nezavisno od toga da li se mreža za poravnavanje prikazuje ili ne.
Gustinu mreže određuju vrednosti koje se nalaze u okvirima za tekst Grid size X i Grid size Y (gustina mreže po x i po y osi). One predstavljaju rastojanje između dve tačkice mreže za poravnavanje izražene u tačkama ekrana (pixels). Rezolucije ekrana današnjih monitora su 640480, 800600 ili 1024768 tačaka.
Ovog trenutka može da se obrati pažnja još na okvir za potvrdu Minimize on run (minimiziraj prilikom izvršavanja), u grupi za prevođenje i izvršavanje (Compiling and Running). Ako se u njemu nalazi oznaka 3, prozori Delphija se uklanjaju sa ekrana (ostaje samo dugme u paleti poslova na dnu ekrana) za vreme probnih izvršavanja aplikacije u toku projektovanja. To znači da se za to vreme na ekranu nalaze jedan ili više prozora koji pripadaju aplikaciji koja se ispituje, ali ne i prozori razvojnog okruženja. Tako je lakše sagledati pravi izgled aplikacije u toku izvršavanja. Naravno, po završetku probnog izvršavanja, svi prozori Delphija ponovo se uspostave.
Postoji mogućnost da na početku projektovanja nove aplikacije ili prilikom dodavanja novih obrazaca projektu, Delphi pruži pomoć za sastavljanje kostura nove aplikacije ili izgleda novog obrasca. Tu pomoć Delphi pruža pomoću svojih takozvanih čarobnjaka (wizards). Osim pomoću čarobnjaka, novi projekti i obrasci mogu da se generišu i na osnovu ranije snimljenih šablona. Svi postojeći čarobnjaci i šabloni nalaze se u skladištu objekata (object repository) koje je obrađeno u poglavlju 12.
Ako je neki od čarobnjaka uključen, prilikom započinjanja novog projekta ili novog obrasca, kroz seriju prozora za dijalog tražiće podatke na osnovu kojih će sastaviti početni kostur projekta ili početni izgled obrasca. Na primer, ranija slika 2.2 prikazuje prvi prozor za dijalog čarobnjaka za obrasce baza podataka (Database Form Wizard).
Pošto se na početku ove knjige radi samo sa praznim početnim obrascima, potrebno je isključiti eventualno uključene čarobnjake. To se postiže komandom Tools | Repository (alati | skladište Alt+T+R). Time se prikazuje prozor za dijalog Object Repository (skladište objekata slika 2.16).
Svi objekti u skladištu objekata raspoređeni su u nekoliko grupa. Prilikom izbora objekata svaka grupa prikazuje se na zasebnoj stranici u okviru prozora za dijalog New Items (nove stavke poglavlje 12). Okvir sa listom sa oznakom Pages (stranice), na slici 2.16, sadrži spisak tih stranica. Izborom jedne od stavki u tom spisku dobiće se spisak objekata (čarobnjaka ili šablona za obrasce ili projekte) u okviru sa listom sa oznakom Objects (objekti slika 2.17). Objekti unutar tog okvira sa listom mogu pojedinačno da se odaberu.
Ako je odabrani objekat čarobnjak ili šablon za obrasce, ispod okvira sa listom objekata postoje dva okvira za potvrdu sa oznakama Main form (glavni obrazac) i New form (novi obrazac). Ako u okviru za potvrdu Main form stoji znak 3, odgovarajući čarobnjak ili šablon će se koristiti za sastavljanje glavnog obrasca kad god se započinje novi projekat. Slično tome, ako u okviru za potvrdu New form stoji znak 3, odgovarajući čarobnjak ili šablon će se koristiti za sastavljanje novog obrasca kad god se tekućem projektu dodaje novi obrazac.
Ako je odabrani objekat čarobnjak ili šablon za projekte, ispod okvira sa listom objekata postoji okvir za potvrdu sa oznakom New project (novi projekat). Ako u tom okviru za potvrdu stoji znak 3, odgovarajući čarobnjak ili šablon će se koristiti za sastavljanje početnog sadržaja svakog novog projekta.
Kao što se vidi na slici 2.17, na stranici Business (biznis) postoji objekat Database Form Wizard (čarobnjak za baze podataka). Pošto u okviru za potvrdu Main form (glavni obrazac) postoji znak za potvrdu, prilikom pokretanja Delphija koristiće se taj čarobnjak za sastavljanje glavnog obrasca novog projekta. To dovodi do početnog izgleda ekrana sa slike 2.2. Da bi se to izbeglo, potrebno je ukloniti znak za potvrdu iz pomenutog okvira za potvrdu.
U opštem slučaju, ako čitalac posle pokretanja Delphija ne dobije početni izgled ekrana sa slike 2.1, potrebno je da pregleda sve stavke na svim stranicama skladišta objekata i da ukloni sve eventualne znakove za potvrdu koje primeti uz bilo koji objekat (čarobnjak ili šablon) unutar okvira za potvrdu Main form (glavni obrazac), New form (novi obrazac) ili New project (novi projekat).
Posle ovih intervencija, ako su one uopšte bile potrebne, početni izgled ekrana posle pokretanja Delphija trebalo bi da se poklapa sa onim iz odeljka 2.1 (slika 2.1). To je potrebno da bi čitalac mogao da prati izlaganja koja slede i praktičnim radom za računarom.
Podešavanje preostalih parametara biće objašnjeno na odgovarajućim mestima u nastavku ove knjige.
2.5 Izvršavanje aplikacije
Prozor glavnog obrasca (slika 2.1) služi za vizuelno uobličavanje izgleda glavnog prozora buduće aplikacije. Odmah posle pokretanja Delphija, ili posle izdavanja komande za stvaranje novog projekta File | New Application (datoteka | nova aplikacija Alt+F+T), to je prazan obrazac (slika 2.18). Ime obrasca, prikazano u traci sa natpisom prozora, koje je Delphi automatski dodelio je Form1.
Bez obzira što je obrazac prazan, on predstavlja potpuni projekat aplikacije koji može da se prevodi i izvršava. To se postiže komandom Run | Run (izvrši | izvrši Alt+R+R), koja skraćeno može da se izda i tasterom prečicom F9 preko tastature, ili pritiskom na dugme Run (izvršavanje projekta slika 2.7) u paleti komandi. Posle prevođenja i povezivanja programa koji je Delphi napravio automatski, zajedno sa glavnim obrascem, počinje izvršavanje te "prazne" aplikacije. Slika 2.19 prikazuje izgled ekrana pod pretpostavkom da je komandom Tools | Environment Options (alati | opcije okruženje) na stranici Preferences (želje slika 2.15) stavljen znak za potvrdu u okvir za potvrdu Minimize on run (minimiziraj prilikom izvršavanja).
Treba uočiti da se prozor aplikacije nalazi na istom mestu i da ima istu veličinu kao i prozor glavnog obrasca pre izdavanja komande za izvršavanje. Zadržan je i natpis obrasca Form1. Jedina razlika u odnosu na izgled za vreme projektovanja je odsustvo tačkica koje predstavljaju mrežu za poravnavanje komponenata i drugačija sličica na dugmetu upravljačkog menija. Sličicu je odabrao sam Delphi.
Iako je aplikacija prazna, ona sadrži uobičajene upravljačke elemente svih aplikacija pod Windowsom: dugme upravljačkog menija, dugme za minimiziranje, dugme za maksimiranje i dugme za zatvaranje. I ta dugmad deluju na očekivani način.
Pritiskom na dugme za minimiziranje, prozor aplikacije stvarno nestaje sa ekrana i ostaje samo dugme u paleti poslova na dnu ekrana (slika 2.20). Natpis tog dugmeta je Project1. Sličica ispred natpisa je ista kao i na upravljačkom dugmetu prozora aplikacije.
Pritiskom na dugme za maksimiranje, prozor aplikacije popuniće ceo ekran (slika 2.21). S\x89 mo dugme menja svoju funkciju (i izgled) u dugme za vraćanje na prethodnu veličinu i mesto.
Prozor aplikacije može da se pomera po ekranu i da mu se menja veličina. Pomeranje se vrši dovođenjem pokazivača miša na natpis prozora i, uz pritisnuti levi taster, prozor se povuče na novo mesto (slika 2.22). Za promenu veličine prozora potrebno je, na sličan način, uhvatiti jednu ivicu ili ugao prozora i povući u željenom pravcu za odgovarajući pomak (slika 2.23).

Pritiskom na dugme upravljačkog menija otvara se uobičajen upravljački meni aplikacija pod Windowsom (slika 2.24).
Pomoću stavke Close (zatvori) završava se rad aplikacije. Druge mogućnosti za završetak aplikacije su preko tastature, pomoću tastera prečice Alt+F4, pritiskom na dugme za zatvaranje pomoću miša ili dvostrukim pritiskom na dugme upravljačkog menija pomoću miša.
Po završetku aplikacije, na ekranu se ponovo pojavljuju prozori Delphija koji su postojali pre početka izvršavanja. Time proces projektovanja aplikacije može da se nastavi dalje. U prozoru obrasca projekta ponovo se pojavljuju tačkice za obeležavanje mreže za poravnavanje komponenata (naravno, pretpostavljajući da je njihovo prikazivanje traženo komandom Tools | Environment Options na stranici Preferences).
Treba uočiti da eventualna pomeranja i promene veličine prozora aplikacije u toku izvršavanja ne utiču na položaj i veličinu prozora obrasca projekta u toku projektovanja. To znači da prilikom svakog izvršavanja aplikacije, početni položaj i veličina prozora aplikacije zavise samo od podešavanja u toku projektovanja.
2.6 Snimanje i otvaranje projekta
Da bi se projekat trajno očuvao, potrebno je da se njegove datoteke snime na disk. Slično datotekama sa običnim tekstovima, i za datoteke projekata Delphija preporučuje se redovno snimanje u toku rada, recimo na svakih 15-20 minuta.
Pošto se svaki projekat sastoji od najmanje osam datoteka, preporučuje se smeštanje datoteka svakog projekta u zasebne kataloge. Za stvaranje novog praznog kataloga, pre izdavanja komande za snimanje datoteka novog projekta, može da se koristi komanda File | New | Folder (datoteka | novi | katalog Alt+F+W+F) Windows Explorera. Ako se prazan katalog ne pripremi unapred, on može da se formira i unutar prozora za dijalog u toku snimanja projekta.
Delphi automatski nudi katalog Projects (projekti) koji je potkatalog kataloga Delphi 4.0. Katalog Delphi 4.0 je koren strukture kataloga u kojima se nalaze sve datoteke Delphija.
U ovom slučaju za snimanje "praznog" projekta iz prethodnog odeljka napravljen je novi katalog sa imenom Prazan, kao potkatalog kataloga Projects.
Datoteke novog projekta mogu da se snime Delphijevom komandom File | Save Project As (datoteka | snimi projekat kao Alt+F+E). Time se pokreće postupak u toku koga treba da se popune dva prozora za dijalog.
Prvi prozor za dijalog, sa natpisom Save Unit1 As (snimi Unit1 kao), služi za izbor kataloga i imena datoteke za programski modul glavnog obrasca (slika 2.25). Od početka stvaranja projekta do ovog trenutka taj programski modul je imao standardno i bezlično ime Unit1, koje je dodelio Delphi.
Delphi automatski nudi katalog Projects koji se nalazi ispod kataloga Delphi 4.0. Ako to ne odgovara, u okviru sa padajućem listom kataloga Save in (snimi u) potrebno je odabrati jedinicu diska i katalog. Ako još ne postoji katalog za novi projekat, on može da se napravi pritiskom na dugme Create new folder (stvori novi katalog). To je drugo dugme desno od okvira sa padajućom listom Save in. Za tip datoteke, u okviru sa padajućom listom Save as Type (snimi sa tipom), Delphi nudi tip .pas, standardni tip za izvorne tekstove programa na Object Pascalu. Tu ponudu treba prihvatiti. U okviru sa listom datoteka prikazuje se spisak (na slici je prazan) eventualnih datoteka tipa .pas u odabranom katalogu. To može da pomogne u izboru imena datoteke za novi projekat.
Ponuđeno ime datoteke unit1.pas u okviru za tekst File Name (ime datoteke) treba zameniti imenom koje ukazuje na namenu datoteke koja se snima. U Delphiju datoteke sa izvornim tekstom programa na Object Pascalu mogu da sadrže opise obrazaca sa pratećim potprogramima (jedan obrazac po datoteci) ili opšte potprograme (koji nisu vezani za pojedinačne obrasce). Preporučuje se da imena datoteka za opis obrazaca sadrže nešto što ukazuje na tu činjenicu; na primer, sufiks imena _o. U posmatranom primeru za ime datoteke obrasca projekta odabrano je prazan_o. Tip datoteke, .pas, ne mora da se navede, Delphi će ga dodati sam.
Posle pritiska na dugme Save, Delphi prikazuje drugi prozor za dijalog koji služi za izbor imena za glavnu datoteku projekta. Natpis ovog okvira je Save Project1 As (snimi Project1 kao slika 2.26). Project1 je standardno i bezlično ime projekta koje je Delphi odabrao automatski na početku stvaranja projekta.
Za radni katalog Delphi nudi katalog koji je izabran u toku smeštanja datoteke obrasca, što u većini slučajeva treba prihvatiti. Ponuđeni tip datoteke je .dpr (Delphi PRoject file), što takođe treba prihvatiti. Za ime datoteke treba odabrati ime koje ukazuje na namenu celog projekta. To će kasnije biti i ime datoteke sa izvodljivim oblikom programa aplikacije (tipa .exe). Takođe, to ime će se pisati na dugmetu u paleti poslova Windowsa koje odgovara posmatranom projektu. Ima, dakle, dovoljno razloga da se ime glavne datoteke projekta pažljivo odabere.
U posmatranom primeru, za ime projekta odabrano je prazan. Tip datoteke .dpr ne mora da se napiše jer će ga Delphi sam dopisati.
Jednom snimljeni projekat kasnije može iznova da se snimi pod istim imenom i u istom katalogu, komandom Delphija File | Save All (datoteka | snimi sve Alt+F+V). Ova komanda ima i dugme prečicu Save All (snimi sve) u paleti komandi u glavnom prozoru Delphija.
Ako se želi da se projekat koji je jednom snimljen pod određenim imenom kasnije snimi pod drugim imenom, ili na nekom drugom mestu, to može da se učini ponovnim korišćenjem komande File | Save Project As (datoteka | snimi projekat kao Alt+F+E). Time se pod novim imenom i na novom mestu snime samo glavna datoteka projekta (tipa .dpr) i ostale istoimene datoteke. Ako je potrebno snimiti i datoteke programskih modula (obrasca ili obrazaca) pod drugim imenima ili na drugom mestu, moraju se prethodno snimiti komandama File | Save As (datoteka | snimi kao Alt+F+A), po jednom komandom za svaki obrazac (programski modul) u projektu.
Postojeći projekat može da se otvara radi dorade ili ispravke komandom Delphija File | Open Project (datoteka | otvori projekat Alt+F+J). Time se otvara prozor za dijalog u kome treba odabrati ime jedinice diska, kataloga i datoteke. Ova komanda takođe ima dugme prečicu Open project (otvori projekat) u paleti komandi unutar glavnog prozora Delphija.
Druga mogućnost ubrzanog otvaranja skoro korišćenog projekta je pomoću komande File | Reopen (datoteka | otvori ponovo Alt+F+R slika 2.6). Time se otvara potpodmeni koji je podeljen u dve sekcije.
Prva sekcija sadrži nekoliko imena glavnih datoteka (tipa .dpr) projekata koji su poslednji korišćeni. Izborom jednog od imena, otvara se odgovarajući projekat, bez obzira koji je trenutni radni katalog. Kasnije, ako se posle izmena taj projekat ponovo snimi, snimiće se na istom mestu gde se i pre toga nalazio (opet, bez obzira na trenutni radni katalog).
Druga sekcija sadrži nekoliko datoteka programskih modula (tipa .pas) koje su poslednje korišćene. Izborom jedog od imena, odgovarajuća datoteka će da se otvori u prozoru urednika koda. Ovo omogućava obradu te datoteke, ali ona neće postati sastavni deo tekućeg projekta.
Kada se zatraži izvršavanje projekta koji je već snimljen na disku, pre samog izvršavanja, Delphi će automatski napraviti i izvršni oblik datoteke za taj projekat. Ime datoteke će biti isto kao i ime glavne datoteke projekta, ali će imati tip .exe.
Takva datoteka kasnije može da se izvršava i nezavisno, izvan razvojnog okruženja Delphija. To se ostvaruje komandom File | Open (datoteka | otvori Alt+F+O) Windows Explorera. Druga mogućnost je da se datoteka pronađe u prozoru Windows Exporera i pritisne na taster Enter u trenutku kada je ona izabrana. Treća mogućnost je da se dva puta pritisne levi taster miša u trenutku kada je pokazivač miša iznad imena datoteke unutar prozora Windows Explorera.
Prečica aplikacije može da se smesti u radni prostor (desktop) Windowsa ili u meni Start u paleti poslova. Posle se izvršavanje traži, kao i za sve ostale aplikacije Windowsa, izborom njegove prečice (predstavljene odabranom sličicom).
2.7 Datoteke projekata u Delphiju
Svaki projekat Delphija sastoji se od najmanje osam datoteka (slika 2.27).
Uz svaki obrazac (prozor) projekta postoje tri datoteke:
- datoteka izvornog teksta programa za opis obrasca i pratećih potprograma (tip .pas PAScal source code), koja se pravi unošenjem teksta u prozoru urednika koda;
- binarna datoteka prevedenog oblika izvornog programa (tip .dcu Delphi Compiled Unit) koju Delphi pravi automatski pred s\x89 mo izvršavanje projekta;
- binarna datoteka obrasca (tip .dfm Delphi graphical ForM file) sa opisom izgleda obrasca, koju Delphi automatski pravi u trenutku snimanja projekta, a na osnovu podataka koji se u toku projektovanja podese razmeštanjem komponenata po obrascu, i/ili podešavanjem u prozoru nadzornika objekata.
Ako aplikacija koristi više prozora (opisanih odgovarajućim obrascima), za svaki obrazac postoji odvojen komplet od gornje tri datoteke. Ako aplikacija sadrži i opšte programske module (koji nisu vezani za obrasce), za njih postoje samo datoteke izvornog teksta (.pas) i prevedenog oblika (.dcu).
U svakom projektu Delphija postoji i sledećih pet datoteka, jedinstvenih za ceo projekat:
- glavna datoteka projekta (tip .dpr Delphi PRoject file) koju Delphi automatski pravi u toku projektovanja, a sadrži informacije o ostalim programskim modulima (o datotekama tipa .pas) koji pripadaju projektu, kao i izvorni tekst glavnog programa cele aplikacije;
- tekstualna datoteka opcija projekta (tip .dof Delphi project Options File) koju Delphi automatski pravi, a sastoji se od opštih parametara projekta;
- tekstualna datoteka konfiguracije projekta (tip .cfg ConFiGuration file) koju Delphi automatski pravi, a sastoji se od opštih parametara okruženja Delphi;
- binarna datoteka resursa projekta (tip .res compiled RESource file) koja podrazumevano sadrži sličicu aplikacije, ali mogu da joj se dodaju i drugi resursi;
- binarna datoteka sa izvodljivim oblikom aplikacije (tip .exe compiled EXEcutable file) koju Delphi automatski pravi pred s\x89 mo izvršavanje projekta.
Treba naglasiti, kad god se u toku projektovanja zatraži izvršavanje projekta, Delphi automatski prevede samo izvorne tekstove onih programskih modula (datoteka tipa .pas) koji su promenjeni od trenutka poslednjeg prevođenja i posle toga izvrši povezivanje prevedenih oblika svih programskih modula (datoteka tipa .dcu), binarnih oblika obrazaca (datoteka tipa .dfm) i resursne datoteke (tipa .res) u izvodljivi oblik projekta (datoteka tipa .exe).
Ako od poslednjeg izvršavanja nije promenjen sadržaj nijedne od datoteka projekta, preskoče se faze prevođenja i povezivanja i odmah se prelazi na izvršavanje.
Samo prevođenje potrebnih modula i njihovo povezivanje, bez izvršavanja, može da se traži komandom Project | Compile (projekat | prevedi Alt+P+C). Taster prečica za ovu radnju je Ctrl+F9.
Ako se iz nekog razloga želi ponovno prevođenje svih programskih modula, čak i ako nisu menjani od poslednjeg prevođenja, potprebno je izdati komandu Project | Build (projekat | izgradi Alt+P+B). Naravno, posle prevođenja izvršiće se i ponovno povezivanje celokupnog projekta u izvodljivi oblik.
Kada se pogledaju veličine datoteka posmatranog "praznog" projekta Prazan (slika 2.27), može se uočiti da je datoteka sa izvodljivim oblikom projekta (prazan.exe) neočekivano velika, čak 275K bajtova. Razlog tome je što svaki, pa i prazan projekat mora da sadrži jezgro za upravljanje prozorima i komponentama u njima. Na taj način se, možda, zahvataju i neke od univerzalnih mogućnosti koje pruža Delphi, a koje dati projekat uopšte ne koristi. To je cena kojom se plaća udobnost lakog sastavljanja moćnih i atraktivnih sprega aplikacija korisnik.
Utešno je da veličina datoteke sa izvodljivim oblikom aplikacije ne raste suviše brzo sa povećanjem složenosti programa.
Na kraju još treba dodati da je datoteka sa izvodljivim oblikom tako velika zato što sadrži sav potreban softver za samostalan rad. To znači da prilikom isporuke projekta finalnom korisniku, pored te datoteke ne treba isporučivati nikakve dodatne datoteke sistemskih biblioteka sa dinamičkim povezivanjem (Dinamic Link Libraries datoteke tipa .dll). Izuzetak je ako aplikacija radi sa bazama podataka koristeći Borland Database Engine, ili ako sastavlja izveštaje pomoću ReportSmitha.
Postoji mogućnost da se smanji veličina datoteke sa izvodljivim oblikom projekta. Naime softver koji Delphi ugrađuje u izvodljivi oblik programa grupisan je u nekoliko paketa prevedenih modula. Ti paketi se nalaze u zasebnim datotekama tipa .dcp (Delphi Complied unit Package). Podrazumevano, svi potrebni paketi se ugrađuju u datoteku sa izvodljivim oblikom aplikacije. Kao opcija projekta može da se zahteva da se neki od tih paketa ne ugrade u tu datoteku. Time se njena veličina smanjuje, ali u tom slučaju i odgovarajuće pakete (datoteke tipa .dcp) treba isporučiti korisniku. Za gore posmatrani "prazan" projekat, veličina datoteke sa izvodljivim oblikom može da se smanji na svega 13K bajta!
Na kraju ovog odeljka o datotekama projekata Delphija, nije na odmet da se posveti malo pažnje celovitom sadržaju tri, sa stanovišta projektanta, najvažnije datoteke.
Glavna datoteka projekta, kao što je već rečeno, sadrži glavni program aplikacije na Object Pascalu.
U toku projektovanja, sadržaj glavne datoteke projekta može da se prikaže u prozoru urednika koda komandom Project | View Source (projekat | prikaž izvorni tekst Alt+P+V). Time će se pojaviti nova stranica, pored stranica jednog ili više modula obrasca, u radnom prostoru prozora čiji će jezičak biti obeležen imenom tog modula (to je u posmatranom slučaju ime prazan).
Druga mogućnost je da se u paleti komandi odabere dugme View unit (prikaži modul) i posle toga ime glavne datoteke u prozoru za dijalog koji se prikazuje tom prilikom.
Slika 2.28 prikazuje izgled glavnog programa projekta Prazan u prozoru urednika koda.
Delphi generiše celokupan tekst glavnog programa koji nikada nije mnogo duži nego u ovde prikazanom slučaju. U tom tekstu programer gotovo nikad ne treba da vrši bilo kakve izmene.
Prvi red je zaglavlje u kome je ime programa izvedeno iz imena glavne datoteke projekta.
Sledi deklarativni odeljak uses (koristi), koji nabraja imena korišćenih programskih modula. Tu će se uvek naći ime sistemskog modula Forms (obrasci) i posle toga po jedna stavka za svaki obrazac koji je projektant aplikacije dodao projektu.
Na kraju je izvršni deo glavnog programa, između službenih reči begin (početak) i end (kraj). Prva naredba je uvek Application.Initialize, kojom se inicijalizuje aplikacija. Iza nje će se uvek naći po jedna naredba Application.CreateForm za svaki obrazac u projektu kojima se stvaraju prozori tih obrazaca. Poslednja naredba je uvek Application.Run, kojom se započinje efektivno izvršavanje aplikacije.
Više detalja o strukturi glavnog programa dato je u tački 4.5.1.
Datoteka izvornog teksta programskog modula u početku projektovanja nalazi se na stranici Unit1 u prozoru urednika koda. Posle snimanja projekta, na jezičku iste stranice prikazuje se ime pod kojim je taj modul snimljen. U posmatranom slučaju to je prazan_o (slika 2.29).
Delphi generiše i kostur programskog modula obrasca.
Prvi red predstavlja zaglavlje modula u kome se navodi ime modula, izvedeno iz imena datoteke koja sadrži taj modul.
Sledi prvi deo modula (od službene reči interface/sprega, dalje u programu) koji sadrži nekoliko deklarativnih odeljaka. Među njima, u odeljku type (tip), može da se pronađe formalni opis strukture obrasca na koji se odnosi dati modul. Zasad nema dovoljno materijala za tumačenje tog opisa.
Iza službene reči implementation (realizacija) nalazi se mesto za definicije potprograma koji opisuju radnje vezane za dati obrazac. Taj deo je zasad prazan, pošto obrazac ne sadrži nijednu komponentu. Na početnom nivou programiranja, tu je jedino mesto gde programer treba nešto da programira. Kad i šta, objašnjeno je u narednom poglavlju.
Više o strukturi programskih modula u Object Pascalu dato je u tački 4.5.3.
Binarna datoteka obrasca (tipa .dfm) predstavlja formalni opis izgleda prozora u binarnom, a ne u tekstualnom obliku. Tekstualni opis strukture obrasca može da se prikaže u prozoru urednika koda (kao zasebna stranica, naravno), otvaranjem te datoteke komandom File | Open (datoteka | otvori Alt+F+O), koja ima i dugme prečicu Open (otvori) u paleti komandi. U prikazanom prozoru za dijalog potrebno je da se za tip datoteke iz padajuće liste odabere stavka Delphi form (*.dfm) (obrazac Delphija). Posle toga iz liste sa imenima datoteka treba odabrati datoteku željenog obrasca (slika 2.30).
Posle otvaranja datoteke .dfm, njen tekstualni opis prikazaće se na stranici na čijem jezičku se nalazi ime te datoteke (slika 2.31).
Skreće se pažnja da je nestala stranica sa izvornim tekstom programskog modula posmatranog obrasca. Za svaki obrazac istovremeno može da se prikaže samo sadržaj jedne datoteke: izvornog teksta programskog modula ili tekstualni opis izgleda obrasca.
Obrazac i komponente, koje su smeštene u obrazac, smatraju se pojedinačnim objektima. Opisane su između parova reči object (objekat) i end (kraj), koje se grupišu po principu otvorenih i zatvorenih zagrada. Činjenica da neka komponenta pripada obrascu prikazuje se tako da se njen opis navede unutar opisa celokupnog obrasca.
Pošto opis praznog obrasca ne sadrži nijednu komponentu, onda sadrži samo jedan objekat, sam obrazac.
Objekti se opisuju navođenjem vrednosti njihovih svojstava. Neka svojstva, kao što su položaj i veličina objekata, uvek se navode. Neka druga svojstva, pak, navode se samo ako su njihove vrednosti u toku projektovanja promenjene u odnosu na podrazumevane vrednosti tih svojstava. O načinu podešavanja vrednosti svojstava biće više govora u narednom poglavlju.
Tekstualni opis obrasca može i ručno da se sastavlja ili da se prepravlja, mada se to radi samo vrlo retko, praktično nikada.
Ako je tekstualni opis ručno sastavljan, treba ga snimiti komandom File | Save As (datoteka | snimi kao Alt+F+A), i u prikazanom prozoru za dijalog, za tip datoteke iz padajuće liste, odabrati stavku Form file (*.dfm) (datoteka obrasca).
Ako je tekstualni opis samo prepravljan (posle otvaranja komandom File | Open / datoteka | otvori Alt+F+O, na opisan način) treba ga snimiti komandom File | Save / datoteka | snimi Alt+F+S). Ta komanda ima i taster prečicu Ctrl+S, kao i dugme prečicu Save (snimi) u paleti komandi.
U oba slučaja Delphi će pretvoriti tekstualni opis obrasca u binarni oblik. Nastale izmene u obrascu odmah stupaju na snagu.
2.6 Snimanje i otvaranje projekta
Početni izgled ekrana u okruženju Delphi.
Glavni prozor Delphija
Prozor nadzornika objekata
Prozor glavnog obrasca
Prozor urednika koda
Paleta poslova
Otvaranje projekta
(Open project)
Snimanje projekta
(Save all)
Izvršavanje projekta
(Run)
Prelazak između obrasca i modula
(Toggle Form/Unit)
Početni izgled ekrana ako je uključen Database Form Wizard.
Prekidanje Database Form Wizarda.
Pomeranje prozora aplikacije po ekranu.
Izgled ekrana posle prekidanja Database Form Wizarda.
u prozoru Windows Explorera.
Traka sa natpisom
Paleta komandi
Paleta komponenata
Glavni meni
Dugme upravljačkog menija
Dugme za maksimiranje prozora
Dugme za zatvaranje prozora
Dugme za minimiziranje prozora
Prikazivanje funkcije dugmeta.
Poglavlja priručne pomoći.
Traženje pomoći o pojmu Write.
Priručna pomoć zavisna od konteksta o službenoj reči end.
Prozor urednika koda sa istaknutom službenom reči end.
Stranica Preferences prozora za podešavanje parametara okruženja.
Upotreba čarobnjaka za baze podataka za sastavljanje glavnog obrasca projekta.
Prozor za dijalog Object Repository.
Prazan glavni obrazac projekta.
Izvršavanje "prazne" aplikacije.
Minimizirani prozor aplikcije.
Maksimirani prozor aplikacije.
Menjanje veličine prozora aplikacije.
Upravljački meni aplikacije.
Prozor za dijalog Save Unit1 As.
Prozor za dijalog Save Project1 As.
Glavna datoteka projekta u prozoru urednika koda.
Datoteka izvornog teksta programskog modula u prozoru urednika koda.
Otvaranje datoteke obrasca za tekstualni prikaz.
Tekstualni opis strukture obrasca u prozoru urednika koda.