Anda di halaman 1dari 21

Zadaci za vebe

Delphi
Zadatak 1.
Kreirati aplikaciju u kojoj e se menjati boja obrasca kao odgovor na tri dogaaja:
-

pokretanje aplikacije (FormCreate)


klik na obrazac (OnClick)
dvoklik na obrazac (OnDblClick)

Svaki dogaaj kreira razliitu boju obrasca.


U metodi FormCreate dodati jo jedan red kojim se natpis forme (Caption) menja u Ovo je moj prvi Delhi
program.
Zadatak 2.
Na obrazac dodati Labelu i podesiti veliinu slova na 26, Bold. Kreirati aplikaciju kojom se klikom na labelu
njen Caption menja u IV5 (ili IV6).
Na isti obrazac dodati jo 2 labele, dva edit polja i jedno dugme. Natpisi u labelama su:
Label1: Unesi ime i prezime
Label2: Uneto ime i prezime
Edit polja su na poetku prazna.
Natpis dugmeta treba da bude Ispii.
Kada se pokrene aplikacija i kada se u prvo edit polje unese ime i prezime, i kada se klikne na dugme Ispii , u
drugom edit polju treba da se pojavi isti tekst kao u prvom.
Programski kod: Edit2.text := Edit1.text;
Zadatak 3.
Podesiti svojstva forme na sledee vrednosti:
Name: obrazac1
Caption: zadatak 3
Color: clred
Top: 200
Left: 300
Width: 300
Height: 400
Na obrazac dodati labelu koja e u poetku biti prazna, a klikom na nju e se ispisati ime i prezime uenika koji
kreira zadatak, fontom veliine 30, bold, plavom (ili nekom drugom) bojom.
Programski kod:
label1.caption := Pera Peri; (na primer)
label1.font.size := 30;
label1.font.style := [fsbold];
1

label1.font.color := clblue;
Dodati dugme za zatvaranje aplikacije (Close).
Zadatak 4.
Kreirati aplikaciju koja klikom na dugme ispisuje neku informaciju u dijalog prozoru. Takoe dodati dugme za
zatvaranje aplikacije.
Natpisi dugmia:
Button1: Hello
Button2: Close
Programski kod (pritiskom na dugme Hello):
MessageDlg(Zdravo svima!,mtInformation,[mbOk],0)
Zadatak 5.
Kreirati aplikaciju u kojoj se tekst u labeli proizvoljno poravnava.
Na obrazac postaviti jednu labelu i 4 dugmeta. Labelu ostaviti praznu, a natpise dugmia postaviti redom:
Levo, Centrirano, Desno, Kraj.
Dugmie programirati na sledei nain:
Label1.Alignment := taLeftJustify;
Label1.Alignment := taRightJustify;
Label1.Alignment := taCenter;
Kada se pokrene aplikacija, u labelu uneti proizvoljan tekst i primeniti opcije dugmia.
Zadatak 6. Kalkulator
Kreirati aplikaciju koja obavlja funkcije kalkulatora.

Programirati svako dugme ponaosob.


Programski kod za sabiranje:
procedure TForm1.Button1Click(Sender: TObject);
var
pBr, dBr, rez : integer;
begin
2

pBr := StrToInt(Edit1.text);
dBr := StrToInt(Edit2.text);
rez := pBr + dBr;
Edit3.Text:=IntToStr(rez)
end;
Ostali dugmii se programiraju analogno, s tim da se za deljenje moe koristiti operacija DIV ili, ukoliko se
koristi operacija /, potrebno je koristiti funkcije StrToFloat i FloatToStr.
Dugmiima osobinu ShowHint postaviti na TRUE i u osobine Hint napisati odgovarajui tekst: sabiranje,
oduzimanje, mnoenje, deljenje.
Zadatak 7.
Napisati aplikaciju koja uitava katete pravouglog trougla a i b i izraunava i prikazuje hipotenuzu c, oba otra
ugla i njegovu povrinu.

