JavaScript- функције

Поставите коментар

 

Функција у JavaScriptu представља скуп наредби које обављају одређен посао и која може да враћа неку вредност. Функције могу да имају параметре који се преносе по вредности.

Функција се може сместити било где у оквиру HTML документа, али најбоље написати све функције у оквиру заглавља HTML документа, између елемента <HEAD> i </HEAD>.

Тако ће, када корисник учита HTML документ, функције бити учитане прве. Унутар функције је могуће позвати друге функције дефинисане унутар истог HTML документа.

Функција се састоји од резервисане речи function, праћене са именом фунције, затим листом параметара функције, одвојених зарезима и затворених у малу заграду и скупом JavaScript наредби које чине тело функције затворених у велике заграде.

Тако можемо дефинисати функцију која неће вратити никакаву вредност, већ ће извршити одређени задатак, у доњем случају одштампаће у HTML документ неки текст:

<script language="javascript" >

function stampaj(tekst)

{

document.writeln(tekst);

}

</script>

Ова функција има аргумент, променљиву текст. Функцију можемо позвати на следеће начине:

прослеђивањем променљиве

прослеђивањем константе

<script language="javascript" >

<script language="javascript" >

var ime="milan";

st("janko");

st(ime);

</script>

</script>

 
   

У овом примеру функција је позвана JavaScript-ом. Функцију можемо позвати и као реакцију на неки догађај, нпр. клик на неку контролу, на догађај мишем, на учитавање стране итд.

Детаљније о догађајима мало касније.

На крају функције (пре затварања десне витичасте заграде) умеће се кључна реч return – враћа управљање читача Weba исказу који је позвао функцију.

На пример:

function Pozdrav()

{

alert(“Добродошли!!!”);

return;

}

Пример функције која враћа неку вредност:

Следећа функција рачуна куб неког броја

function Kub(broj)

{

var kub=broj*broj*broj;

return kub;

}

Наредба RETURN враћа вредност променљиве куб.

JavaScript – почетак рада

Поставите коментар

JavaScript искази постављају се између ознака <script> и </script>, које ће указати Web читачу да изврши JavaScript исказе уместо да прикаже текст на екрану.

clip_image002

Радни прозор DreamWeaver-a

clip_image004

Овако изгледа страна у WEB Browser-u

JavaScript “види” Web страницу као скуп својстава и објеката смештених у објекат под називом document

Својства која читач Weba смешта у објекат document укључују предњи план (текст), позадину, боје хипертекста Web странице, елементе обрасца, слике, итд.

Мењајући вредности својстава тог објекта може се променити и изглед Web странице и објекти на страници

На пример, могу се поставити својства:

document.bgColor – промена боје позадине

document.fgColor – промена боје слова

document.linkColor – промена боје хипервезе непосећених страница

document.vlinkColor – промена боје хипервезе посећених страница, итд

У горњем примеру је коришћена метода Write() којом се исписује текст. Може се користити и метода Writeln(), разлика је што ова друга помера курсор у ред испод.

Alert()

JavaScript има могућност да креира мале дијалоге за испис или унос текста који су садржајем потпуно независтан од садржаја HTML документа.

Најједноставнији начин да се проследи кратка порука кориснику је коришћење алерт метода.

alert("KliknitenaOKzanastavak.");

Метод alert() нема име објекта испред себе. Разлог за то је што припада објекту windows, и зато се увек подразумева када се негде испред метода назив објекта не наведе.

Значи, ”пуно” име за alert() метод би било:

windows.alert("KliknitenaOKzanastavak.");

alert() метод се користи тачно за то – да упозори корисника на нешто. На пример, на нетачно унет податак у форму, погрешан резултат калкулације…


Alert() метода нам омогућава да пошаљемо поруку кориснику, али не и да преузмемо одговор од њега.

Да би смо омогућили једноставну интеракцију са корисником, користимо метод prompt().

Prompt() креира дијалог прозор у коме се може проследити порука кориснику, али се формира и поље у које корисник може унети произвољан текст. Могуће је такође да се предложи вредност у том пољу, коју корисник може прихватити или игнорисати.

