1. SHKRIMI I MESAZHEVE (KORNIZA PËR DIALOG)
Në këtë kapitull do të përpunohen këto mundësi:
-përshkrimi i sistemit për mesazhe;
-zbatimi i komandës showmessage;
-zbatimi i komandës messagedlg;
-zbatimi i komandës messagedlgpos.
Format si objekte themelore në Delphi mund të trajtohen si një dritare-dialogu. Por, kur
themi dritare-dialogu, nënkuptojmë lloj special të dritares që ka vetitë e mëposhtme:
1. Madhësia e kornizës nuk mund të ndryshohen,
2. Kjo dritare më shpesh përdor butonin OK, por disa dritare kanë edhe butona Close,
Cancel, Help.
3. Në shiritin e titullit (emrit) nuk ka butona për minimizim dhe zmadhim.
Në kuadër të Delphi ekzistojnë korniza që vetë mund ti definojmë dhe dritare të cilat veçse janë
të definuara.
2. 4.1. ShowMessage
Ajo përdoret për të shfaqur mesazhe të caktuara gjatë ekzekutimit të aplikacionit.
Paraqitja e dritares-dialog e ndalon ekzekutimin e aplikacionit, deri në mbylljen e tij, me klikim
në butonin OK. Ky dialog përdoret kur aplikacioni duhet ti tregojë përdoruesit ndonjë mesazh.
Detyra 1: Të krijohet aplikacion i cili shfrytëzuesit i tregon a i lejohet puna me
aplikacionin apo jo. Puna lejohet vetëm në ditë pune. Ditë jo pune janë e shtuna dhe e diela.
Figura 4.1.
procedure TForm1.Button1Click(Sender: TObject);
var
data:TdateTime;
i:integer;
begin
Data:=StrToDate(edit1.text);
i:=DayOfWeek(data);
if (i=1) or (i=7) then
begin
ShowMessage('SOT ËSHTË DITË JO PUNE, NUK MUND TI QASENI APLIKACIONIT
');
Close;
end
else
ShowMessage('MIRËSE ERDHËT');
end;
end.
3. Për realizimin e detyrës së dhënë, është përdorur funksioni DayOfWeek(data) e cila në
bazë të datës jep numrin rendor të ditës së javës. Sipas saj ditë e parë është dita e diel: 1, kurse e
fundit e shtunë: 7,
Kodi i programit lejon futjen e datës së gabuar, shembull, për ditë jo pune të futet datë e
ditës së punës.
Të bëhet korrigjim i kodit programor, në atë mënyrë që të bëjë të pamundur futjen në
aplikacion nëse data e sistemit nuk përputhet me datën e futur. Në këtë rast, të shkruhet mesazhi:
DATA E FUTUR NUK E SOTSHME.
procedure TForm1.Button1Click(Sender: TObject);
var
data:TdateTime;
i:integer;
begin
Data:=StrToDate(edit1.text);
i:=DayOfWeek(data);
Label2.Caption := 'Today is ' + DateToStr(Date);
if data<>date then
BEGIN
ShowMessage('NUK KE FUTUR DATË TË SAKTË');
CLOSE;
END
ELSE
if (i=1) or (i=7) then
begin
ShowMessage('SOT ËSHTË DITË JO PUNE, NUK MUND TI QASENI
APLIKACIONIT');
Close;
end
else
ShowMessage('MIRËSE ERDHËT');
end; end.
4. 4.2. MessageDlg
Kjo dritare-dialog i ngjan të mëparshmes, me atë që përshkrimi i titullit bie në grup të veçantë të
përshkrimeve të Windows-it.
Figura 4.2
Në rreshtin për titull paraqitet fjala Information. Përveç saj, në rreshtin për përshkrim mund të
paraqiten fjalët e mëposhtme: Warning (shenjë paralajmëruese e verdhë), Error (ikonë e kuqe me
shenjë ndal), Confirmation (pyetësor), Custom (nuk përmban ikonë).
Figura 4.3.
Numri i butonave për të lëshuar dritaren-dialog mund të jenë të ndryshëm.
Figura 4.4.
5. Detyra 2: Të bëhet aplikacion i cili gjatë ekzekutimit do të japë vlerat e disa funksioneve
elementare, të tilla si katrori i numrit 5, rrënja katrore e 2 dhe pjesa e plotë e numrit -3,8.
Në formë vendosim butonin për të cilin do të shkruajmë kodin e mëposhtëm të programit:
Procedure TForm1.Button1Click(Sender: TObject);
var
s,t:string;
begin
str(sqr(5.0):3:1,t);
s:='5 në katror është ' + t + #13;
str(sqrt(2.0):5:4,t);
s:=s+'Rrënja katrore e 2 është' + t + #13;
str(trunc(-3.8),t);
s:=s+'Pjesa e plotë e numri -3.8 është'+t;
MessageDlg(s,mtInformation,[mbOk],0);
end;
Figura 4.5.
Argumentet e funksionit MessageDlg kanë këto kuptime: s - paraqet tekstin që do të shfaqet në
dritaren-dialogun, mtInformation paraqet tekstin në shiritin e titullit dhe shenja- ikonën në
dritare, [mbOk] është emri i butonit do të shfaqet në dritaren-dialog dhe zero (0) Delphit i
shërben si një indikator.
Me urdhrin vijues në Delphi fitohet dritarja-dialog nga figura 4.3:
MessageDlg('Edhëna e futur nuk mund të konvertohet në numër. '+#13+
'Futni të dhënë valide', mtError,[mbOk],0);
Me procedurën e ardhshme në Delphi fitohet dritarja-dialog si në figurën 4.4:
procedure TForm1.Button2Click(Sender: TObject);
begin
if MessageDlg('Welcome to my Object Pascal application. Exit now?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
MessageDlg('Exiting the Object Pascal application.', mtInformation,
[mbOk], 0);
Close;
end;
end;
6. Detyra 3: Të bëhet aplikacion me të cilën për N numra të çfarëdoshëm të numrave të futur do të
llogaritet shuma.
Udhëzime: Futet N - numri i numrave që do ti mbledhim, dhe pastaj numrat futen në
dritaren-dialog në kuadër të një cikli.
Figura 4.6.
Procedure TForm1.Button1Click(Sender: TObject);
var
s,x:real;
t,p:string;
n,i,j:integer;
begin
val(edit1.text,n,j);
if(j<>0)or(n<=0)then
begin
messageDlg('Edhëna nuk është e sakte',mtError,[mbOk],0);
close;
end;
s:=0;
i:=1;
while i<=n do
begin
str(i,p);
t:=inputBox('Numra','Futet'+p+'-numri',' ');
val(t,x,j);
if j/<>0then
begin
messageDlg('Edhëna nuk është e sakte',mtError,[mbOk],0);
7. close;
end;
s:=s+x;inc(i);
end;
str(s:8:3,p);
showmessage('Mbledhja është s='+p);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
application.terminate;
end;
Urdhëri t:=inputBox('numra','futet'+p+'-numër',' ');
Përdor funksionin InputBox, që përmban tre parametra. Parametër i parë "numra" përcakton se
çfarë paraqitet në shiritin e titullit, parametri i dytë 'futet`+p+'numër', jep mesazhin që do të
shfaqet në dritaren-dialog, kurse parametri i tretë përfaqëson vlerën e të dhënave që do të
importohen. Në rastin tonë kjo është e dhënë boshe-nuk ka vlerë fillestare.
Detyrë: Të bëhet aplikacion që përcakton mesin gjeometrik të dy gjatësive të dhëna. Numrat
matës të gjatësive të dhëna duhet të jenë numra pozitiv.
Figura 4.7.
9. 4.3. Messagedlgpos
Shfaq dritaren-dialog me mesazh në koordinata të caktuara në ekran.
Ky shembull përdor buton në formë. Kur përdoruesi klikon butonin, shfaqet dritare me mesazh
me tre butona: Yes, No, dhe butonin Cancel në të:
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageDlgPos('Are you there?',mtConfirmation, mbYesNoCancel, 0, 200, 200);
end;
Figura 4.8.
4.4 Komponentet DIALOGS
Në kartelën Dialog ndodhen komponente të ndryshme për dialog si OpenDialog, SaveDialog,
ColorDialog dhe të tjera. Ata përdoren për qasje të unifikuar në operacionet më të zakonshme që
ekzekutohen në aplikacione. Në programe, dialogu aktivizohet me metodën Execute. Asnjë
dialog nuk kryen veprime konkrete, por vetëm e lejon përdoruesin të bëjnë zgjedhje, kurse
veprimet e veçanta realizohen në kodin e programit.
10. 4.4.1. OpenDialog i lejon përdoruesit të zgjedh datotekën nga disku që dëshironi ta lexojë.
Detyra 1: Të krijohet formë me dy butona dhe OpenDialog.
Figura 4.9.
Figura 4.10.
11. Kodi i programor që mundëson shfaqjen e OpenDialog është si më poshtë:
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
end;
4.4.2. SaveDialog paraqet një dritare-dialogu standarde të Windows-it. Komanda që aktivizon
këtë dritare-dialog është si më poshtë:
SaveDialog1.Execute;
Figura 4.11.
4.4.3. ColorDialog ofron në mënyrë standarde të zgjidhet ngjyra. Komanda që aktivizon këtë
dritare-dialogu është si më poshtë:
ColorDialog1.Execute;
Figura 4.12.