You are on page 1of 9

KAPITULLI 5

5. KRIJIMI I MENYVE PËR FORMË

Në këtë kapitull do të bëhet fjalë për:


- përshkrimin e sistemit të menyve;
- përdorimi i komponentës MAIN MENU;
- përdorimi i komponentës POPUP MENU, SPEED MENU;
- lidhshmëria e opsioneve nga menyja me forma të tjera dhe futja në projektin momental.

5.1. MainMenu
Menyja është një pjesë e rëndësishme e aplikacioneve të Windows-it. Ndodhet në rreshtin
e dytë pas shiritit të titullit. Përbëhet nga disa fjalë të quajtura opsione dhe ka nënmeny.
Në komponentën Standard është komponenta MainMenu dhe të e vendosim në formë.
Duke klikuar dy herë në MainMenu, hapet dizajnuesi i menyve. Ai duket si një formë boshe.
Për opsionin nga menyja duhet të ndryshohen vetitë:
Name - FileMenu
Caption - & File (Alt +F)
Paraqitet hapësirë boshe nën File dhe në të djathtë të sajë.

File Name - FileNew


Caption - &New
New
Hapat paraprak përsëriten që të krijohen pjesë të menysë: Open, Save,
Open SaveAs.
Save
SaveAs             
            Rekomandohet standardizimi i menyve, gjegjësisht ata të duken si në aplikacionet tjera të
Windows-it.
Separator është një linjë horizontale për ndarjen e opsioneve të menyve. Krijohet si më
poshtë:
Në fushën poshtë Save As të vetisë Caption vendoset (-)
             Shtimi i nënmenyve bëhet sipas mënyrës vijuese:
    Insert - Sub menu
                                    Create - Sub menu
Me klik të djathtë Insert- Sub menu
Zgjedhjen e cilitdo opsion e aktivizon OnClick dhe ekzekutohen urdhërat në at
procedurë.
Detyra 1: Të krijohet aplikacioni ora me ngjyra. Në formë vendosim komponentet në
vijim: MainMenu, Timer dhe Label.
Kodi i programit është si vijon:
Procedure TForm1.MenuKohaClick(Sender:Tobject);
Begin
Label1.caption:=TimeToStr(time);
End;
Procedure TForm1.MenuDataClick(Sender:Tobject);
Begin
Label1.caption:=DateToStr(Date);
End;
Procedure TForm1.E kuqe1Click();
Begin
Label1.color:=clred;
E kuqe1.enabled:=False;
E gjelbërt1.enabled:=True;
E kaltërt1.enabled:=True;
End;
Procedure TForm1.E gjelbërt1Click();
Begin
Label1.color:=clgreen;
E kuqe1.enabled:=True;
E gjelbërt1.enabled:=False;
E kaltërt1.enabled:=True;
End;
Procedure TForm1.E kaltërt11Click();
Begin
Label1.color:=clblue;
E kuqe1.enabled:=True;
E gjelbërt1.enabled:=True;
E kaltërt1.enabled:=False;
End;

Figura 5.1.
Komponenta Timer mund të përdoret për të shfaqur kohën momentale.

Detyra 2: Të bëhet një aplikacion i cili do të punojë si program i thjeshtë për përpunimin e
tekstit. Me programin do të përpunohen datoteka dhe tekst. Tek datotekat aktivitete janë: krijimi i
datotekës, leximi i ekzistueses, rruajtja, shtypja. Përpunimi i tekstit është: zgjedhja, prerja,
kopjimi i tekstit, ngjitja e pjesës së tekstit etj.
 Hapet aplikacion i ri.
 Shtohet komponenta Memo në të.
Fshihet teksti Memo përmes editorit për tekst (vetia Lines)
             Vetia ScrollBars -> ssVertical
              Vendosim fontin e sistemi Fixedsys
              Align-> alClient me çka komponenta Memo zen gjithë formën.
 Në formë shtohet komponenta MainMenu.
 Krijimi i një menyje.

Figura 5.1.

 Shtimi i shkurtesave të opsioneve në meny:


- të shënohet E re në opsionin Datoteka;
- në vetinë ShortCut të zgjidhet Ctrl+N.
 Djathtas nga datoteka duhet të krijohet opsioni Editim nga menyja.

Figura 5.2.

 Shtimi i opsioneve në nënmeny bëhet duke klikuar mbi butonin Insert, kurse
fshirja me Delete.
 Qasja e opsioneve bëhet me vetinë Enabled - False.
 Në meny shtojmë komponenta nga kartela edhe atë OpenDialog, SaveDialog.

