15. Upotreba nekih Jaws alata za pisanje skripti. 

Do sada smo se drzali jednostavnog primera na kome je trebalo da naucimo Osnovne programske reci JSL-a. U tu svrhu smo 
koristili samo par Jaws funkcija, i upisivali smo ih rucno. Posto cemo ubuduce koristiti sve vise i vise razlicitih Jaws
funkcija, krajnje je naporno i neprakticno pamtiti njihova imena, parametre i povratne vrednosti. Iako ce nam neke od njih 
vremenom zbog ceste upotrebe postati poznate, najcesce cemo se pri upisivanju poziva neke funkcije u nas programski kod koristiti jednim Jaws-ovim alatom. To je:
Insert Function dijalog.

Koristite sledece korake da upisete poziv neke funkcije u svoju skriptu: 
1. Postavite kursor na mesto u skripti gde zelite upisati poziv neke funkcije i izaberite "Insert Function Call" iz "Script" 
menija ili  pritisnite control+I. To ce otvoriti "Insert Function" dijalog. Dijalog sadrzi na stotine funkcija koje mozete 
umetati u svoju skriptu. Kada se otvori dijalog cujete naslov "Insert Function 1". Izraz "Function 1" znaci da ste na prvom 
nivou dijaloga. Prvo polje u dijalogu je edit polje(edit box.) - Pritisnite tab da dodjete na alfabetski sredjenu listu 
funkcija koje su na raspolaganju.
2. Ako znate ime vase funkcije pocnite da ga kucate u edit polju. Selekcija na alfabetskoj listi ce se automatski pomeriti na
 funkciju koja pocinje slovom koje ste otkucali. Ako neznate ime funkcije idite na korak 5. 
Napomena: Opis funkcije ce biti najavljen svaki put kad pritisnete novi taster. Dok ste u "insert function" dijalogu mozete 
takodje tabom da se krecete do "Description" i "Returns" polja da ponovo cujete informacije u vezi
selektovane funkcije. 
3. Kada ste otkucali dovoljno slova da cujete puno ime funkcije koju trazite, pritisnite enter da selektujete funkciju. Idite 
na korak 6. 
4. Ako se ne secate tacnog imena funkcije, ukucajte samo nekoliko prvih slova za koje mislite da funkcija njima pocinje dok ne cujete ime koje zelite. Mozete takodje da koristite tab da dodjete na listu a potom strelicnim tasterima da
dodjete do zeljene funkcije.  
Napomena: Mozete takodje da kucate ime funkcije dok ste na listi. Skript menadzer ce naposletku naci funkciju sa tacnim imenom. Dok ste na listi, takodje cete cuti opis funkcije kada koristite strelicne tastere.
5. Pritisnite next (alt+n) da selektujete funkciju. Kada to uradite jedna od sledece dve stvari ce se dogoditi:
A. Ako funkcija koju ste selektovali ne zahteva parametre, bicete vraceni na glavni Skript menadzerov prozor za pisanje.
Funkcija je dodata vasoj skripti.
B. Ako funkcija zahteva jedan ili vise parametara, jedan drugi dijalog (Insert Function 1 dijalog) sa opisom potrebnih 
parametara ce biti otvoren. Na primer ako ste izabrali "SayString" funkciju, bice potrebno da upisete tekst ili poruku koju zelite da bude izgovorena, navedete ime promenljive, ili umetnete funkciju.
6. Ako zelite da umetnete drugu funkciju kao parametar funkciji koju dodajete skripti idite tabom do "insert function" i 
pritisnite enter ili razmaknicu, ili pritisnite alt+i. Pojavice se "Insert Function 2" dijalog. Jedina razlika izmedju ove 
liste i glavne liste funkcija je u tome sto se na ovoj nalaze one funkcije za koje skript menadzer smatra da su odgovarajuce 
po tipu za dati parametar.
7. Mozete birati funkciju sa liste, ili kucati ime funkcije u edit polje za parametar kada se prvi put pojavi. Pritisnite 
enter kada ste zavrsili. Nastavite ovaj postupak dok svi zahtevani parametri ne budu upisani. Ponekad ce
biti potrebno da idete na treci ili visi nivo; na primer "Insert Function 3", "Insert Function 4", i tako dalje pritiskajuci
Alt+I ponovo.
Napomena: Ovaj proces kada se jedna funkcija koristi kao parametar za drugu , naziva se "nesting".
8. Kada su svi parametri ispunjeni, Skript menadzer ce vas vratiti na glavni prozor za upis, i vasa funkcija sa svim svojim 
parametrima ce biti dodata vasoj skripti.
Napomena: Treba reci da lista u ovom dijalogu sadrzi kako funkcije cvrsto kodirane u Jaws-u, tako i funkcije
definisane u tom skript fajlu od strane bilo kog korisnika . To znaci, ako smo definisali nasu funkciju "OdaberiPoruku" u datom skript fajlu, ona ce se posle kompiliranja pojaviti u listi funkcija.