prompt("UnesiteVašeime:","anonymous");

Информација у пољу коју је унео корисник се враћа као резултат метода prompt().

Да би смо искористили ту информацију морамо да доделимо метод prompt() другом методу или променљивој. На пример, извршавањем следећег скрипта

<script language="javascript" >

ime=prompt("Unesite Vaše ime","anonymus");

alert("Dobar dan, "+ime);

</script>

добијамо прозор (prompt) у којег уносимо своје име,

clip_image006

а притиском на ОК добијамо следећи прозор (alert)

clip_image008

JavaScript – увод

Поставите коментар

JavaScript – увод

 

JavaScript  је скрипт језик који се интерпретира u web browseru,  укључен је у неку HTML страну. Користи се за додавање интерактивности web страницама.

 

 

МОГУЋНОСТИ JAVASCRIPTA

 

Помоћу JavaScript-a се може направити активни кориснички интерфејс, корисници могу добити повратне информације док се крећу кроз странице. JavaScript се може користити за проверу уноса информација у обрасце,  за разна израчунавања.

 

ОГРАНИЧЕЊА JAVASCRIPTA

 

JavaScript не допушта читање и писање датотека на машини клијента. JavaScript не допушта читање или писање датотека на машинама сервера. Постоји ве­лики број случајева у којим би ово било зго­дно (као што је чување броја остварених посета те стране или података за попуну обрасца), али  JavaScript-у није допуштено да то ради. Уместо тога, потребно је да на серверу имате програм који ће руковати овим подацима и чувати их.

JavaScript не може да затвори прозор који није сам отворио. Тако се избегава ситу­ација у којој нека локација преузима ваш претраживач, затварајући прозоре свих дру­гих локација.

 

АЛАТИ JAVASCRIPTA

Да би у wеб претраживачу видели ефекте JavaScript, browser мора бити JavaScript компатибилан. За писање или модификовање скриптова се може користити било који једноставни текст едитор као што је на пример Notepad. Пре постављања скрипта у код, потребно га је тестирати у што већем броју претраживача.

 

ОБЈЕКТИ, ОСОБИНЕ И МЕТОДЕ

 

JavaScript је заснован на објектно орјентисаним концептима и зато користи објекте. Једна од главних особина JavaScript је манипулација објектима коришћењем уграђених функција и предефинисаних објеката. Сваки објекат има атрибуте (променљиве). Ове промељиве су познате као особине објеката (Object properties). Измена атрибута неког објекта може да мо­дификује тај објекат, а иста особина може да се примени на потпуно различите објекте.

 

Објекат може да изврши и неке функције. Оно што објекти могу да раде назива се мето­дама објеката (Object Methods). Заграде означавају да је у питању метода, а не особина.

