Vlastné menu
MainMenu
Aj v tejto lekcii budeme pracovať so súbormi, ale trochu inak. V okne aplikácie si vytvoríme vysúvacie menu - MainManu, akú poznáme z Windows aplikácií. Naše menu bude mať len niekoľko položiek, napríklad takýchto:
- File - Open, Save, Exit
- Edit - Clear
- Statistic - Count Lines, Count spaces, Count words,...
Kedykoľvek môžeme zmeniť názvy položiek, doplniť či zmazať položku.
|
|
|
Ako teda vlastné menu vytvoríme?
Do formulára vložíme komponent MaimMenu z palety Standard. Dvojklikom naň vkladáme názvy jednotlivých položiek menu aj názvy položiek v podmenu.
V strome objektov Object TreeView sa ako podstrom v objekte MainMenu1 zobrazia názvy položiek menu (Caption) a ich mená (Name).
|
|
|
Kliknutím na ľubovoľnú položku v podmenu sa v editovacom okne vloží hlavička procedúry pre ošetrenie položky. Napr. ak klikneme na pložku "Exit", chceme, aby sa aplikácia ukončila. Do tela procedúry vpíšeme príkazy pre ukončenie programu Alication.Terminate;
procedure TForm1.koniecClick(Sender: TObject);
begin
Alication.Terminate;
end;
|
|
|
OpenDialog, SaveDialog
Nato, aby sme mohli realizovať "klasické" otvorenie resp. uloženie súboru pomocou dialógového okna, musíme vložiť neviditeľné komponenty OpenDialog a SaveDialog z palety Dialogs. Pre oba komponenty nastavíme v Properties v položke Options položku ofFileMustExists na True. Ak chceme nastaviť typ súborov, klikneme na [...] pre Filter a do tabuľky zapíšeme, napr. Textový súbor a *.txt. Oba komponenty sa budú aktivizovať len pri volaní dialógového okna.
|
|
|
Nadefinujeme procedúry pre otváranie a ukladanie súboru (napr. textového). Na formulári v komponente MainMenu klikneme na položku Open a do tela procedúry TForm1.otvorClick dopíšeme potrebné riadky:
Otvorenie súboru
procedure TForm1.otvorClick(Sender: TObject);
var s:string;
f:textfile;
begin
GetDir(0,s);
OpenDialog1.InitialDir := s;
if not OpenDialog1.Execute then exit;
AssignFile(f,OpenDialog1.Filename);
reset(f);
...
closefile(f);
end;
|
|
Metóda GetDir vloží do premennej s cestu aktuálneho adresára potrebného pre otvorenie dilógového okna. Ak užívateľ potvrdí v dialógovom okne vybraný súbor, jeho meno sa priadí do premennej f. Obsah súboru múžeme zobraziť napr. v Memo okne, prípadne v súbore vykonáme potrebnú štatistiku... |
|
Rovnako postupujeme pri položke Save v MainMenu ak chceme nejaký (napr. textový) súbor uložiť:
Uloženie súboru
procedure TForm1.ulozClick(Sender: TObject);
var s:string;
f:textfile;
begin
GetDir(0,s);
SaveDialog1.InitialDir:= s;
if not SaveDialog1.Execute then exit;
AssignFile(f,SaveDialog1.Filename);
rewrite(f);
...
closefile(f);
end;
|
|
Príklad
Doplňte procedúry pre ostatné položky menu, pre zmazanie Memo okien, vložte štatistiky textového súboru, aké sú v úlohách v predchádzajúcej lekcie. Do projektu môžeme vložiť aj editovacie okna pre realizovanie vstupov, tlačidlo pre pridávanie údajov z editovacích okien do okna Memo a pod.
Výsledok môže mať napríklad aj takýto formát: |
|
|
Úlohy na riešenie
1. Doplňte do príkladu do položky "Edit" možnosť nahrádzania textu iným textom v súbore.
|
|
2. Vytvorte menu pre farebné efekty s načítanými obrázkami z odpovedajúcej lekcie, pričom do objektu Image sa otvorí ľubovoľný bitmapový obrázok, zmenený obrázok istým ybraným algoritmom z menu budeme môcť uložiť.
|
|
|