Figura 5.3.
procedure TForm1.Dalje1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.ERe1Click(Sender: TObject);
Var res:integer;
begin
if memo1.modified then
begin
Res:=Application.MessageBox('Datoteka aktuale është ndryshuar. Rruani
ndryshimet?',
'Tekst1Message',MB_YESNOCANCEL);
If res=IDYES then Rruaj1Click(Sender);
If res=IDCANCEL then exit;
end;
if memo1.Lines.count>0 then memo1.clear;
savedialog1.filename:=' ';
end;
procedure TForm1.Rruaj1Click(Sender: TObject);
begin
if savedialog1.filename<>' ' then
begin
memo1.lines.savetofile(savedialog1.filename);
memo1.modified:=false;
end
else
Rruaj si1click(sender);
end;
procedure TForm1.Hap1Click(Sender: TObject);
var res:Integer;
begin
if memo1.modified then
begin
Res:=Application.MessageBox('Datoteka aktuale është ndryshuar. Rruani
ndryshimet?',
'Tekst1Message',MB_YESNOCANCEL);
If res=IDYES then Rruaj1Click(Sender);
If res=IDCANCEL then exit;
end;
opendialog1.filename:='FileName ';
if opendialog1.execute then
begin
if memo1.lines.count>0 then memo1.clear;
memo1.lines.loadfromfile(opendialog1.filename); {hapje}
savedialog1.filename:=opendialog1.filename;
end;
end;
procedure TForm1.Rruaj si1Click(Sender: TObject);
begin
savedialog1.title:='Rruaj si';
if savedialog1.execute then
begin
memo1.lines.savetofile(savedialog1.filename); {rruajtja}
memo1.modified:=false;
end;
end;
procedure TForm1.Anulo1Click(Sender: TObject);
begin
SendMessage(memo1.handle,WM_UNDO,0,0);
end;

procedure TForm1.Preje1Click(Sender: TObject);


begin
memo1.CutToClipboard;
end;
procedure TForm1.Kopjo1Click(Sender: TObject);
begin
memo1.CopyToClipboard;
end;
procedure TForm1.Ngjit1Click(Sender: TObject);
begin
memo1.PasteFromClipboard;
end;
procedure TForm1.Më tepër rreshta1Click(Sender: TObject);
begin
memo1.wordwrap:=not memo1.WordWrap;
Më tepër rreshta1.checked:=memo1.WordWrap;
if memo1.WordWrap then memo1.scrollbars:=ssVertical
else
memo1.scrollbars:=ssboth;
end;
procedure TForm1.ZgjidhKrejt1Click(Sender: TObject);
begin
memo1.selectAll;
end;
end.

Teksti i shkruajtur me këtë aplikacion është paraqitur në figurën 5.4.

Figura 5.4.
Procedura për dalje mundëson përfundimi e punës dhe të daljes nga aplikacioni, por i
mundëson përdoruesit që gjatë daljes nga aplikacioni të paralajmërohet se në datotekë janë bërë
disa ndryshime pas rruajtjes së fundit.
Procedura E re hap një datotekë të re, por paraprakisht kontrollohet që datoteka
momentale a ka pësuar ndryshime pas rruajtjes së fundit dhe përdoruesit i ofrohet mundësia e
rruajtjes së ndryshimeve.
Procedura Hap, hap datotekën e zgjedhur nga folderi i zgjedhur. Paraprakisht
verifikohet në datotekën momentale a janë ruajtur ndryshimet e fundit. Kodi programor përmban
OpenDialog dhe LoadFromFile.
Procedura Save kryen regjistrimin-rruajtjen e datotekës. Ky opsion duhet të përdoret
nëse datotekës tashmë i është dhënë emër. Përndryshe zgjedhim opsionin Save As.
Redaktimi i tekstit bëhet duke ndjekur procedurat e mëposhtme;
Procedura Anulo anulon aktivitetet e mëparshme me të cilat është bërë ndonjë
ndryshim në datotekë. Pasi që Delphi nuk ka një mundësi të tillë, përdoret komanda e Windows-
it WM_UNDO,0,0.
Procedura Përzgjedh mundëson selektimin e gjithçka që është futur deri tani në
datotekë.
Procedura Preje e bart pjesën e përzgjedhur të tekstit në memorien e përkohshme
Clipboard dhe njëkohësisht e largon nga datoteka.
Procedura Kopjo punon njëlloj si Preje, vetëm se pjesën e përzgjedhur nuk e largon nga
datoteka.
Procedura Ngjit e kthen përmbajtjen nga temorja e përkohshme në datotekë në
vendndodhjen e kursorit (treguesit).
Procedura Më tepër rreshta lejon shkrimin e tekstit në datotekë në më tepër rreshta. Ky
opsion duhet vetëm të përzgjidhet, dhe pastaj duhet vetëm ashensor vertikal, përndryshe, duhen
të dy ashensorët.