Edit polja nazvati redom: katetaA, katetaB, hipotenuzaC, povrsinaP, ugaoAlfa, ugaoBeta.
Programski kod za dugme Izraunaj:
procedure TForm1.Button1Click(Sender: TObject);
const
Pi = 3.141592;
var
a,b,c,P,alfa,beta : real;
begin
a := StrToFloat(katetaA.Text);
b := StrToFloat(katetaB.Text);
c := sqrt(sqr(a) + sqr(b));
P := a*b/2;
alfa := arctan(a/b)*180/Pi;
beta := arctan(b/a)*180/Pi;
hipotenuzaC.text := FloatTostr(c);
povrsinaP.text := FloatTostr(P);
ugaoAlfa.text := FloatTostr(alfa);
ugaoBeta.text := FloatTostr(beta);
end;
Zadatak 8.
Napisati aplikaciju koja rauna povrinu i zapreminu pravilne etvorostrane piramide, ako su joj poznate
osnovna ivica a i bona ivica s.

Edit polja nazvati redom: osnovna, bocna, povrsina, zapremina.


Programski kod za dugme Pokreni:
procedure TForm1.Button1Click(Sender: TObject);
var
a,s,d,h,ha,baza,v,m,p: real;
begin
a := StrToFloat(osnovna.text);
s := StrToFloat(bocna.text);
d := a*sqrt(2);
h := sqrt(sqr(s)-sqr(d/2));
ha := sqrt(sqr(s)-sqr(a/2));
baza := sqr(a);
v := baza*h/3;
m := 2*a*ha;
p := baza + m;
povrsina.text := FloatToStr(p); zapremina.text := FloatToStr(v);
end;
ili
procedure TForm1.Button1Click(Sender: TObject);
var
a,s,p,v:real;
begin
a:=StrToFloat(osnovna.text);
s:=StrToFloat(bocna.text);
p:=sqr(a) + 2*a*sqrt(sqr(s)-sqr(a/2));
v:=sqr(a)*sqrt(sqr(s)-sqr(a)/2)/3;
povrsina.text:=FloatToStr(p);
zapremina.Text:=FloatToStr(v);
end;
Zadatak 9.
Ispisati najmanji od 3 uneta cela broja.

Ubaciti jo jednu labelu (Label4) i izbrisati joj Caption. U njoj e biti ispisan najmanji uneti broj.
Programski kod za dugme Izracunaj:
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,min: integer;
begin
a:=StrToInt(edit1.text);
b:=StrToInt(edit2.text);
c:=StrToInt(edit3.text);
min:=a;
if b<min then min:=b;
if c<min then min:=c;
Label4.Caption:='Najmanji broj je '+IntToStr(min);
end;
Primer izvrenog programa:

Zadatak 10.
Reiti kvadratnu jednainu ax2 + bx +c =0 na sledei nain:
D<0 -> Nema realnih reenja;
D=0 -> Ima dva jednaka realna reenja x=-b/(2*a);
D>0 -> Ima dva razliita realna reenja x1=(-b+sqrt(D)/(2*a)) i x2=(-b-sqrt(D)/(2*a)).
Programski kod za dugme Izracunaj:
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,D,x,x1,x2:real;
begin
a:= StrToFloat(Edit1.text);
b:= StrToFloat(Edit2.text);
c:= StrToFloat(Edit3.text);
D:=b*b-4*a*c;
if D<0 then
ShowMessage('Nema realnih resenja')
else
if D=0 then
begin
x:=-b/(2*a);
ShowMessage('Ima dva jednaka resenja koja iznose ' + FloatToStr(x))
end
else
begin
5

x1:=(-b+sqrt(D))/(2*a);
x2:=(-b-sqrt(D))/(2*a);
ShowMessage('x1=' + FloatToStr(x1) + #13+
'x2=' + FloatToStr(x2));
end;
end;
Zadatak 11. CheckBox
Na obrazac postaviti 7 CheckBox-ova, za svaki dan u sedmici po jedan, pod nazivima: Prvi dan, Drugi dan,...
Sedmi dan. Postaviti i labele kao sto je prikazano na donjoj slici. Kada se klikne na CheckBox iji je naziv Prvi
dan, u istom redu treba da se pojavi naziv prvog dana u sedmici (Ponedeljak) i tip dana: radni ili neradni.
Kada se CheckBox iskljui, naziv i tip dana treba da nestanu.
Analogno programirati i za ostale dane u sedmici.
Na poetku, aplikacija moe ovako izgledati:
procedure TForm1.CheckBox1Click(Sender:
TObject);
begin
if CheckBox1. checked then
begin
Label3.caption:='Ponedeljak';
Label10.caption:='radni';
end
else
begin
Label3.caption:='';
Label10.caption:='';
end
end;

