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ť.
 
  | 
 
  |  
 
 
 
  
   
 
 
 |