(Преузето са http://www.link-elearning.com, бесплатне лекције)

 

 

CANVAS–својства и методе

Поставите коментар

Када желимо да у Delphi-ју да нацртамо нешто ми у ствари цртамо преко одређеног платна (Canvas) које се простире преко наше апликације или објекта на коме цртамо. Ово платно, или мрежа се састоји из низа пиксела, односно мрежа је подељена хоризонталним и вертикалним линијама.

Тако сваки пиксел има своје X и Y координате.

Координатни почетак овог платна је у горњем левом углу. Тачка у горњем левом углу има координате X=0 и Y=0, док тачка у доњем десном углу прозора има координате X=ClientWidth-1 и Y=ClientHeight-1, где ClientWidth и ClиentHeиght представљају ширину и висину клијентске области.

Canvas поседују компоненте : Форм, Image, Printer, StringGrid, PaintBox.


 

Својства класе Canvas (нека важнија)

Својство Pen – перо за бојење, одређује начин цртања линија око затворених површина. Pen има своја својства : Color – боја, Style – стил (psSolid (пуна), psDot (тачкаста), psClear (невидљива)…), Mode – режим рада и Width – ширина

Својство Brush – четка за бојење, одређује начин попуњавања унутрашњости затворених површина. Brush има своја својства : Color – боја и Style – стил (bsSolid (попуњено), bsDiagonal (косе црте), bsHorizontal (водоравне линије)…)

Својство Font – фонт, одређује врсту и величину слова која се исцртавају. Фонт има своја својства : Color – боја, Style – стил, Size – величина и Name – име

Својство Pixels – Пиксели који чине мрежу, сваки пиксел је дефинисан индексима [x,y], где први индекс представља водоравну координату, а други индекс усправну координату


 

Методе класе Canvas (нека важнија)

LineTo (X, Y: integer); – линија до

(црта праву линију од тренутног положаја пера до тачке са координатама X,Y)

MoveTo (X, Y: integer); – помери се до

(помера се перо до тачке са координатама X,Y, на екрану се не оставља траг)

Polyline (Тачке : array of Tpoint) – отворена изломљена линија

Polyline([Point(x1,y1), Point(x2,y2), … Point(xn,yn)]), где се наводе координате свих тачака

Polygon (Тачке : array of Tpoint) – затворена изломљена линија

Пример: canvas.polygon([Point(10,10), Point(30,30), Point(10,50), Point(60,80)]);

Rectangle(x1,y1, x2,y2 : integer) – правоугаоник

Црта правоугаоник којем је горњи леви угао у тачки (x1,y1), а доњи десни угао у тачки (x2,y2), ако су вредности координата (x1,y1) мања од (x2,y2). Ако су вредности првог пара координата веће од вредности другог пара координата, онда се обрћу и темена правоугаоника. Исти правоугаоник, на истом месту на форми биће исцртан са обе наредбе: canvas.Rectangle(200,300,50,50); canvas.Rectangle(50,50,200,300);

RoundRect(x1,y1, x2,y2,x3,y3 : integer) – заобљени правоугаоник

Ellipse(x1,y1,x2,y2: integer) – елипса

Црта и попуњава елипсу коју ограђује правоугаоник са датим координатама (елипса уцртана у правоугаоник)

Arc(x1,y1,x2,y2,x3,y3,x4,y4:integer) – лук

Црта лук као део елипсе коју ограђује правоугаоник са координатама (x1,y1,x2,y2). Почетна тачка лука је у пресеку елипсе и праве која пролази кроз центар елипсе и кроз тачку (x3,y3). Крајња тачка лука је у пресеку елипсе и праве која пролази кроз центар елипсе и кроз тачку (x4,y4).

Chord(x1,y1,x2,y2,x3,y3,x4,y4:integer) – одсечак

Црта одсечак елипсе (затворена површина) која се добија спајањем крајњих тачака лука, који би цртала прва метода, правом линијом

Pie(x1,y1,x2,y2,x3,y3,x4,y4:integer) – исечак

Црта исечак елипсе (затворена површина) која се добија спајањем крајњих тачака лука, који би цртала прва метода, са центром елипсе


 

ИСПИСИВАЊЕ ТЕКСТА

Такође, у Delphi-ју можемо да испишемо одређени текст на неким координатама а то се постиже методом TextOut која је у облику : TextOut(x,y,Текст) где су x и y координате текста а аргумент Текст је текст који се исписује. Тако би наредба TextOut (50,100,’Текст који се исписује’) исписала на позицији 50,100 одговарајући текст.

Још неке Методе (процедуре без аргумената)

Invalidate; (учини неважећим) означава да компонента за коју је позвана треба поново да се ицрта чим то буде могуће

Update; (ажурирај) налаже да се захтев за поновним исцртавањем компоненте задовољи одмах. Нема ефекта ако се прво не позове метода Invalidate;

Refresh; (обнови) прво учини неважећом слику која је у компоненти и онда је поново исртава

компоненте Image и Shape – delphi

1 коментар

Компоненте Image и Shape

 

Компонента Image (additional toolos) – за приказ слике на форми

Својство AutoSize – ако је True, компонента Image се прилагођава величини слике.

Својство Strech – ако је True, величина слике се прилагођава величини компоненте Image

Својство Picture – избор слике која ће се приказати у компоненти Image (обратити пажњу на подржане формате). Избором својства Picture отвара се прозор Picture Editor у којем на дугме Load отварамо прозор Open и бирамо слику коју желимо.

Компонента Shape (additional tools) – за додавање једноставних облика на форму.

Својство Brush – четка, попуна унутрашњости нацртане фигуре

Подсвојства: color (боја), style (дезен)

Својство Pen – оловка, одређује линију нацртане фигуре

Подсвојства: color (боја), style (врста линије, тачкаста, испрекидана, пуна…), width (дебљина, већа од један само ако је пуна линија).

Својство Shape – облик

Облици: stCircle (круг), stEllipse (елипса), stSquare (квадрат), stRectangle (правоугаоник), stRoundRect (заобљени правоугаоник), stRoundSquare (заобљени квадрат)

Пример:

избором опције из менија фигура треба да се прикаже изабрани облик.

Пример за избор подменија круг:

procedure TForm1.krug1Click(Sender: TObject);

begin

shape1.Shape:=stcircle;

end;

За сваку опцију иде исти код, само се мења облик

 

 

 

 

Избором ставке из комбобокса у Image компоненти треба приказати тражену слику.

Слике треба прекопирати у фолдер у којем је снимљен пројекат, могу се ставити у засебан фолдер

Procedure TForm1.ComboBox1Change(Sender: TObject);

begin

case combobox1.ItemIndex of

0:image2.Picture.LoadFromFile(‘slike\gitare.jpg’);

1:image2.Picture.LoadFromFile(‘slike\bubnjevi.jpg’);

2:image2.Picture.LoadFromFile(‘slike\note.jpg’);

end; end;

У овом примеру су слике снимљене у фолдеру Слике, па је путања слике која се учитава слике\имеслике.наставак. Ако се слике налазе у истом фолдеру где И пројекат, онда се наводи само име слике.наставак, по апострофима обавезно.

Метода LoadFromFile учитава наведену слику у компоненту.

Избором опције из менија боје треба да на приказаној фигури променимо боју попуне или боју линије. То се ради помоћу компоненте ColorDialog (објашњена у ранијим лекцијама)

Код:

procedure TForm1.popune1Click(Sender: TObject);

begin

if colordialog1.Execute then

shape1.Brush.Color:=colordialog1.Color;

end;

Исто и за боју линије, само се уместо својства brush пише Pen: shape1.Brush.Color:=colordialog1.Color;

 

 

 

припрема за контролни- IV4-stringgrid, дијалошки прозори

Поставите коментар


Креирати апликацију у којој се учитава списак ученика (тxт) у листбокс (мени ученици), а затим се у прву колоне табеле исписују имена учитаних ученика. Из менија предмети се учитава списак предмета (мени предмети), и затим се приказују у првом реду табеле. Преко инпутбокса организовати унос оцена (мени оцене->унос оцена) у табелу и затим приказ унетих оцена у мемо пољу испод у табеларном облику и омогућити снимање фајла преко savedialog-а. Омогућити додавање новог ученика у листу (у новом прозору), као и брисање изабраног ученика (мени ученик). Такође у новом прозору приказати просечну оцену свих ученика (мени оцене), укупан број петица и јединица.

код:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, Grids;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

ucenici1: TMenuItem;

spisak1: TMenuItem;

dodajnovog1: TMenuItem;

ocene1: TMenuItem;

unosocena1: TMenuItem;

ListBox1: TListBox;

Label1: TLabel;

sg: TStringGrid;

Button1: TButton;

predmeti1: TMenuItem;

Igod1: TMenuItem;

IIgod1: TMenuItem;

IIIgod1: TMenuItem;

IVgod1: TMenuItem;

Button3: TButton;

Button4: TButton;

SaveDialog1: TSaveDialog;

Memo1: TMemo;

obrisi1: TMenuItem;

prosecnaocena1: TMenuItem;

Label2: TLabel;

procedure spisak1Click(Sender: TObject);

procedure dodajnovog1Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Igod1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure unosocena1Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure obrisi1Click(Sender: TObject);

procedure prosecnaocena1Click(Sender: TObject);

private

{ Private declarations }

public

pr:real;

end;

var

Form1: TForm1;

implementation

{$R *.dfm}   uses unit2,unit3;

procedure TForm1.Button1Click(Sender: TObject);

var i,l:integer;

begin

{tabeli se zadaje broj redova onoliko koliko stavki ima u listboksu (plus jedna

za fiksni red) i popunjava se prva (fiksna) kolona stavkama iz listboksa.

Nije uradjena provera da li je lista uopšte učitana. }

l:=  listbox1.Items.Count;

sg.RowCount:=l+1;

for I := 1 to l  do

sg.Cells[0,i]:=listbox1.Items[i-1];

end;

procedure TForm1.Button3Click(Sender: TObject);

var bb,i:integer;

begin

{Isto kao i u prethodnoj proceduri, samo za kolone,  predmet iz liste se

upisuju u prvi (fiksni) red }

bb:=listbox1.Count;

sg.ColCount:=bb+1;

for i:=1 to bb do

sg.Cells[i,0]:=listbox1.Items[i-1];

end;

procedure TForm1.Button4Click(Sender: TObject);

var i,j:integer; s: string;

begin

{Ocene upisane u tabeli se prebacuju u memo, takođe u tabelarnom prikazu, prikazuju

se samo imena učenika i njihove ocene.

Prva petlja broji redove, a druga kolone, i sadržaj ćelije tabele se dodaje stringu s.

Kada se stigne do kraja jednog reda, string s će da sadrži sve vrednosti j-tog

reda tabele (ime učenika i sve ocene) razdvojene blankom. Tada se string dodaje u memo,

pa se ponovo postavlja na prazan string da bi se dodali podaci iz sledećeg reda.

Na kraju se ocene iz memo polja snimaju kao tekstualni fajl, koristeći savedialog.)

}