Programski kod za Prvi dan:


Programirati svaki CheckBox ponaosob.

Da biste znali koja je koja labela, dok ne dovrite pogramiranje ostavite nazive (Caption) labela nepromenjene.
Kada aplikacija bude kreirana, izbriite sve nazive labelama od 3 do 16.
Primer izvrenog programa:

Zadatak 12. RadioButton


Kreirati aplikaciju koja e na formi imati 5 radio dugmia i ostale komponente kao na slici:
6

Programski kod za RadioButton trougao:


procedure TForm1.trougaoClick(Sender:
TObject);
begin
if trougao.Checked then
begin
obim.Text:='a+b+c';
povrsina.text:='a*h/2'
end;
end;
RadioButton komponente nazvati redom: trougao, kvadrat, pravougaonik, romb, trapez (osobina Name).
Edit1 polje nazvati obim, a Edit2 povrsina (osobina Name).
Primer izvrenog programa:
Ostale formule:
Kvadrat: O = 4*a, P= a*a
Pravougaonik: O = 2*a+2*b, P= a*b
Romb: O = 4*a, P= d1*d2/2
Trapez: O = a+b+c+d, P= (a+b)/2*h.
Zadatak 13.
Napisati aplikaciju koja rauna ukupni otpor na osnovu zadatih vrednosti u Edit komponentama.
Naini vezivanja mogu biti:
Redni: R1 + R2
Paralelni: 1 / (1/R1 + 1/R2)
Programski kod za dugme Racunaj:
procedure TForm1.RacunajClick(Sender:
TObject);
var
R1, R2, R: real;
begin
R1 := StrToFloat(otporR1.text);
R2 := StrToFloat(otporR2.text);
if redno.checked then
R:= R1 + R2;
if paralelno.checked then
R:= 1/(1/R1 + 1/R2);
otporR.text := FloatToStr(R);
end;
Edit polja nazvati redom: otporR1, otporR2, otporR.
Radio dugmie nazvati: Redno i Paralelno. Dugme nazvati Racunaj.
Zadatak 14. RadioGroup
7

Zadatak uraen na asu teorije uraditi na raunaru:


Postaviti na obrazac jedan RadioGroup i popuniti mu sadraj raznim muzikim pravcima: Rock, Pop, Jazz...
Kada se odabere odreena stavka u RadioGroup, u labeli ispisati odabrani pravac, a u edit polju neto to
korisnika na to asocira (recimo, kod rok muzike napisati Billy Idol).
Programirati pomou naredbe CASE:
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: begin
label1.Caption:='Rock';
edit1.Text:='Billy Idol'
end;
1: begin
label1.Caption:='Pop';
edit1.Text:='Madonna'
end;
end;
end;
Analogno dovriti programiranje i za ostale muzike pravce.
Program bi mogao da izgleda ovako:

Zadatak 15. ListBox


Poto se ListBox programira gotovo identino kao RadioGroup, smatram da nije potrebno da se radi zadatak
vezan za ovu komponentu, ali vam ostavljam mogunost da uradite jedan primer ako imate neki interesantan .
Zadatak 16. ComboBox
U ComboBox napisati sledei sadraj: Muzika, Film, Knjievnost, Sport, Destinacija, Dokolica.
Odabirom neke od oblasti, u labeli ispisati svoju omiljenu muziku, film itd. Primer izgleda aplikacije:

Programirati na sledei nain:


procedure TForm1.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0: label1.caption:= 'Rock' + #13 + 'Billy Idol';
1: label1.caption:= 'Venders' + #13 + 'Lisabonska prica';
2: label1.caption:= 'Markes' + #13 + 'Ljubav u doba kolere';
end;
end;
Ostale stavke se programiraju analogno.
Znak #13 govori o tome da e tekst koji sledi biti prebaen u novi red.
Zadatak 17. GroupBox
Kreirati aplikaciju:

First object je GroupBox i u njemu se nalaze RadioButtons. Position i Second object su RadioGroup.
Odabirom po jedne stavke iz svakog odeljka, ispisuje se reenica u labeli ispod.
Programski kod za dugme ChangeText:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
phrase:string;
begin
for i:=0 to GroupBox1.ControlCount-1 do
9