5.2.PopupMenu

Në Delphi mund të përdoret meny ndihmëse (PopupMenu). Krijimi i kësaj meny është
e ngjashme me mënyrën e krijimit të menysë kryesore. Efekti i dhënies së kësaj menyje është ajo
e opsioneve të shumta që shfaqen kur klikojmë butonin e djathtë të miut në ndonjë komponentë
ose tekst. Shkrimi i kodit për këtë meny është i ngjashëm me shkrimin e kodit për menynë
kryesore.
Do të përdorim aplikacionin paraprak për të shtuar mundësinë e përdorimit të menysë
ndihmëse. Në programet për përpunim të tekstit, zakonisht kur një pjesë e tekstit do të shënohet
dhe në të do të klikohet me klik-të djathtë, menyja ndihmëse mundëson prerjen, kopjimin dhe
ngjitjen e tekstit.
Që të mund në menynë kryesore të përfshijmë edhe meny ndihmëse, e cila do të
veprojë në opsionin Editim, shkohet sipas procedurës së mëposhtme:
1. Thirrim aplikacioni që ka të bëjë me menynë kryesore, sepse në të bëhet
ndërhyrja.
2. Komponentën PopupMenu e vendosim në formë.
3. Ja ndërrojmë Emrin në MeniNdihmëse.
Forma ka pamjen si në figurën 5.5.

Figura 5.5.

4. Klikojmë dy herë në këtë komponentë që të startojmë dizajnuesin e menyve. Pastaj


paraqitet një dritare me një drejtkëndësh blu, në këndin e sajë të majë lartë. Kjo meny mund të
krijohen në të njëjtën mënyrë si menyja kryesore, por mundet edhe në një mënyrë tjetër, gjatë së
cilës do të përdoren opsionet që janë krijuar në menynë kryesore.
5. Me klik të djathte në katrorin blu thirrim dizajnuesin e menyve ndihmëse. Nga
nënmenyja zgjedhim Select Meny (figura 5.6.), me çka paraqitet një dritare që i tregon menytë, e
disponueshme në aplikacion figura 5.6.

Figura 5.6.
6. Zgjedhim MainMenu1 dhe butonin OK.
7. Në dritaren e fituar zgjedhim opsionin Editim, në të cilën do të zgjedhim në opsionet
Preje, Kopjo dhe Ngjite.
8. I bartim opsionet e zgjedhura në memorien ndihmëse me metodën e kopjimit nga
programi Delphi. (Ctrl+C).

Figura 5.7.
9. Pastaj zgjedhim SelectMenu, kurse në dritaren e fituar zgjedhim MenyNdihmëse dhe
butonin OK. Shfaqet meny ndihmëse boshe.
10. E bartim përmbajtjen e memories së përkohshme, me çka i kemi kopjuar opsionet e
menysë ndihmëse.
11. Ndryshojmë emrat e opsioneve të vendosura në menynë ndihmëse PjejeNdihmëse,
KopjoNdihmëse, dhe NgjitNdihmëse.
Duhet të shkruhet kodi i programit për komanduesit me ngjarje për opsionet e menysë
ndihmëse. Puna mund të na lehtësohet, sepse tashmë kemi kode programore të shkruara për të
njëjtat ngjarje në menynë kryesore. Kemi mundësi që për të njëjtat ngjarje të përdorin
kontrolluesit e përbashkët të ngjarjeve. Procedura për lidhjen e opsioneve të menysë ndihmëse
me kontrolluesit ekzistues të ngjarjeve e kryejmë në këtë mënyrë:
12. Në dizajnuesin e menyve zgjedhim opsionin Preje.
13. Në kartelën ObjectInspector zgjedhim Events.
14. Klikojmë në butonin me shigjetë poshtë, që ndodhet në të djathtë të ngjarjes
OnClick. Shfaqet lista e procedurave që janë krijuar deri tani në aplikacion.
15. Nga lista e ofruar duhet të zgjedhim EditoPreje. Në këtë mënyrë kemi lidhur
ngjarjen me kodin programor tashmë ekzistues.
16. Hapat 12-15 duhet të përsëritet për dy opsionet e mbetura të menysë ndihmëse.
17. Që të përfundoj krijimi i menysë ndihmëse, në formë selektojmë komponentën
Memo dhe vetinë PopupMenu e ndryshojmë MenynëNihmëse.
Me këtë mbaron procedura e krijimit të menysë ndihmëse. Nëse e startojmë
aplikacionin dhe në dritaren për tekst klikojmë me buton të djathtë të miut, do të fitohet dritarja e
Figurës 5.8.

Figura 5.8. Pamja e aplikacionit me meny ndihmëse.

You might also like