s:=“;

for j := 1 to sg.rowCount – 1 do

begin

for i := 0 to sg.colCount – 1 do

s:=s+’  ‘+sg.Cells[i,j];

memo1.Lines.Add(s);

// memo1.Lines.Add(#13);

s:=“;

end;

if savedialog1.Execute then

begin

memo1.Lines.SaveToFile(savedialog1.FileName);

end;

end;

 

procedure TForm1.dodajnovog1Click(Sender: TObject);

var s:string; ind:integer;

begin

// s:=inputbox(‘unos ucenika’,’unesite ime i prezime ucenika’,’ime’);

//listbox1.Items.Add(s);

frmUnosOcena.ShowModal;

end;

procedure TForm1.Igod1Click(Sender: TObject);

begin

{učitavanje predmeta I godine (tekstualni fajl koji je prethodno kreiran }

listbox1.Items.Clear;

listbox1.Items.LoadFromFile(‘predI.txt’);

end;

procedure TForm1.obrisi1Click(Sender: TObject);

var i:integer;

begin

{brisanje izabranog ucenika iz liste. Samo učenika!!!  }

listbox1.Items.Delete(listbox1.ItemIndex);

listbox1.Items.SaveToFile(‘spisak.txt’);

label1.Caption:=inttostr( listbox1.Items.Count);

end;

procedure TForm1.prosecnaocena1Click(Sender: TObject);

begin

frmProsek.Show;

end;

procedure TForm1.spisak1Click(Sender: TObject);

begin

listbox1.Items.LoadFromFile(‘spisak.txt’);

label1.Caption:=inttostr( listbox1.Items.Count);

end;

procedure TForm1.unosocena1Click(Sender: TObject);

var i,j,z,b:integer;   s,s1:string;

begin

z:=0; b:=0;

{inputboks za unos će se pojavljivati dok se ne unesu sve ocene za svakog učenika.

inputquery je sličan, ali pritiskom na cancel prekida se unos.

U poruci inputa se prikazuje i ime učenika ( sg.Cells[0,j]) i ime

predmeta sg.Cells[i,0]). Odmah se sabiraju unete ocene, i prebrojavaju, i na kraju unosa se

računa prosek }