if (GroupBox1.Controls[i] as TRadioButton).Checked then


phrase:=(GroupBox1.Controls[i] as TRadioButton).Caption;
phrase:= phrase + ' ' + RadioGroup1.Items[RadioGroup1.ItemIndex]
+ ' ' + RadioGroup2.Items[RadioGroup2.ItemIndex];
label1.Caption:=phrase;
end;
Zadatak 18.
Kreirati aplikaciju:

Na obrascu sa desne strane postavljen je Panel, na kom je stavljen RadioGroup1 (iji je Caption Boja panela),
zatim jedan ScrollBar i RadioGroup2 (iji je Caption Poravnavanje panela). Osobina panela Align je na
poetku postavljena na alRight, a osobina Visible na False, to panel ini nevidljivim u momentu kada se
pokrene aplikacija.
CheckBox Podeavanja omoguava prikazivanje i sakrivanje panela.
Kada se unese visina u centimetrima u prvo edit polje, korisnik iz ComboBox-a bira pol (ena/mukarac) i
potom se idealna teina upisuje u drugo edit polje. Visina se izrauvana po obrascu:
Za ene: visina 110;
Za mukarce: visina 100.
Ostale funkcije u zadatku su oigledne i ne zahtevaju dodatno objanjenje.
Ceo programski kod zadatka:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
panel1.visible:=CheckBox1.Checked;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:form1.Color:=clbtnface;
1:form1.Color:=clblue;
2:form1.Color:=clyellow;
end;
10

end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
case RadioGroup2.ItemIndex of
0:panel1.Align:=alleft;
1:panel1.Align:=alright;
end;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if edit1.Text<>'0' then
if ComboBox1.ItemIndex=0 then
Edit2.Text:= inttostr(strtoint(edit1.text) - 100)
else Edit2.Text:= inttostr(strtoint(edit1.text) - 110) ;
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
Edit1.Font.Size:=ScrollBar1.Position;
ComboBox1.Font.Size:=ScrollBar1.Position;
Edit2.Font.Size:=ScrollBar1.Position;
label4.Caption:= 'Velicina slova: '+ inttostr(ScrollBar1.Position);
end;

Zadatak 19. GroupBox (zadatak iz knjige)


Kreirati aplikaciju koja, na osnovu podataka o ueniku i o njegovim ocenama, izraunava njegov prosek,
ukoliko su podaci tano uneti. U suprotnom ispisuje poruku o greci.
Postavljena su 2 GroupBox-a: Podaci o ueniku i Ocene u koja su postavljene labele, jedan CheckBox i edit
polja kao na slici:

11