Na proslom casu smo u primeru upotrebili poziv druge skripte pomocu "PerformScript ". Script Manager nam i za ovo daje pomocni alat. 
Da biste u nekoj skripti upisali poziv neke druge skripte koristite sledece korake: 
Postavite kursor na mesto gde zelite upisati poziv skripte i izaberite " Insert PerformsScript " iz "Script" menija ili pritisnite control+ shift+I. Otvorice se "Insert PerformScript" sa kursorom postavljenim na listu koja sadrzi sve raspolozive skripte koje mozete pozvati iz skripte koju pisete.
2. Mozete selektovati neku od tih skripti na jedan od dva nacina:
A. Koristite strelicne tastere dok ne dodjete na skriptu koju zelite da koristite.
B. Pocnite da kucate ime skripte dok je Jaws ne pronadje.
Pritisnite enter na imenu koje zelite. Na primer ako selektujete skriptu pod imenom 
"PozdravnaPoruka",
u vasoj skripti ce se pojaviti sledeca linija:
PerformScript PozdravnaPoruka ()
Naravno, nasu dobro poznatu skriptu cete pozvati iz neke nove skripte koju cete kreirati.
Gornja linija ce prouzrokovati da skripta "PozdravnaPoruka" bude izvrsena kada vasa nova skripta naidje na nju upravo kao da ste vi sami Pritisnuli njenu tastaturnu komandu. To je nacin da skripte budu ponovo upotrebljene od strane neke druge skripte  bez ponovnog upisivanja njihovog koda u samu skriptu.

Pokusajte da neke od ranijih primera uradite tako sto cete umesto rucnog upisivanja poziva funkcije ili skripte, to uciniti na gore opisane nacine. Kod funkcije SysGetTime, moze vas zbuniti to sto ce se pojaviti veci broj parametara od jednog koga smo koristili. Mozda je pravi momenat da se objasne opcionalni parametri. Funkcije mogu imati jedan ili vise opcionalnih parametara. To znaci da ce ovi parametri, ukoliko ih navedemo, biti upotrebljeni, a ukoliko ih ne navedemo, funkcija ima za taj slucaj vec unapred odredjeno resenje. Parametri su uvek navedeni tako da prvo idu obavezni parametri, a iza njih opcionalni ili neobavezni. U dokumentaciji za funkcije, uvek stoji za svaki parametar da li je obavezan ili opcionalan.
Funkcija SysGetTyme ima cetiri parametra, i svi su opcionalni. Necemo ovde dalje ulaziti u objasnjavanje ove funkcije. Ona nam je samo posluzila u konstruisanju jednostavnih prakticnih primera. Postoje mnoge znacajnije i cesce upotrebljavane Jaws funkcije kojima cemo se baviti na sledecim casovima.
Dokumentacija za Jaws-ove funkcije i skripte je najpreglednije data u
	FSDN helpu cija instalacija se moze skinuti sa:
ftp://ftp.freedomscientific.com/users/hj/private/WebFiles/training/ScriptFunction/FSDN.exe

Do podataka o raspolozivim funkcijama dolazimo i u toku same upotrebe "Insert Function" dijaloga, ali je jedan od najprakticnijih Jaws alata koji nam stoji na raspolaganju:
Key Word Help,
pomoc koja je osetljiva na kljucne reci za koje postoji dokumentacija.
Upotrebljava se tako sto se kursor postavi na kljucnu rec, u nasem slucaju ime neke funkcije i pritisne se "shift+F1". U prozoru koji se tada otvori, mozemo procitati Kljucne podatke oko namene funkcije, kao i o njenom tipu povratne vrednosti, i broju parametara i njihovom tipu.
Prosetajte po nekom od postojecih skript fajlova i pokusajte da dobijete ove podatke za funkcije koje vam se ucine zanimljivim.
Ako su do sada nasi primeri delovali monotono i dosadno zbog ogranicenog broja funkcija koje smo koristili, sada vam se moze uciniti da je nemoguce snaci se u pregledu citavog ovog mora funkcija. Ne plasite se. Ono sto cemo pokusati na sledecim casovima je da se upoznamo sa grupama funkcija koje su namenjene za slicne ili srodne zadatke. Tako necemo pamtiti napamet imena funkcija vec cemo nauciti gde ih mozemo naci u skladu sa trenutnim potrebama naseg programskog koda.
 "Lekcija 16."

 "Skok na sadrzaj "