for I := 1 to sg.ColCount – 1 do

for j := 1 to sg.RowCount – 1 do

begin

// s:=  inputbox(‘unos’,sg.Cells[0,j]+’, ‘+ sg.Cells[i,0],“);

s1:=’5′;

if  inputquery(‘unos’,sg.Cells[0,j]+’, ‘+sg.Cells[i,0],s1) then

 

// if s<>’k’ then

begin

sg.Cells[i,j]:= s1;

z:=z+strtoint(s1);

b:=b+1; end

else exit;

pr:=z/b;

end;

end;

end.


unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls;

type

TfrmUnosOcena = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmUnosOcena: TfrmUnosOcena;

implementation

{$R *.dfm}  uses Unit1;

procedure TfrmUnosOcena.Button1Click(Sender: TObject);

begin

{Dodavanje novog učenika u listboks, i zatim snimanje u spisak učenika i

prikazivanje broja učenika u labeli na form1  }

form1.ListBox1.Items.Add(edit1.Text) ;

edit1.Text:=“;

edit1.SetFocus;

form1.ListBox1.Items.SaveToFile(‘spisak.txt’);

form1.label1.Caption:=inttostr( form1.listbox1.Items.Count);

end;

procedure TfrmUnosOcena.Button2Click(Sender: TObject);

