MIKRO KNJIGA
Programsko okruženje Delphi 4 sa rešenim zadacima
Uvod
O programskom okruženju Delphi 2
Uslovi za korišćenje Delphija 4
Aplikacije pod Windowsom 5
1.1 O programskom okruženju Delphi
Programsko okruženje Delphi firme Borland je moćno integrisano razvojno okruženje za izradu aplikacija za rad pod operativnim sistemom MS Windows. Poseduje alate za brzo i lako organizovanje sprege aplikacijakorisnik sa svim elementima profesionalnih aplikacija za MS Windows. Programi za izvršni deo aplikacije pišu se na programskom jeziku Object Pascal.
Programski jezik Pascal nastao je krajem 60-ih godina kao odgovor na sve veće probleme u vezi sa projektovanjem i održavanjem velikih programskih sistema, do tada korišćenim tehnikama i jezicima za programiranje. Projektovao ga je Niklaus Wirth, pobornik strukturiranog programiranja, a ime mu je dao po francuskom filozofu, matematičaru i fizičaru Blaiseu Pascalu (16231662), koji je, između ostalog, sagradio jednostavnu mašinu za računanje.
Strukturirano programiranje je skup tehnika za izradu programa sa jasnom i lako razumljivom strukturom, uz korišćenje podataka sa jasno definisanim strukturama. Programski jezik Pascal podržava te principe svojim osnovnim upravljačkim strukturama (selekcije i ciklusi) i strukturiranim tipovima podataka (nizovi, zapisi, skupovi, datoteke). Za njega postoji i međunarodni (ISO) standard.
Standardni Pascal je jezik sa jednostavnom i logičnom strukturom i zbog toga se dosta lako uči. Vrlo je pogodan za početnike, za savlađivanje osnovnih principa programiranja, kao i za usvajanje organizovanog i razumljivog načina razmišljanja i izražavanja.
Standardni Pascal, međutim, ima nekoliko ozbiljnih mana koje ga čine nepodesnim za pisanje velikih programskih sistema.
Pre svega, zahteva se da celokupan tekst izvornog programa, uključujući sve potprograme, bude u jednoj datoteci. Osnovna ideja je da se prevodiocu omogući da proverava ispravnost pozivanja potprograma. Jedna od najneprijatnijih vrsta grešaka u programima, koje se i vrlo teško pronalaze u složenim programskim sistemima, upravo je neslaganje tipova stvarnih argumenata potprograma na mestima pozivanja sa tipovima formalnih argumenata u definiciji potprograma. Pored toga, ova mera trebala je i da onemogući "pametnim" programerima da svesno navedu stvarne argumente drugačijih tipova od očekivanih, postižući time neke specijalne, nestandardne (i sumnjive) efekte. Takvi programi se kose sa jednim od osnovnih principa strukturiranog programiranja teško ih je razumeti.
Druga mana su vrlo ograničene mogućnosti rada sa datotekama. Standardni Pascal predviđa samo sekvencijalne datoteke sa sekvencijalnim pristupom. Relativne datoteke sa direktnim pristupom ne postoje, a još manje indeksne datoteke koje bi omogućavale pristup pomoću ključa. Da situacija bude još gora, imena datoteka koje program treba da obrađuje, ne mogu da se biraju u toku izvršavanja programa, niti su ugrađena u sam program. Datoteke se u programima predstavljaju simboličkim imenima i prepušteno je operativnom sistemu računara na koji će način ta imena povezati sa fizičkim datotekama. Na izbor datoteka korisnik, eventualno, može da utiče komandama operativnog sistema pre početka izvršavanja programa.
Treća mana je nefleksibilnost potprograma pri radu sa nizovima kao argumentima. Brojevi elemenata nizova prilikom svakog pozivanja moraju da budu isti kao brojevi elemenata predviđenih u definiciji potprograma. Čemu praviti zaseban potprogram za sortiranje nizova od po 100 elemenata, kao i zaseban za one od po 500 elemenata?
Programski jezik Turbo Pascal firme Borland pojavio se na ličnim računarima IBM-PC pod operativnim sistemom MS-DOS, sa izvesnim brojem nestandardnih proširenja. Neka od tih proširenja obezbeđuju bolje iskorišćavanje hardverskih mogućnosti računara kome je jezik namenjen, dok druga otklanjaju nedostatke standardnog Pascala.
Za bolje iskorišćavanje hardverskih mogućnosti računara uvedeno je nekoliko formata celobrojnih podataka i nekoliko formata realnih podataka, koji se međusobno razlikuju po opsegu vrednosti i po tačnosti izračunavanja (standardni Pascal predviđa samo jednu vrstu celih i jednu vrstu realnih brojeva). Uvedeni su i specijalni operatori za manipulisanje sa bitovima unutar celobrojnih podataka.
Potreba za pisanjem teksta celokupnog programskog sistema u jednoj datoteci otklonjena je uvođenjem programskih modula. Ti moduli se prevode odvojeno i nazivaju se i jedinicama prevođenja (compilation units). Svaka datoteka programskog teksta je jedan modul i deli se na deo za spregu sa ostalim delom sistema i deo za definisanje sadržaja potprograma koji se nalaze u njoj. U delu za spregu potrebno je opisati sve potprograme (tip rezultata i tipove argumenata) i sve globalne promenljive, koji se koriste izvan te jedinice. U toku prevođenja delova programa u kojima se koriste ti elementi, prevodilac će da konsultuje delove za spregu radi provere ispravnosti korišćenja tih potprograma i globalnih podataka. Mora se priznati, ipak, prevodilac se može prevariti veštim manipulacijama, ali znatno teže nego što je to bio slučaj u programskim jezicima koji su se koristili pre pojave Pascala. Prevodiocu je potrebno podmetnuti datoteku sa lažnim delom za spregu, što u standardnom Pascalu nije moguće.
Rad sa datotekama takođe je poboljšan. Uvedena je mogućnost pridruživanja simboličkih imena fizičkim datotekama u toku izvršavanja programa. To, naravno, uvodi element zavisnosti programa od računara i od operativnog sistema, detalj koji se želeo izbeći u standardnom Pascalu. Pored toga, uvedena je i mogućnost direktnog pristupanja pojedinim zapisima u datotekama, bez čega ne postoji efikasna obrada datoteka.
Do sada je objavljeno sedam verzija Turbo Pascala, neke čak sa nekoliko modifikacija. Svaka nova varijanta je donela neke novine u odnosu na prethodnu: otklanjanje uočenih grešaka i uvođenje novih mogućnosti u jezik. U najznačajnija proširenja spadaju uvođenje podrške za objektno orijentisano programiranje (počev od verzije 5.5) i podrške za izradu atraktivnih sprega aplikacija sa korisnikom, zasnovanih na prozorima i menijima (Turbo Vision), pri radu pod operativnim sistemom MS-DOS.
Objektno orijentisano programiranje je nova metodologija izrade velikih programskih sistema koja se pojavila kada su programski sistemi toliko narasli da tehnike strukturiranog programiranja više nisu davale zadovoljavajuće rezultate. Dok je u centru pažnje strukturiranog programiranja struktura programa, u centru pažnje objektno orijentisanog programiranja su objekti. Objekti su "inteligentni" podaci koji mogu da se nalaze u određenim stanjima. Ta stanja mogu da se promene primenom određenih metoda. Skup objekata sa istim osobinama čini jednu klasu. Klase su analogne tipovima podataka, kao što su celi brojevi ili realni brojevi, ali mogu da predstavljaju proizvoljno složene apstraktne objekte (na primer, geometrijske figure).
Na ličnim računarima IBM-PC u poslednje vreme vrlo su popularni rad pod operativnim sistemom MS Windows i razvoj aplikacija za tu platformu. Kao odgovor na veliko interesovanje, firma Borland je 1995. godine objavila svoje programsko okruženje Delphi za izradu aplikacija za rad pod operativnim sistemom MS Windows.
Programsko okruženje Delphi sadrži vrlo moćne alate za uobličavanje sprege aplikacija korisnik u stilu profesionalnih aplikacija za tu platformu. Ti alati omogućavaju vizuelno uređivanje pojedinih prozora (obrazaca) i podešavanje parametara komponenata u tim obrascima, pomeranjem komponenata po ekranu pomoću miša i popunjavanjem odgovarajućih formulara. U tom delu posla nema nikakvog pisanja programa.
Postupci koje aplikacija treba da obavi kao odgovor na razne događaje, kao što je pritisak mišem na neko dugme u prozoru, programiraju se na jeziku Object Pascal.
Object Pascal predstavlja dalje usavršavanje Turbo Pascala u domenu objektno orijentisanog programiranja. Ugrađena je i podrška za neposredno korišćenje API funkcija, standardnog alata koji firma Microsoft nudi za izradu aplikacija za Windows. Programer u okruženju Delphi samo relativno retko treba neposredno da poziva te API funkcije. Alati koje Delphi pruža učiniće to umesto njega.
1.2 Uslovi za korišćenje Delphija
Verzija 1.0 Delphija, koja je objavljena u proleće 1995. godine, pravljena je za operativni sistem Windows 3.1x i namenjena je za izradu 16-bitnih aplikacija. Mogla je da se koristi i pod operativnim sistemima Windows 95 i Windows NT, ali nije mogla da iskoristi nove pogodnosti koje su pružale ta nova, 32-bitna okruženja. Rezultujuće aplikacije su bile isključivo 16-bitne, bez obzira pod kojim operatinim sistemom se radilo. Te aplikacije su mogle da se izvršavaju u svim pomenutim okruženjima.
Znatno prerađena verzija 2.0 Delphija, koja je objavljena u februaru 1996. godine, pravljena je za 32-bitna okruženja. Mogla je da se koristi samo pod operativnim sistemima Windows 95 i Windows NT. Razvijene aplikacije su mogle da se izvršavaju samo pod tim operativnim sistemima. Naravno, mogle su da se koriste sve pogodnosti tih okruženja, kao što su novouvedene komponente i uporedo izvršavanje programa u više niti (multithreading).
Verzije 3.0 i 4.0 Delphija, koje su objavljene 1997. i 1998. godine, donele su dalja poboljšanja, ali najveći skok je napravljen između verzija 1.0 i 2.0. Od interesantnijih novina vredno je pomenuti poboljšanu pomoć za pisanje koda aplikacija i podršku za rad preko Interneta.
Karakteristika svih verzija Delphija je da generišu pravi mašinski program (native code), što rezultuje bržim izvršavanjem aplikacija u odnosu na druga vizuelna okruženja koja generišu neki međukôd koji se posle izvršava interpretacijom.
Konačan rezultat projektovanja je jedna datoteka sa izvodljivim oblikom (.exe) programa koji čini aplikaciju. Prilikom instalacije aplikacije, osim eventualnih datoteka koje koristi aplikacija, dodatne datoteke nisu potrebne (na primer, biblioteke sa dinamičkim povezivanjem .dll), pod uslovom da aplikacija ne koristi podršku za rad sa bazama podataka i za izradu izveštaja. Ako se koristi neka od tih podrški, Borland Database Engine, odnosno ReportSmith moraju takođe da se instaliraju.
Smeštanje celokupnog koda u izvodljivi oblik (.exe) programa ima taj nedostatak da i najmanja aplikacija zauzima barem 275 KB. Ako se na jednom računaru koristi više aplikacija koje su razvijene pomoću Delphija, može doći do znatnog utroška prostora na disku. Zbog toga je u verziji 3.0 uvedena mogućnost pravljenja paketa sa dinamičkim povezivanjem (.dpl Delphi Package Library) koji po nameni odgovaraju Windowsovim bibliotekama sa dinamičkim povezivanjem (.dll). Sama biblioteka vizuelnih komponenata se isporučuje u obliku takvih paketa. Projektant aplikacije može da naznači koji će od tih paketa da se ugrade u izvodljiv oblik aplikacije, a koji ne. Naravno, paketi koji nisu ugrađeni moraju da se isporuče odvojeno korisniku aplikacije.
Za rad sa verzijom 4.0 Delphija potreban je procesor barem 486DX/66 MHz i najmanje 16 MB operativne memorije (RAM). Za udoban rad poželjno je koristiti računar sa procesorom barem Pentium/133 MHz i memorijom od 32 MB. Neophodno je imati CD-ROM uređaj, monitor najmanje VGA rezolucije i miša.
Neophodno je imati operativni sistem Windows 95 ili Windows NT 4.0 (Service Pack 3), ili noviji.
Za instaliranje potrebno je oko 60 MB prostora na disku za minimalnu instalaciju. Za potpunu instalaciju potreban prostor na disku je oko 120 MB.
Verzija 1.0 Delphija zahteva računar sa procesorom barem 386 i najmanje 6 MB operativne memorije (RAM). Za udoban rad poželjno je koristiti računar sa procesorom barem 486 i memorijom od 12 MB. Za instaliranje potrebno je od 26,2 do 83,7 MB. Posedovanje CD-ROM uređaja nije neophodno jer celokupna instalacija može da stane na 15 disketa od 1,4 MB.
Veći deo materije koji je predmet ove knjige može da se koristi u svim verzijama Delphija. Ilustracije u ovoj knjizi, kao i rešenja zadataka i primeri, rađeni su u verziji 4.0 Delphija pod Windowsom 95. Korišćeni su sistemski fontovi za Srednju i Istočnu Evropu.
Za čitaoce koji još koriste verziju 1.0 Delphija, na pratećoj disketi postoji zaseban komplet programa rešenja zadataka i primera iz knjige. Ti programi rešavaju iste probleme, ali uz upotrebu samo onih komponenata koje postoje u toj verziji Delphija.
1.3 Aplikacije pod Windowsom
Aplikacije su programski sistemi projektovani za rešavanje određenog problema.
Osnovna odlika aplikacija pod operativnim sistemom MS Windows je sprega aplikacije i korisnika, zasnovana na prozorima i drugim vizuelnim komponentama kao što su: dugmad, okviri za tekst, meniji itd. Pomoću tih komponenata korisnik upravlja radom aplikacije i prima informacije od aplikacije. Prozori mogu da se shvate kao okviri koji objedinjuju komponente u logičke celine.
Svaka aplikacija ima barem jedan prozor koji se naziva glavnim prozorom (main window) aplikacije. Osim njega može da postoji proizvoljan broj sekundarnih prozora (secondary windows). Glavni prozor je obično stalno na ekranu, dok se sekundarni prozori pojavljuju i nestaju sa ekrana prema trenutnim potrebama. Ima slučajeva kada se i neki od sekundarnih prozora duže zadržavaju na ekranu.
Po nameni, specijalnu vrstu sekundarnih prozora čine prozori za dijalog (dialog boxes). Koriste se za saopštavanje raznih poruka korisniku i za prikupljanje raznih podataka od korisnika. Po završetku dijaloga uvek nestaju sa ekrana. Prozori za dijalog su specifični i po tome što korisnik, sve dok ih ne zatvori, ne može ništa da uradi ni u jednom od drugih prozora date aplikacije. Prozori sa tom osobinom nazivaju se uslovljenim (modal) prozorima, jer je nastavak rada uslovljen njihovim zatvaranjem. U ovom smislu, ostali prozori nazivaju se i neuslovljenim (modeless) prozorima. U slučaju da se na ekranu nalazi uslovljeni prozor neke aplikacije, još uvek može da se priđe prozoru druge aplikacije i da se nešto radi u njoj.
Kada postoji više prozora u aplikaciji, oni se iscrtavaju jedan preko drugoga. Trenutno aktivan prozor vidi se u celini, dok ostali mogu da budu delimično ili u potpunosti zaklonjeni, u zavisnosti od njihovih veličina i položaja na ekranu. Korisnik može pomoću miša da pomera sve prozore nezavisno po ekranu, da im menja veličine i da ih ukloni sa ekrana.
Postoji i specijalna vrsta prozora koji se nalaze unutar radnog prostora nekog drugog prozora. Ti prozori nazivaju se decom onih prozora u čijem se radnom prostoru nalaze, a koji se, s druge strane, nazivaju roditeljima te dece. Prozori deca mogu da se pomeraju samo unutar radnog prostora prozora roditelja. Pomeranjem prozora roditelja po ekranu, razume se, pomeraju se i njegova deca. Promenom veličine prozora roditelja, međutim, ne menjaju se veličine njegove dece. Ako posle promene veličine prozora roditelja u radni prostor ne stanu prozori sve dece, pojaviće se klizači uz ivice radnog prostora prozora roditelja. Pomoću tih klizača i miša, korisnik će nevidljive prozore dece (ili njihove delove) moći da dovede u vidno polje.
Slika 1.1 prikazuje glavni prozor aplikacije WordPad, jedne od standardnih aplikacija koje prate Windows. 
Osnovni način za upravljanje aplikacijama pod Windowsom je pomoću miša (mouse). Mesto na ekranu na kome može da se deluje mišem obeležava se pokazivačem miša (mouse cursor). Pokazivač miša može da ima razne grafičke predstave. Osnovni oblik je strelica čiji vrh označava mesto pokazivača na ekranu. Alternativni oblici mogu da se koriste za označavanje trenutne uloge miša. Na primer, iznad raznih okvira za tekst pokazivač miša obično ima oblik tanke vertikalne linije sa vodoravnim ispustima na gornjem i donjem kraju. Takav oblik je pogodan da se označi mesto između dva znaka u tekstu.
Postoje dve osnovne radnje koje mogu da se obave mišem:
- Pritisak (click). Pod pritiskom mišem podrazumevaju se pomeranje pokazivača miša iznad određene komponente i pritisak i otpuštanje levog tastera miša. Tako se na ekranu može pritisnuti neko dugme, odabrati neka stavka u meniju, promeniti stanje nekog okvira za potvrdu itd. i time dati signal aplikaciji.
- Odvlačenje (drag and drop). Pod odvlačenjem mišem podrazumeva se pomeranje prozora po ekranu ili promena veličine prozora. Izvodi se tako što se pokazivač miša dovede iznad natpisa prozora, pritisne se levi taster miša, pomeri se pokazivač miša (uz pritisnuti levi taster) na neko drugo mesto i otpusti se taster miša. Ako se na taj način mišem uhvati ivica ili ugao prozora, pomeranjem pokazivača pomeriće se ivica ili ugao sa susednim ivicama, čime se menja veličina prozora. U zavisnosti od aplikacije, na ovaj način ponekad mogu da se pomeraju neke komponente unutar prozora, da im se promeni veličina ili da se postignu drugi efekti.
Osim mišem, radom aplikacije može da se upravlja i preko tastature. Osnovna upotreba tastature je unošenje teksta u okvire za tekst. Mesto u tekstu na kome može nešto da se promeni obeležava se pokazivačem teksta (text cursor). To je obično jedna vertikalna trepteća linija koja se uvek nalazi između dva znaka u tekstu. Treba jasno razlikovati pokazivač miša od pokazivača teksta. Pokazivač miša može da se pomera pomoću miša po celom ekranu, dok se pokazivač teksta pomera odgovarajućim tasterima preko tastature (tasterima sa strelicama itd.) samo unutar teksta. Pored toga, pritiskom mišem na okvir za tekst u nekoj tački, pokazivač teksta može da se premesti na trenutni položaj pokazivača miša.
Pod nekim uslovima, i preko tastature mogu da se proizvode efekti pritiska mišem. Za to mogu da se koriste određeni tasteri sa slovima u kombinaciji sa tasterom Alt, kao i tasteri Enter i Esc. Za komponentu koja na ovaj način može da se pritisne kaže se da joj je pridružen znak prečica (accelerator character). Znakovi prečice prikazuju se podvučeno u natpisima komponenata kojima su pridruženi.
Prozori Windowsa mogu da imaju sledeće delove:
- Traka sa natpisom (caption bar). Nalazi se uz gornju ivicu prozora. Sastoji se od natpisa i do četiri upravljačka dugmeta. Natpis obično sadrži ime aplikacije i često još i ime datoteke koja se trenutno obrađuje. Četiri moguća dugmeta su:
- Dugme upravljačkog menija (control menu button). Nalazi se na levom kraju trake sa natpisom i sadžri sličicu (icon) pridruženu prozoru. Pritiskom na to dugme otvara se upravljački meni. Uloga i način korišćenja upravljačkog menija objašnjeni su kasnije u ovom odeljku.
- Dugme za minimiziranje prozora (minimize button). Pritiskom na to dugme prozor se ukloni sa ekrana pri čemu ostane dugme koje ga predstavlja u paleti poslova (task bar) u radnom prostoru (desktop) Windowsa ili se pretvara u minimalni oblik (tipično za sekundarne prozore za koje obično ne postoji pridruženo dugme u paleti poslova). Dugme u paleti poslova sadrži sličicu koja je pridružena prozoru i deo natpisa prozora. Pritiskom na to dugme levim tasterom miša, prozor se ponovo pojavi na ekranu u prvobitnoj veličini i na prvobitnom mestu. Pritiskom desnim tasterom na dugme u paleti poslova otvara se upravljački meni. Minimalni oblik prozora se sastoji od skraćenog oblika trake sa natpisom. Sadrži sličicu pridruženu prozoru, deo natpisa i dugmad za vraćanje u prvobitno stanje, maksimiranje i zatvaranje. Pritiskom na sličicu ili natpis otvara se upravljački meni, dok pritiskom na neko od dugmadi postiže se ono čemu pritisnuto dugme služi. Ponovno prikazivanje prozora u prvobitnoj veličini i na prvobitnom mestu može da se postigne i dvostrukim pritiskom na sličicu ili tekst natpisa u minimalnom obliku prozora.
- Dugme za maksimiranje prozora (maximize button). Pritiskom na to dugme prozor će da popuni ceo ekran. S\x89 mo dugme menja izgled: sadržaće dva delimično preklopljena pravougaonika koji simbolizuju preklopljene prozore na ekranu. Ponovnim pritiskom na to dugme prozor će da se vrati na prvobitno mesto u prvobitnoj veličini.
- Dugme za zatvaranje prozora (close button). Pritiskom na to dugme prozor se ukloni sa ekrana; ukloni se i pridruženo dugme, ako postoji, iz palete poslova; ako se radi o glavnom prozoru, aplikacija se završava.
- Traka glavnog menija (menu bar). Nalazi se ispod trake sa natpisom. Sadrži stavke glavnog menija za izbor pojedinih grupa radnji koje aplikacija može da obavi. Traka glavnog menija obično postoji samo u glavnom prozoru aplikacije. Mada aplikacija može da se zamisli potpuno bez menija, takve aplikacije se vrlo retko sreću u praksi. Uloga i način korišćenja menija objašnjeni su malo dalje u ovom odeljku.
- Traka sa alatkama (tool bar). Nalazi se ispod trake glavnog menija. Sadrži dugmad sa sličicama pomoću kojih se najčešće korišćene radnje mogu lakše da izvršavaju nego pomoću menija.
- Statusna traka (status bar). Nalazi se uz donju ivicu prozora. Sadrži podatke o stanju aplikacije uključujući i kratka uputstva ili poruke korisniku.
- Radni prostor (client area). Zauzima sav preostali prostor u prozoru. U tom prostoru se nalaze vizuelne komponente koje su smeštene u prozor. U posmatranom primeru (slika 1.1) ceo radni prostor popunjen je jednim višeredim okvirom za tekst. Uz ivice tog okvira mogu da se nalaze klizači pomoću kojih se delovi teksta koji nisu stali u radni prostor, po potrebi, pomeranjem dovode u vidno polje.
- Ivice prozora (window border). Ograđuju celokupan prozor. Ivice prozora imaju različit izgled ako veličina prozora može da se promeni pomoću miša, ako ne može da se promeni, ili ako se radi o prozoru za dijalog.
Radom aplikacija upravlja se komandama pomoću kojih mogu da se podešavaju parametri obrade i da se traži sprovođenje pojedinih radnji koje su predviđene u aplikaciji. Osnovni način izdavanja komandi je pomoću menija (menu). Mada rad aplikacija može da se organizuje i bez menija, takve aplikacije su vrlo retke u praksi.
Meni sadrži niz stavki od kojih jedna može da se odabere da bi se naznačila neka akcija aplikacije. Da lista stavki ne bi bila predugačka, stavke se grupišu i obrazuju se meniji čija hijerarhijska struktura sadrži više nivoa. Prvi nivo stavki je glavni meni (main menu), čije stavke predstavljaju grupe mogućih operacija. Izborom stavki glavnog menija pojavljuje se podmeni (submenu) čije stavke mogu da predstavljaju konkretne operacije, ili, pak, dalje podmenije na sledećem nivou. U praksi obično ima dva nivoa menija. Stavke glavnog menija gotovo nikad ne predstavljaju konkretne akcije. S druge strane, stavke podmenija samo ređe ukazuju na potpodmenije.
Stavke glavnog menija stalno su vidljive u traci glavnog menija, ispod trake sa natpisom prozora (slika 1.1). Stavke podmenija prikazuju se samo za trenutno odabranu stavku glavnog menija, poređane uspravno ispod odgovarajuće stavke glavnog menija. Eventualni potpodmeniji prikazuju se desno (ređe levo) od podmenija, sa vrhom u visini odgovarajuće stavke podmenija. Postojanje potpodmenija označava se strelicom u obliku popunjenog trougla uz desnu ivicu podmenija.
Trenutno odabrane stavke u meniju prikazuju se isticanjem drugom bojom podloge i slova u odnosu na ostale stavke. Pošto stavke u različitim podmenijima mogu imati iste natpise, data stavka u meniju je jednoznačno određena nizom stavki koje treba odabrati, počev od glavnog menija, da bi se stiglo do te stavke. To se, obično, upravo tako i navodi, stavljanjem uspravne crte (|) između natpisa pojedinih stavki u nizu. Na primer, stavka Find u podmeniju Edit obeležava se sa Edit | Find.
Izbor stavki glavnog menija i podmenija može da se vrši na više načina:
- Pritiskom na levi taster miša, kada je pokazivač miša iznad željene stavke glavnog ili podmenija.
- Aktiviranjem glavnog menija pritiskom na taster Alt. Posle toga tasterima Ž i \xac može da se kreće po stavkama glavog menija, a tasterima \xaf i \xad po stavkama trenutno aktivnog podmenija (ispod trenutne istaknute stavke glavnog menija). Ako trenutno istaknuta stavka podmenija ima svoj potpodmeni, pritiskom na taster Ž otvara se taj potpodmeni. Obrnuto, vraćanje na prethodni nivo podmenija postiže se tasterom \xac . Sam izbor, na kraju, ostvaruje se pritiskom na taster Enter kada je istaknuta odgovarajuća stavka podmenija.
- Istovremenim pritiskom tastera Alt i tastera podvučenog slova u stavki glavnog menija otvara se odgovarajući podmeni. Posle toga treba pritisnuti taster podvučenog slova u stavki podmenija (sada više taster Alt ne mora, ali može da bude pritisnut). Podvučeni znakovi u natpisima stavki menija, kao i kod drugih komponenata, nazivaju se znakovima prečicama. Ovaj način biranja obično se obeležava sa Alt+E za otvaranje podmenija Edit, odnosno sa Alt+E+E za izdavanje komande Edit | Replace (izbor stavke Replace posle otvaranja podmenija Edit).
Izborom komandi iza čijih se imena u podmeniju nalaze tri tačke (\xc9 ) otvara se zaseban prozor za dijalog. Taj prozor sadrži obrazac čijim popunjavanjem treba da se zadaju podaci neophodni za izvršavanje tih komandi. Na primer, u aplikaciji WordPad (slika 1.1), komandom Edit | Paste Special (skraćeno Alt+E+S) otvoriće se prozor za dijalog koji je prikazan na slici 1.2). 
Prozori za dijalog, pored komponenata za unošenje ili za izbor vrednosti potrebnih podataka, obično, sadrže još i dva dugmeta: dugme OK (sve u redu), kojim se zahteva sprovođenje započete aktivnosti sa trenutno vidljivim vrednostima u prozoru i dugme Cancel (odustani), kojim se odustaje od sprovođenja te akcije. Osim mišem, dugme OK može da se pritisne i pomoću tastera Enter na tastaturi (u slučajevima kada je oivičen pravougaonikom debljim od onog oko ostale dugmadi). Dugme Cancel uvek može da se pritisne i pomoću tastera Esc na tastaturi. Odustajanje se postiže i zatvaranjem prozora za dijalog pomoću upravljačkog menija ili pritiskom mišem na dugme za zatvaranje prozora.
Ponekad prozor za dijalog služi samo da bi korisnik potvrdio da stvarno želi sprovođenje odabrane aktivnosti. Time mu se pruža još jedna prilika za eventualno odustajanje. Takvi prozori za dijalog obično sadrže tekst odgovarajućeg pitanja i dugmad Yes (da) i No (ne). Njihova uloga i način odabiranja analogna je dugmadi OK i Cancel.
Pored navedenih, prozori za dijalog često sadrže i dugme Help (pomoć). Pritiskom na to dugme dobija se prigodna priručna pomoć.
Za aktiviranje nekih radnji aplikcija, predstavljenih odgovarajućim stavkama podmenija, mogu da postoje i tasteri prečice (shortcut keys). Za razliku od znakova prečica, pomoću kojih se po meniju kreće korak po korak, kao i pomoću miša, pritiskom na taster prečicu, stavka menija kojoj je on pridružen aktivira se u jednom potezu. Pri tom se meni ne otvara i odabrana stavka se uopšte ne vidi na ekranu. Ne smeta, ako je u trenutku pritiska na taster prečicu meni otvoren sa bilo kojom istaknutom stavkom, uključujući i stavku koja se njime bira.
Tasteri prečice mogu da budu funkcijski tasteri od F1 do F12, sami ili u kombinaciji sa upravljačkim tasterima Shift, Alt i/ili Ctrl, kao i tasteri sa slovima u kombinaciji sa tasterom Ctrl. Postojanje tastera prečice označava se uz desnu ivicu menija, posle natpisa stavke menija. Na primer, komanda Edit | Find Next u aplikaciji WordPad (slika 1.1) ima taster prečicu F3, a komanda Edit | Paste taster prečicu Ctrl+V.
Za razliku od znakova prečica, čije tumačenje može da se menja u toku izvršavanja aplikacije, tumačenje tastera prečica je jedinstveno u toku celog izvršavanja aplikacije.
Pored eventualnog glavnog menija (sa pratećim podmenijima) svaki prozor poseduje upravljački meni (control menu) koji se naziva i sistemski meni (system menu). Upravljački meni (slika 1.3) aktivira se pritiskom na dugme upravljačkog menija na levom kraju trake sa natpisom prozora (slika 1.1). 
Pomoću upravljačkog menija prozor može da se minimizira (Minimize), da se maksimira (Maximize), da mu se povrati prethodna veličina (Restore), da se pomera po ekranu (Move), da mu se promeni veličina (Size) i da se zatvori (Close). Sve ove radnje mogu i na drugi način da se postignu, pa je otvaranje upravljačkog menija retko potrebno. Radnje koje se tiču promene veličine i položaja prozora spomenute su već ranije u ovom odeljku, a sa slike se vidi da poslednja radnja ima svoj taster prečice. Pored toga, zatvaranje prozora može da se postigne i dvostrukim pritiskom dugmeta upravljačkog menija.
Postoje, doduše retke, aplikacije čiji upravljački meni sadrži i druge stavke. Obično su to vrlo specifične male aplikacije koje često i nemaju drugi meni osim upravljačkog. Nekad nemaju ni glavni prozor, već samo sličicu glavnog prozora.
Prozori, a naročito prozori za dijalog, pored menija sadrže i razne komponente pomoću kojih korisnik može da utiče na tok izvršavanja aplikacije. Među njima se najčešće koriste (slika 1.4): 
- Oznaka (label). Prikazuje tekst (natpis oznake) koji može da bude neka poruka korisniku ili opis namene druge komponente. Korisnik ne može da deluje na oznake pomoću miša.
- Dugme (button). Korisnik može mišem da ga pritisne i time da d\x89 signal za neku akciju. Natpis na dugmetu označava njegovu namenu. Unošenje podataka u prozore za dijalog obično se završava pritiskom na jedno od dugmadi.
- Okvir za tekst (edit box). Korisnik u ovaj okvir može da unese proizvoljan tekst preko tastature. Postoje okviri koji mogu da sadrže samo jedan red teksta i okviri koji mogu da sadrže više redova teksta.
- Okvir za potvrdu (check box). Mali kvadrat pored natpisa ovog okvira može da sadrži znak za potvrdu (3) ili da bude prazan. Prisustvo znaka za potvrdu označava da osobina u natpisu važi, a odsustvo da ne važi. Kada se pritisne mišem, promeni svoje stanje iz nepotvrđenog u potvrđeno i obrnuto.
- Radio-dugme (radio button). Mali krug pored natpisa ove komponente može da sadrži crnu tačku ili da bude prazan. Koristi se u grupama s tim da samo jedno dugme u grupi može da ima popunjen kružić. Te grupe se koriste za izbor jedne od nekoliko, međusobno isključivih, mogućnosti.
Slično stavkama menija, natpisi mogu da sadrže znakove prečice (prikazane podvučeno) koji omogućavaju pristup komponentama preko tastature (istovremenim pritiskom na taster Alt i taster podvučenog znaka).
Neke od komponenata u prozoru ili neke stavke menija mogu da budu privremeno neupotrebljive. Takve komponente obično se prikazuju bledo (dimmed).
Svakog trenutka samo je jedan od trenutno vidljivih prozora na ekranu aktivan. Za takav prozor se kaže da je u žiži (has focus). Od ostalih prozora vidljivo se razlikuje po drugačijoj boji trake sa natpisom prozora i teksta u njoj. Korisnik može da aktivira prozore po proizvoljnom redosledu (osim ako je trenutno aktivan prozor uslovljeni prozor za dijalog) prostim pritiskom mišem na bilo koju tačku koja pripada željenom prozoru.
U trenutno aktivnom prozoru svakog trenutka je samo jedna komponenta aktivna. Za tu komponentu se kaže da je u žiži. Komponenta koja je u žiži, obično se vidljivo razlikuje od drugih komponenata iste vrste. Tri karakteristična načina razlikovanja su: natpis komponente uokviren pravougaonikom od tanke isprekidane linije, za komponente koje imaju natpise, trepteći pokazivač teksta unutar raznih okvira za tekst ili uokvirena jedna od stavki (kao i kod dugmadi) unutar raznih okvira sa listama.
Pritiskom na neku komponentu mišem ili odabiranjem pomoću znaka prečice, žiža se pomeri na tu komponentu. Pored toga, žiža može da se pomeri sa jedne komponente na drugu prema određenom redosledu, pritiskanjem tastera Tab na tastaturi, odnosno kombinacije tastera Shift+Tab po obrnutom redosledu. Redosled pomeranja žiže sa komponente na komponentu na ovaj način zavisi od aplikacije.
U dobro projektovanoj aplikaciji redosled pomeranja žiže sledi logičan tok unošenja podataka, primeren datoj situaciji. Takođe, u dobrim aplikacijama komponente su tako raspoređene da logičan redosled njihovog obilaska na ekranu bude sleva udesno i odozgo nadole.
Sve aplikacije pod Windowsom mogu da se podele u dve grupe:
- Aplikacije sa spregom za jedan dokument (Single Document Interface Applications SDI aplikacije). Mogu istovremeno da obrađuju samo jedan dokument (tekst, sliku itd.). U glavnom prozoru se obrađuje jedan dokument (tekst, slika ili drugi skup podataka) a eventualni ostali prozori u aplikaciji služe samo kao podrška za ostvarivanje te obrade. Svi su prozori obični, u smislu da među njima nema prozora roditelja niti prozora dece.
- Aplikacije sa spregom za više dokumenata (Multiple Document Interface Applications MDI aplikacije). Mogu odjednom da obrađuju više dokumenata. Glavni prozor je prozor roditelj koji sadrži barem jedan prozor dete. Svaki prozor dete sadrži po jedan dokument koji se obrađuje u aplikaciji. Aplikacija može da ima i izvestan broj običnih prozora koji služe kao podrška za obradu dokumenata. Pojedinim radnjama u aplikaciji deluje se na dokument u prozoru detetu koji je tog trenutka aktivan.
U grupu SDI aplikacija spadaju već pomenuti WordPad, kao i Paint, Delphi i drugi. U WordPadu i Paintu dokument je tekst ili slika koji se obrađuje, dok je u Delphiju aplikacija koja se projektuje.
U grupu MDI aplikacija spadaju CorelDRAW, Microsoft Word, Adobe Photoshop i drugi.
Aplikacije pod Windowsom imaju u velikoj meri ujednačen stil uređivanja sprege sa korisnikom. To olakšava upoznavanje novih aplikacija i istovremeno korišćenje velikog broja aplikacija.
Pre svega treba spomenuti ujednačeni izgled prozora, način korišćenja miša i tastature, kao i izdavanje komandi preko menija. Uređivanje glavnog menija takođe ima svoja ustaljena pravila.
Na prvom mestu obično je podmeni File (datoteka) koji sadrži komande za rad sa datotekama ako aplikacija obrađuje datoteke (uobičajene komande: New nova, Open otvori, Save snimi i Save As snimi kao), komande za štampanje i za podešavanje štampača, ako je u aplikciji predviđeno štampanje (uobičajena komanda: Print štampaj) i komanda Exit za završetak aplikacije. Pored toga, ako aplikacija obrađuje datoteke, ovaj podmeni često sadrži imena poslednjih nekoliko obrađivanih datoteka radi bržeg ponovnog otvaranja.
Ako je to primereno, drugi podmeni je Edit (uredi) za razne operacije uređivanja. Kao gotovo obavezne operacije tu se nalaze Undo, za poništavanje efekta poslednje komande, kao i Cut (iseci), Copy (kopiraj) i Paste (umetni) za rad sa Clipboardom Windowsa.
Ako postoje, slede podmeniji Search (pretraži) za razna pretraživanja i View (prikaži) za podešavanje šta se sve vidi na ekranu (razne palete, lenjiri itd.).
Poslednji podmeni obično je Help (pomoć) za pokretanje sistema priručne pomoći. Najčešće prisutne komande su Contents (sadržaj), za prikazivanje oblasti tema o kojima može da se dobije priručna pomoć i About (o aplikaciji), za prikazivanje opštih informacija o aplikaciji (ime i verzija aplikacije, autor, nosilac autorskih prava itd.).
U MDI aplikacijama pretposlednji podmeni obično je Window (prozor) za upravljanje prozorima decom unutar radnog prostora glavnog prozora (roditelja). Među komandama ovog podmenija obično su New Window, za obrazovanje novog prozora, kao i komande za raspoređivanje svih tih prozora po radnom prostoru glavnog prozora. Pored toga, ovaj podmeni obično sadrži spisak postojećih prozora dece. Pomoću tih stavki mogu da se aktiviraju pojedini prozori deca, naročito ako jedan od njih pokriva ceo radni prostor glavnog prozora.
U aplikacijama Windowsa postoji i izvestan broj ustaljenih tastera prečica: F1 Help | Contents, Ctrl+O File | Open, Ctrl+S File | Save, Ctrl+P File | Print, Ctrl+X ili Shift+Del Edit | Cut, Ctrl+C ili Ctrl+Ins Edit | Copy, Ctrl+V ili Shift+Ins Edit | Paste, Ctrl+Z Edit | Undo, Alt+F4 Close (u upravljačkom meniju). Pored toga, u aplikacijama za obradu teksta, Ctrl+B obično služi za naizmenično uključivanje i isključivanje prikazivanja teksta polucrno (bold), Ctrl+I kurzivom (italic), a Ctrl+U podvučeno (underlined).
Pošto nije uobičajeno da se neka akcija pokreće izborom stavke glavnog menija, u retkim slučajevima kada se to ipak dešava, korisniku se skreće pažnja dodavanjem znaka uzvika (!) na kraju natpisa stavke. To je znak da će se nešto trenutno desiti, bez mogućnosti odustajanja, za razliku od slučajeva kada sledi otvaranje podmenija ili prozora za dijalog, pa korisnik ima priliku da se predomisli.
Stavke podmenija, koje umesto tipičnog trenutnog sprovođenja neke akcije dovode do otvaranja prozora za dijalog, obično se označavaju dodavanjem tri tačke (...) na kraju natpisa (slika 1.1). Time se korisniku daje do znanja da će još imati priliku da eventualno odustane od započete aktivnosti.
Dodavanje znaka uzvika ili tri tačke na kraju natpisa je uobičajena praksa, a ne nešto što je obavezno. Može se desiti da se projektant neke aplikacije ne drži ovih pravila.
Ranije pomenuto navođenje postojanja tastera prečice u nastavku natpisa stavke menija, barem u slučaju Delphija, ne može da se zaobiđe.
Postupak izrade aplikacije naziva se projektovanjem, a predmet tog postupka projektom aplikacije, ili skraćeno, samo projektom. Drugim rečima, projekat aplikacije predstavlja aplikaciju u fazi izrade ili projektovanja.
Skica prozora (window) u toku projektovanja aplikacije naziva se obrascem (form). Shodno tome, skica glavnog prozora za vreme projektovanja naziva se glavnim obrascem projekta.
Delphi je, s jedne strane, aplikacija Windowsa i koristi se na opisani način. S druge strane, služi za izradu aplikacija za Windows. Preporuka projektantima je da se trude da svoje aplikacije što više uklope u opisanu šemu. Time povećavaju izglede da njihov proizvod rado prihvate budući korisnici.
Delphi u potpunosti podržava i potpomaže projektovanje standardnih i atraktivnih aplikacija za Windows.
1.3 Aplikacije pod Windowsom
Glavni prozor aplikacije pod Windowsom.
Dugme upravljačkog menija
Dugme za maksimiranje prozora
Dugme za minimiziranje prozora
Traka glavnog menija
Pokazivač teksta
Statusna traka
Pokazivač miša
Podmeni
Traka sa natpisom
Dugme za zatvaranje prozora
Traka sa alatkama
Upravljački meni prozora.
Najčešće korišćene komponente.