Edit polja za Ime, Prezime i Grad nazvana su redom (osobina Name): ime, prezime, grad. CheckBox je nazvan
Uspeh. Edit polja u koja se unose ocene nazvana su rednim brojevima od prvi do cetrnaesti.
Postavljena je jo jedna labela (label18) iji je caption u poetku prazan, a u koju se kasnije ispisuje prosek
uenika.
Programski kod dugmeta Izraunaj:
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,i,j: integer;
c:real;
s:string;
begin
i:=0; b:=0;
if length(ime.text)>1 then inc(i);
if length(prezime.text)>1 then inc(i);
if length(grad.text)>1 then inc(i);
val(prvi.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(drugi.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(treci.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(cetvrti.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(peti.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(sesti.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(sedmi.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
12

val(osmi.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(deveti.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(deseti.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(jedanaesti.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(dvanaesti.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(trinaesti.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
val(cetrnaesti.Text,a,j);
if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;
c:=b/(i-3);
Str(c:5:2,s);
if (i=17) and (uspeh.checked) then
label18.Caption:='Srednja ocena ucenika je ' + s
else
label18.Caption:='Pogresno uneti podaci!'
end;
Primer izgleda aplikacije nakon izvravanja:

Zadatak 20. Memo


Kreirati aplikaciju koja omoguava odreivanje stila (bold i/ili italic) i fonta (Times New Roman, Arial ili
Courier) teksta u komponenti Memo.

13

Na obrazac postaviti Memo komponentu i otkucati sadraj u osobini Lines. Takoe postaviti 2 labele, 2
CheckBox-a i 3 radio dugmia. Imena (Name) CheckBox-ova i radio dugmia su identina kao njihovi nazivi
(Caption).
Izgled aplikacije:

Programski kod za CheckBox bold:


procedure TForm1.boldClick(Sender: TObject);
begin
if bold.Checked then
memo1.Font.style:=memo1.Font.style + [fsbold]
else
memo1.Font.style:=memo1.Font.style - [fsbold]
end;
Analogno programirati i CheckBox italic.

Programski kod za RadioButton Arial:


procedure TForm1.ArialClick(Sender: TObject);
begin
if Arial.checked then
memo1.Font.name:='Arial'
end;
Analogno programirati i RadioButton
TimesNewRoman i Courier.

Na obrazac dodati jo jedno dugme Pronai i edit polje u koje e se upisati tekst koji elimo da obeleimo.
Klikom na dugme Pronai u tekstu e se obeleiti prvo pojavljivanje stringa koji je zadat u edit polju.
Svojstvo Memo komponente Hide Selection postaviti na false.
Kod dugmeta Pronai:
procedure TForm1.pronadjiClick(Sender: TObject);
var
k:integer;
begin
k:=Pos(edit1.Text,memo1.text);
if k>0 then
begin
memo1.SelStart:=k-1;
memo1.SelLength:=Length(edit1.text);
end
else
ShowMessage('Takav tekst ne postoji!')
end;
Dodati na obrazac i dugme Zameni i edit polje u kom e se uneti tekst kojim elimo da zamenimo tekst iz
prvog edit polja. Dakle, sada aplikacija izgleda ovako:
14

Dugme Zameni isprogramirati tako da kada kliknemo na njega izvri se prepravka Memo teksta na taj nain da
se string iz prve edit komponente zameni stringom navedenim u drugoj edit komponenti.
Programski kod dugmeta Zameni:
procedure TForm1.zameniClick(Sender: TObject);
var
k:integer;
s:string;
begin
s:=memo1.Text;
k:=Pos(edit1.Text,s);
while k>0 do
begin
Delete(s,k,Length(edit1.text));
Insert(edit2.Text,s,k);
k:=Pos(edit1.Text,s);
end;
memo1.Text:=s;
end;
Proiriti obrazac sa jo 3 dugmeta, za levo, desno i centrirano poravnanje.
Kod dugmeta Levo:
procedure TForm1.levoClick(Sender: TObject);
begin
memo1.Alignment:=taLeftJustify;
end;
Desno i Sredina programirati analogno (Desno: taRightJustify, Sredina: taCenter).
Dodati jo 2 dugmeta za odabir boje fonta i pozadine. Da bi to bilo omogueno, na obrazac postaviti
komponentu ColorDialog iz palete Dialogs.
Konani izgled aplikacije:

15

Kod dugmeta Font:


procedure TForm1.fontClick(Sender: TObject);
begin
colorDialog1.Color:=Memo1.Font.color;
if ColorDialog1.Execute then
memo1.Font.Color:=colorDialog1.Color;
end;
Dugme za promenu boje pozadine (Pozadina) se programira na slian nain, samo se svugde izostavlja re
font.
Zadatak 21. StringGrid zvezdice
Kreirati aplikaciju koja ispisuje zvezdice u svim poljima tabele.
Na obrazac postaviti komponentu StringGrid, koja se nalazi na kartici Additional i jedno dugme sa natpisom
Ispisi zvezdice.
Broj kolona i redova proizvoljno odrediti.
Klikom na dugme, tabela dobija sledei izgled:

Programski kod dugmeta Ispisi zvezdice:


procedure TForm1. IspisiZvezdiceClick(Sender: TObject);
var
i,j:integer;
16

begin
for i:=0 to StringGrid1.ColCount-1 do
for j:=0 to StringGrid1.RowCount-1 do
StringGrid1.cells[i,j]:='*'
end;
Zadatak 22. StringGrid ureeni parovi
Kreirati aplikaciju koja ispisuje ureene parove kolone i vrste elije u svim poljima tabele.
Na obrazac postaviti komponentu StringGrid i jedno dugme sa natpisom Ispisi.
Klikom na dugme, tabela dobija sledei izgled:

Programski kod dugmeta Ispisi:


procedure TForm1.IspisiClick(Sender: TObject);
var
i,j,c,r:integer;
begin
c:=StringGrid1.ColCount;
r:=StringGrid1.RowCount;
for i:=0 to c-1 do
for j:=0 to r-1 do
StringGrid1.Cells[i,j]:='(' + IntToStr(i) + ',' + IntToStr(j) + ')';
end;
Zadatak 23. StringGrid tablica mnoenja
Kreirati aplikaciju koja ispisuje tablicu mnoenja 10x10.
Na obrazac postaviti komponentu StringGrid i osobine ColCount i RowCount postaviti na 11. Dodati i jedno
dugme sa natpisom Ispisi.
Klikom na dugme, tabela dobija sledei izgled:

17

Programski kod dugmeta Ispisi:


procedure TForm1.IspisiClick(Sender: TObject);
var
i,j:integer;
begin
StringGrid1.cells[0,0]:='x';
for i:=1 to 10 do
StringGrid1.Cells[i,0]:=IntToStr(i);
for i:=1 to 10 do
StringGrid1.Cells[0,i]:=IntToStr(i);
for i:=1 to 10 do
for j:=1 to 10 do
StringGrid1.Cells[i,j]:=IntToStr(i*j);
end;
Zadatak 24. StringGrid Dijagonala
Kreirati aplikaciju koja na glavnoj dijagonali tabele ispisuje zvezdice, ispod glavne dijagonale ispisuje razliku
vrste i kolone, a iznad ispisuje njihov zbir.
Pored StringGrid komponente, na obrazac dodati jo 2 dugmeta i 2 labele:
Jednu za unoenje broja kolona, a drugu za unoenje broja redova.
Dodati 2 dugmeta: Formatiraj i Ispisi. Klikom na dugme Formatiraj, u fiksiranoj koloni i fiksiranom redu
prikazuju se redni brojevi kolona i redova.
Pre aktiviranja dugmia, neophodno je uneti eljeni broj kolona i redova.
Izgled aplikacije nakon klika na dugme Formatiraj:

18

Programski kod dugmeta Formatiraj:


procedure TForm1.FormatirajClick(Sender: TObject);
var
i,j:integer;
begin
StringGrid1.ColCount:=StrToInt(edit1.text)+1;
StringGrid1.RowCount:=StrToInt(edit2.text)+1;
for i:=0 to StringGrid1.ColCount-1 do
StringGrid1.Cells[i,0]:=IntToStr(i);
for j:=0 to StringGrid1.RowCount-1 do
StringGrid1.Cells[0,j]:=IntToStr(j);
end;
Klikom na dugme Ispisi, tabela dobija sledei izgled:

Programski kod dugmeta Ispisi:


procedure TForm1.IspisiClick(Sender: TObject);
var
i,j:integer;
begin
StringGrid1.ColCount:=StrToInt(edit1.text)+1;
StringGrid1.RowCount:=StrToInt(edit2.text)+1;
for i:=1 to StringGrid1.ColCount-1 do
19

for j:=1 to StringGrid1.RowCount-1 do


if i=j then
StringGrid1.Cells[i,j]:='*'
else
if j>i then
StringGrid1.Cells[i,j]:=IntToStr(j-i)
else
StringGrid1.Cells[i,j]:=IntToStr(j+i)
end;
Zadatak 25. StringGrid Top u ahu
Kreirati aplikaciju koja e simulira ahovsku tablu, dodue, eljenih dimenzija. Klikom na dugme Napadni,
zvezdicama e se obeleiti ona polja koja bi bila napadnuta ukoliko bi se figura Top nala na zadatim
koordinatama.
Poetni izgled aplikacije:

Pre aktiviranja dugmia, neophodno je uneti eljeni broj kolona i redova, kao i koordinate figure Top.
Dugme Formatiraj ima istu ulogu i isti programski kod kao u prethodnom zadatku.
Edit polja za koordainate Top-a nazvati redom TopKolona i TopVrsta.
Programski kod dugmeta Napadni:
procedure TForm1.NapadniClick(Sender: TObject);
var
i,j,col,row:integer;
begin
col:=StrToInt(TopKolona.text);
row:=StrToInt(TopVrsta.text);
for i:=1 to StringGrid1.ColCount-1 do
for j:=1 to StringGrid1.RowCount-1 do
if (col=i) or (row=j) then
StringGrid1.Cells[i,j]:='*'
end;
Primer izgleda izvrene aplikacije nakon pravilnog unoenja podataka i klika na oba dugmeta:

20

21

Anda mungkin juga menyukai