begin

close;

end;

procedure TfrmUnosOcena.Button3Click(Sender: TObject);

begin

{predomislio se pa neće da unese ono što je upisao u edit }

edit1.Text:=“;

edit1.SetFocus;

end;

end.


unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TfrmProsek = class(TForm)

GroupBox1: TGroupBox;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

procedure CheckBox1Click(Sender: TObject);

procedure CheckBox2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmProsek: TfrmProsek;

implementation

{$R *.dfm}      uses unit1;

procedure TfrmProsek.CheckBox1Click(Sender: TObject);

begin

{prikaz proseka koji je izračunat na form1  }

if checkbox1.Checked then   edit1.Text:=floattostr(form1.pr)

else edit1.text:=“;

end;

procedure TfrmProsek.CheckBox2Click(Sender: TObject);

var i,j,b5:integer;

begin

b5:=0;

{prebrojavanje petica, sa frmProsek pretražujemo tabelu koja je na form1 }

if checkbox2.Checked then

begin

for i := 1 to form1.sg.ColCount – 1 do

for j:=1  to form1.sg.RowCount- 1 do

if strtoint(form1.sg.Cells[i,j])=5 then   b5:=b5+1;

edit2.Text:=inttostr(b5);

end

else

edit2.Text:=“;

end;

end.

 

 

дијалошки прозори-задатак1

Поставите коментар

Креирати апликацију где се преко менија врши избор задатка, па ако је изабран задатак1 урадити следеће: у лабел1 приказати текст задатка „Задатак1: унети н бројева преко инпут бокса и сабрати их“. Затим преко инпутбокса унети н, и ако је н веће од нула организовати унос н бројева преко инпутбокса и сабрати их. Добијени резултат приказати преко messagedlg.

 

Код:

implementation

{$R *.dfm}

procedure TForm1.izlaz1Click(Sender: TObject);

begin

close;

end;

procedure TForm1.zadatak11Click(Sender: TObject);

var n,s,i:integer;

begin

s:=0;

label1.Caption:=’Zadatak1: uneti n brojeva preko inut boksa i sabrati ih’;

try

n:=strtoint(inputbox(‘koliko brojeva’,’unesi koliko brojeva sabiras’,“));

except

begin

showmessage(‘niste uneli ceo broj’);  exit; end;

end;

if n<=0 then begin showmessage(‘broj mora biti pozitivan’);exit; end

else

begin

for I := 1 to n do

begin

s:=s+strtoint(inputbox(‘unos brojeva’,’unesi’+inttostr(i)+’. broj’,“));

end;

messagedlg(‘rezultat je’+inttostr(s),mtInformation,[mbok],0);

end;

end;

end.

 

Older Entries