Sign in Join
Wiki copytemporary

Lazarus Tutorial/sk: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Úvod
22
33Lazarus je free a open source vývojový nástroj pre prekladač FreePascal (Object Pascal), ktorý je tiež free a open source. [IDE Lazarus](http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg) je stabilné a vzhľadovo bohaté programovacie prostredie pre vytváranie samostatne bežiacich (.exe) grafických a konzolových aplikácií. Aktuálne beží na systémoch Linux, FreeBSD a Win32 a poskytuje prispôsobiteľný editor zdrojového kódu a vizuálnu tvorbu formulárov s manažérom balíčkov, debuggerom a úplnou integráciou prekladača FreePascal do GUI.
44
55## Začnite - Váš prvý program Lazarus!
66
77(Vďaka User:Kirkpatc)
88
99Získajte, [[Installing Lazarus/sk|nainštalujte]] a spusťte Lazarus, ktorý vám sprístupní aj prekladač FreePascal. Na pracovnej ploche sa objavia viaceré okná: hore základné menu, vľavo Object Inspector, Lazarus Source Editor zaberajúci najväčšiu časť plochy, pripravené okno formulára Form1, prekrývajúce Source Editor a vpravo Code Explorer.
1010
1111Na vrchu základného okna Lazarus, pod riadkom základného menu, je riadok záložiek, tzv. **Paleta komponentov**. Ak nie je vybratá záložka 'Standard', vyberte ju kliknutím myšou. Potom nájdite ikonu Button (obdĺžnik s nápisom 'OK') a kliknite na ňu myšou. Potom kliknite na okno Form1, niekde vľavo od stredu. Objaví sa tieňovaný obdĺžnik s návestím 'Button1'. Znova kliknite na ikonu Button na záložke Standard a kliknite na Form1 niekde pravo od stredu: objaví sa obdĺžnik s návestím 'Button2'.
1212
1313Teraz kliknite na Button1, čím ho vyberiete. Object Inspector bude zobrazovať vlastnosti objektu Button1. Niekde hore je vlastnosť nazvaná 'Caption', ktorá zobrazuje hodnotu 'Button1'. Kliknite do políčka a zmeňte 'Button1' na 'Press'. Ak stlačíte ENTER alebo kliknete myšou na iné políčko uvidíte, že sa prvé tlačítko na Form1 zmení na 'Press'. Teraz kliknite na záložku Events v Object Inspectore, čím uvidíte rôzne udalosti, ktoré môžu byť spojené s tlačítkom. Tieto zahŕňajú OnClick, OnEnter, OnExit atď. Vyberte políčko vpravo od OnClick: objaví sa malé tlačítko s tromi bodkami (značka ...). Keď kliknete na neho, automaticky budete prepnutí do Source Editor a kurzor bude umiestnený v časti začiatku kódu, kde dopíšte:
1414
1515``` pascal
1616 procedure TForm1.Button1Click(Sender: TObject);
1717 begin
1818 {now type:} Button1.caption := 'Press again';
1919 {the editor has already completed the procedure with}
2020 end;
2121```
2222
2323Stlačte F12, čím sa prepnete z okna Editora zdrojového kódu do okna Form1. Teraz upravte vlastnosti Button2: kliknite na Button2, aby ste zobrazili jeho vlastnosti v Object Inspectore. Zmeňte jeho vlastnosť Caption na 'Exit' namiesto 'Button2'. Teraz vyberte záložku Events a kliknite na políčko pre OnClick. Kliknite na značku ... a budete prepnutý do Editora zdrojového kódu, uprostred inej procedúry, kde dopíšte:
2424
2525``` pascal
2626 procedure TForm1.Button2Click(Sender: TObject);
2727 begin
2828 {now type:} Close;
2929 {the editor has already completed the procedure with}
3030 end;
3131```
3232
3333Opäť stlačte F12, aby ste znova videli okno Form1. Teraz ste pripravený vyskúšať preklad. Najjednoduchšia cesta ako to urobiť, je vybrať zo základného menu 'Run' a potom voľbu 'Run' v podmenu. Alebo môžete jednoducho stlačiť F9. Týmto najprv preložíte a potom (ak je všetko v poriadku) spojíte a spustíte svoj program.
3434
3535Objavia sa nejaké textové okná a budú vypísané všetky typy správ prekladača, ale nakoniec sa možno (ak preklad prebehne správne) znova objaví vaše okno Form1, ale bez mriežky z bodiek; to je skutočné základné okno vašej aplikácie a čaká na stlačenie tlačítka alebo na inú akciu s ním.
3636
3737Skúste stlačiť tlačítko s návestím 'Press'. Všimnite si, že jeho návestie sa zmení na 'Press again'. Ak ho stlačíte znova, stále bude hovoriť 'Press again'!!
3838
3939Teraz kliknite na tlačítko označené 'Exit'. Okno bude zatvorené a program skončí. Znova sa objaví pôvodné okno Form1 s mriežkou bodiek, pripravené na ďalšiu editáciu.
4040
4141Svoju prácu môžete teraz uložiť (a často!!) zvolením Project \> Save As \> vyše_zvolené_meno_súboru.pas.
4242
4343### Druhá časť
4444
4545Znova otvorte uložený Projekt. V okne Form1 kliknite na tlačítko 'Press' (Button1) aby steho vybrali. V object Inspectore vyberte záložku 'Events', kliknite do políčka vpravo od OnClick, kliknite na značku ..., aby ste sa dostali na príslušné miesto kódu v Editore zdrojového kódu.
4646
4747Upravte svoj kód, aby vyzeral takto:
4848
4949``` pascal
5050 procedure TForm1.Button1Click(Sender: TObject);
5151 {Makes use of the Tag property, setting it to either 0 or 1}
5252 begin
5353 if Button1.tag =0 then
5454 begin
5555 Button1.caption := 'Press again';
5656 Button1.tag := 1
5757 end else
5858 begin
5959 Button1.caption := 'Press';
6060 Button1.tag := 0
6161 end
6262 end;
6363```
6464
6565Uložte svoju prácu, preložte a spusťte. Ľavé tlačítko bude teraz prepínať medzi dvoma alternatívnymi návestiami.
6666
6767Zvyšok je na vás!
6868
6969Ak dávate prednosť písaniu konzolových alebo textových programov v Pascale (napríklad ak skúšate nasledujúci základný kurz Programovania v Pascale alebo potrebujete napísať program pre použitie v dávkovom móde alebo pre systémové programovanie), tiež môžete použiť Lazarus na jeho úpravy, preloženie a spustenie. Tým sa lazarus stáva ideálnym prostredím pre vývoj v Pascale. Viď [[Console Mode Pascal/sk|Programovanie v Pascale pre konzolu]].
7070
7171## Editor
7272
7373Pri prvom spustení IDE Lazarus sa na vašej pracovnej ploche objaví niekoľko samostatných, nespojených alebo plávajúcich okien.
7474
7575Prvé z nich, zobrazené pri hornom okraji pracovnej plochy má titulok Lazarus Editor vXXXXXX - project1. Toto je základné ovládacie okno vášho projektu a obsahuje Základné menu, paletu komponentov a panel nástrojov.
7676
7777![](/wiki-images/4/43/LazMain_GTK2.png)
7878
7979V riadku pod titulkom je *Základné menu* (Main Menu) so zvyčajnými položkami pre funkcie File, Edit, Search, View atď, spolu s niektorými možnosťami, ktoré sú špecifické pre Lazarus. Nižšie je umiestnený *Panel nástrojov* s množinou BitButtonov, ktoré sprístupňujú niektoré voľby základného menu a vpravo od neho je *Paleta komponentov* (Component Palette).
8080
8181Pod základným oknom IDE Lazarus sa ešte vľavo obajví okno **[Object Inspector](http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg)** a vedľa neho okno **[Editora zdrojového kódu](http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg)** (Lazarus Source Editor). Môže sa objaviť ešte jedno menšie okno, nazvané **[Form1](http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg)**, prekrývajúce Editor zdrojového kódu. Ak nie hneď viditeľné, môžete ho zbraziť stlačením klávesy F12, ktorá prepína medzi zobrazením Editora zdrojového kódu a zobrazením formulára. Okno formulára, je tým, na ktorom budete budovať grafické rozhranie svojej aplikácie, kým okno Editora kódu zobrazuje zdrojový kód Pascalu patriaci aplikácii, ktorú navrhujete. Práca s Object Inspectorom je detailnejšie rozobratá ďalej, pri popise Palety komponentov.
8282
8383Keď začnete nový projekt (alebo ak prvý krát spustíte Lazarus) je vytvorený štandartný formulár, ktorý obsahuje bodkovanú mriežku, pomáhajúcu umiestniť rôzne komponenty formulára a titulkový pruh, ktorý obsahuje zvyčajné tlačítka pre minimalizovanie, maximalizovanie a zatvorenie okna. Ak kliknete myšou kdekoľvek do formulára, v Object Inspector, na ľavej strane pracovnej plochy, uvidíte vlastnosti formulára.
8484
8585Počas práce môžu byť zobrazené i ďalšie okná, ako: the **[Project Inspector](http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg)**, ktorý obsahuje detaily o súboroch, ktoré sú súčasťou projektu a umožňuje pridať alebo odstrániť tieto súbory z/do projektu; alebo okno **Messages**, ktoré zobrazuje správy prekladača, chyby alebo hlásenia postupu vášho projektu; ak je Lazarus spustený z okna terminálu, pôvodný terminál necháva viditeľné a detailné správy prekladača sú zobrazované i tam.
8686
8787### Základné menu
8888
8989For a detailed description of every menu item which is accessible from the Lazarus IDE Main Menu, please refer to the [[Main menu/sk]] page.
9090
9191## Paleta komponentov
9292
9393Panel nástrojov so záložkami, ktorý zobrazuje veľa ikôn, reprezentujúcich bežne používané komponenty pre budovanie formulárov. Na každej záložke je zobrazená iná množina ikôn, reprezentujúca funkčnú skupinu komponentov. Ikona celkom vľavo, na každej záložke, je obligátna šikmá šípka vľavo, slúžiaca na výber komponentu na formulári (Selection Tool).
9494
9595Ak presuniete kurzor myši na ktorúkoľvek z ikon Palety komponentov, bez kliknutia na ikonu, objaví sa meno komponentu. Všimnite si, že každé meno začína s ***T*** - to označuje 'Type' alebo výstižnejšie 'triedu' komponentu. Keď vyberiete komponent pre vloženie na fomrulár, je trieda automaticky pridaná do definície **type** časti **interface** príslušnej jednotky (zvyčajne ako časť daného TForm1), a **inštancia** triedy je pridaná do do sekcie **var** (zvyčajne ako premenná Form1). Všetky **metódy**, ktoré navrhnete pre použitie formulárom alebo jeho komponentami (tj procedúry alebo funkcie) budú umiestnené v časti **implementation** jednotky.
9696
9797V nasledujúcom zozname Komponentov, nájdete odkazy na súbory obsahujúce popis jednotiek, v ktorých sú umiestnené. Ak sa chcete dozvedieť niečo o vlastnostiach príslušného komponentu, je často vhodné preskúmať hierarciu dedičnosti komponentu a potom preskúmať i vlastnosti základnej triedy, od ktorej je odvodená. Napríklad, pre pochopenie TMaskEdit býva tiež užitočné vyskúšať TCustomMaskEdit.
9898
9999- **[Standard](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls)**
100100
101101
102102*Najčastejšie používané komponenty*
103103
104104![](/wiki-images/4/4d/Component_Palette_Standart.png)
105105
106106
107107[TMainMenu](http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tmainmenu.html), [TPopupMenu](http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tpopupmenu.html), [TButton](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tbutton.html), [TLabel](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlabel.html), [TEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tedit.html), [TMemo](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tmemo.html), [TToggleBox](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/ttogglebox.html), [TCheckBox](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcheckbox.html), [TRadioButton](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tradiobutton.html), [TListBox](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlistbox.html), [TComboBox](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcombobox.html), [TScrollBar](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tscrollbar.html), [TGroupBox](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tgroupbox.html), [TStaticText](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tstatictext.html), [TRadioGroup](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tradiogroup.html), [TCheckGroup](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tcheckgroup.html), [TPanel](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpanel.html), [TActionList](http://lazarus-ccr.sourceforge.net/docs/lcl/actnlist/tactionlist.html)
108108
109109- **[Additional](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls)**
110110
111111*Ďalšie často používané komponenty:*
112112
113113![](/wiki-images/7/7d/Component_Palette_Additional.png)
114114
115115
116116[TBitBtn](http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tbitbtn.html), [TSpeedButton](http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tspeedbutton.html), [TImage](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/timage.html), [TShape](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tshape.html), [TBevel](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tbevel.html), [TPaintBox](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpaintbox.html), [TNotebook](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tnotebook.html), [TLabeledEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tlabelededit.html), [TSplitter](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tsplitter.html), [TMaskEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/maskedit/tmaskedit.html), [TCheckListBox](http://lazarus-ccr.sourceforge.net/docs/lcl/checklst/tchecklistbox.html), [TScrollBox](http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tscrollbox.html), [TApplicationProperties](http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tapplicationproperties.html), [TStringGrid](http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tstringgrid.html), [TDrawGrid](http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tdrawgrid.html), [TPairSplitter](http://lazarus-ccr.sourceforge.net/docs/lcl/pairsplitter/tpairsplitter.html)
117117
118118- **[Common Controls](http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls)**
119119
120120![](/wiki-images/4/4a/Component_Palette_Common_Controls.png)
121121
122122
123123TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList
124124
125125- **[Dialogs](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt)**
126126
127127![](/wiki-images/7/72/Component_Palette_Dialogs.png)
128128
129129
130130TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog
131131
132132Niektoré užitočné **[dialógové](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples)** procedúry alebo funkcie nenájdete na palete, ale je ľahšie ich volať priamo zo zdrojového kódu.
133133
134134Niekoľko dobrých príkladov použitia komponentov nájdete v adresári \$LazarusPath/lazarus/examples vašej zdrojovej inštalácie. Mnoho týchto programov ukazuje ako použiť dialógy a iné komponenty priamo, bez použitia IDE a palety komponentov alebo majú inú formu definičného súboru: všetky komponenty sú úplne a priamo definované v základnom programe Pascal. Iné príklady robia plne použiteľné IDE.
135135
136136Niektoré príklady nepracujú priamym spôsobom, ale potrebujete sa pohrať s cestami a prístupovými právami súborov alebo adresárov. Ak chcete preložiť akýkoľvek z príkladov, zaistite, že máte nastavené prístupové práva read/write/execute pre súbory a adresáre, alebo prekopírujte súbory do adresára, pre ktorý máte príslušné or oprávnenia.
137137
138138Vyskúšajte spúštenie programu 'testall', aby ste videli ponuku dostupných komponentov spolu s malým príkladom formy, pre väčšinu z nich; potom si pozrite udrojový kód a nájdite ako pracuje!
139139
140140- **Misc**
141141
142142![](/wiki-images/8/8e/Component_Palette_Misc.png)
143143
144144
145145[TColorButton](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt), TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox
146146
147147- **Data Controls**
148148
149149*Komponenty Data-aware, ktoré do zančnej miery replikujú skupiny Standard a Additional, ale sú použiteľné s databázami:*
150150
151151![](/wiki-images/6/62/Component_Palette_DataControls.png)
152152
153153
154154TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid
155155
156156- **Data Access**
157157
158158![](/wiki-images/c/cc/Component_Palette_DataAccess.png)
159159
160160
161161TDatasource
162162
163163- **System**
164164
165165![](/wiki-images/f/fe/Component_Palette_System.png)
166166
167167
168168[TTimer](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TTimer), TIdleTimer, [[doc:fcl/process/tprocess.html|TProcess]]
169169
170170- **SynEdit**
171171
172172
173173*Skupina komponentov pomáhajúca s užívateľským rozhraním pre iné jazyky a programové nástroje. SynEdit je zdokonalený multi-line edit prvok, pre Borland Delphi, Kylix a C++Builder. Podporuje zvýrazňovanie syntaxe a dokončovanie kódu, zahŕňa tiež exportérov do html, tex a rtf. Jedná sa o plne-VCL/CLX prvok, tzn. nie je to obálka pre prvky Microsoft Windows a nevyžaduje behové knižnice; čím je SynEdit cezplatformový komponent. Kompatibilita s FreePascal je plánovaná tiež a SynEdit je editovací prvok IDE Lazarus.* Viz [synedit na sourceforge](http://synedit.sourceforge.net).
174174
175175![](/wiki-images/2/22/Component_Palette_SynEdit.png)
176176
177177
178178TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn
179179
180180Pre použitie Palety komponentov, musíte mať otvorený a zobrazený formulár (ak nemáte zvoľte File -\> New Form). Kliknite na ikonu v príslušnej záložke palety komponentov a vyberte tým komponent, ktorý chcete použiť, potom kliknite na formulár, blízko miesta, na ktorom sa má komponent objaviť. Po objavenís a komponentu ho môžete vybrať kliknutím myšou, potom posunúť na iné miesto formulára a zmeniť jeho veľkosť. Po vybratí komponentu môžete meniť jeho vlastnosti i v Objekt inspectore, či vabrať komponent pomocou Object inspectora.
181181
182182Ak nainštalujete ďalšie komponenty, ktoré si môžete napísať sami alebo získať ako balíček z iného zdroja, objaví sa na palete komponent ďalšia záložka s príslušnou ikonou. Tieto nové komponenty môžete používať rovnakým spôsobom ako tie, ktoré sú poskytnuté štandartne.
183183
184184## Ako používať základné (Standard), spoločné (Common) a rozšírené komponenty
185185
186186Programové jednotky StdCtrls, ComCtrls a ExtCtrls obsahujú definície a popisy mnohých kompoentov používaných pre zostrojovanie Formulárov a iných objektov v Lazarovských aplikáciách
187187
188188Veľké množstvo výsledných komponentov, ktoré obvykle vývojár používa (napr. *TButton*, *TMemo*, *TScrollBar* a pod.) má definovaných predchodcov (triedy ako *TCustomButton*, *TCustomMemo*, *TCustomScrollBar*). Mnoho vlastností a metód výslednej komponenty je definovaných (a vysvetlených) v triedach *TCustomXXX*, a sú **zdedené** výslednou komponentou.
189189
190190Pokiaľ cez editor formulárov pridáte nejakú komponentu, nie je nutné písať žiaden kód na jej explicitné vytvorenie. Komponenta je automaticky vytvorená IDE prostredím zároveň s formulárom, a deštruovaná keď je deštruovaný formulár.
191191
192192Ak však vytvoríte komponentu samy v kóde, je nutné nezabudnúť ju uvoľniť, keď už nie je ďalej potrebná
193193
194194Pokiaľ umiestnite komponentu na Form Designer a pozriete sa na okno Object Inspector, môžete preskúmať a meniť vlastnosti tejto komponenty.
195195
196196Napr. pokiaľ umiestnite na formulár tlačidlo (*TButton*), vyznačíte ho kliknutím a budete ho premiestnovať po formulári, v okne Object Browser uvidíte ako sa menia hodnoty Top a Left, aby zodpovedali novej pozícii. Pokiaľ zmeníte veľkosť objektu, môžete si všimnút zmeny vlastností Width a Height, a pod.
197197
198198Na druhej strane, použitím okna Object Inspector, môžete zmeniť hodnotu prislúchajúcu k nejakej vlastnosti (ako napr. Height), a takáto zmena sa prejaví na komponente.
199199
200200Takisto môžete explicitne nastaviť niektoré vlastnosti objektu v kóde (v príslučnej Implementation časti v okne Source Editor), napr.
201201
202202``` pascal
203203Form1.Button1.Height := 48;
204204```
205205
206206Pokiaľ nastavíte hodnotu vlastnosti v Source Editore a pozriete sa späť na Form Editor, uvidíte, že tlačidlo zmenilo veľkosť. Táto nová veľkosť sa objaví tiež v Object Inspektore
207207
208208Zhrnúť by sa to dalo tak, že obvykle existujú 3 spôsoby, ako nastaviť každú vlastnosť objektu:
209209
210210- použitím myši
211211- nastavením hodnoty v Object Inspektore
212212- explicitne napísaním kódu
213213
214214Komponenty definované v týchto jednotkách majú niektoré vlastnosti spoločné pre väčšinu z nich, a niektoré, ktoré sú pre každú komponentu špecifické. Tu sa pokúsime popísať tie najčastie. Neobvyklé alebo špecifické vlastnosti sú popísané pre každú komponentu.
215215
216216Dodatočnú nápovedu môžete získať vybraním vlastnosti alebo kľúčového slova (v Object Inspecotre alebo Source Editore) a stlačením ***F1***. Otvorí sa vám dokumentácia na príslušnej stránke.
217217
218218## Ako používať menu
219219
220220V tejto kapitole sa dočítate o vytváraní Menu položiek do formulárov.
221221
222222*TMainMenu* je hlavné menu, ktoré sa obvykle zobrazuje na vrchu väčšiny formulárov. Ich tvorcovia ho môžu prisposobovať potrebám konkrétneho programu pomocou rôznych položiek menu. *TPopupMenu* je vyskakovacie menu, ktoré sa zobrazuje obvykle po stlačení pravého tlačidla myši, na základe kontextu. Obvykle sa používa na rýchle nastavovanie detailov a pod.
223223
224224*TMainMenu* je nevizuálna komponenta. To znamená, že pokiaľ prenesiete je ikonu z Palety Komponentov na formulár, táto ikona sa za behu programu nezobrazí. Namiesto nej sa zobrazí Panel menu vo formulári, ktorý bude mať takú štruktúru, akú ste nadefinovali v Menu Editore. Ikony komponentov *TPopupMenu* sa tiež za behu programu nezobrazujú, menu sa ale zobrazí až keď užívateľ klikne pravým tlačidlom myši na komponentu, ktorá takéto menu vlastní.
225225
226226Pre vyvolanie Menu Editora, kliknite pravým tlačidlom na ikonu Hlavného alebo Vyskakovacieho menu na vašom formulári. Objaví sa okno, pomocou ktorého môžete pridávať položky do menu.
227227
228228Zobrazí sa okno Edit box, ktorý obsahuje tlačidlo označené ako NewItem1. Na Edit box kliknite pravým tlačidlom, zobrazí sa vyskakovacie menu, ktoré vám umožní vložiť položky menu pred alebo za vybranú položku, prípadne vytvoriť podmenu.
229229
230230Všetky položky typu *MenuItems*, ktoré ste vytvorili cez Edit box môžete nastavovať pomocou okna Object Inspector.
231231
232232Každá položka by mala mať nastavenú minimálne vlastnosť *Caption* (text, ktorý sa zobrazí, napr. *File Open*, *Close*, *Run*, *Exit* a pod., podľa toho, akú funkciu bude položka vykonávať). Okrem toho sa odporúča nastaviť aj rozumné meno položky (vlastnosť *Name*), ktoré budete používať v zdrojovom kóde.
233233
234234Pri každej položke je možné nastaviť isté písmeno, ktoré bude slúžiť ako klávesová skratka. Jednoducho v *Caption* položky pred písmeno vložte znak ampersand (&). Keď potom spustíte váš program, písmeno sa zobrazí ako podčiarknuté, a jeho stlačením sa aktivuje daná položka menu. Okrem toho je možné nastaviť aj klávesovú skratku, ako napr. Ctrl+C pre kopírovanie, či Ctrl+V pre vloženie. Pre tento účel sa používa vlastnosť *ShortCut* komponenty MenuItem.
235235
236236## Debugger
237237
238238
239239*Už len napísať*.
240240
241241## Súbory Lazarus
242242
243243(Thanks to Kevin Whitefoot.) (Additions by Giuseppe Ridino, User:Kirkpatc and Tom Lisjac)
244244
245245Pri ukladaní projektu budete vyzvaný na zadanie mena pre dva súbory:
246246
247-`  `**`xxx.pas`**` a `**`yyy.lpr`**
247+```text
248+ xxx.pas a yyy.lpr
249+```
248250
249251(Uložených bude viac súborov). Súbor projektu (lpr) a súbor jednotky (pas) ktoré nesmú mať rovnaké meno, pretože Lazarus premenuje jednotku (vo vnútri zdrojového kódu) na rovnaké meno ako má súbor jednotky a program na rovnaké ako meno súboru projektu (toto je potrebné urobiť, pretože inak nebude prekladač schopný nájsť príslušnú jednotku neskôr, pri odkazovaní z projektového súboru). Samozrejme natrvalo to zmení všetky výskyty Unit1 na xxx.
250252
251253Takže, ak uložíte projekt pod menom **again**, pokus uložiť **again.pas** a **again.lpr** toto zlyhá, pretože mená jednotky a programu sú rovnaké a výsledkom je Chyba duplikovaného mena. Inými slovami, aj súbor projektu (.lpr) sa odkazuje v sekcii **uses** na danú jednotku, ale bez rozlíšenia koncovky, takto by to prekladač interpretoval ako odkaz sám na seba.
252254
253255Toto bude výsledok:
254256
255257e:/lazarus/kj/lazhello:
256258
257-`total 4740  free 76500`\
258-`-rwxrwxrwx   1 kjwh     root  4618697 Mar 24 11:19 again.exe`\
259-`-rw-rw-rw-   1 kjwh     root     3002 Mar 24 11:21 again.lpi`\
260-`-rw-rw-rw-   1 kjwh     root      190 Mar 24 11:18 again.lpr`\
261-`-rw-rw-rw-   1 kjwh     root      506 Mar 24 11:08 againu.lfm`\
262-`-rw-rw-rw-   1 kjwh     root      679 Mar 24 11:08 againu.lrs`\
263-`-rw-rw-rw-   1 kjwh     root      677 Mar 24 11:08 againu.pas`\
264-`-rw-rw-rw-   1 kjwh     root     2124 Mar 24 11:08 againu.ppu`\
265-`-rwxrwxrwx   1 kjwh     root      335 Mar 24 11:07 ppas.bat`
259+```text
260+total 4740 free 76500
261+-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe
262+-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi
263+-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr
264+-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm
265+-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs
266+-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas
267+-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu
268+-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat
269+```
266270
267271Nezabudnite, že adresár môže obsahovať veľa ďalších súborov, ktoré ste už uložili predtým.
268272
269273Poznámky o každom súbore:
270274
271275**again.exe:** Základný binárny program. Win32 pridáva príponu "exe". Linux niee. Tento súbor bude v Linuxe obrovský, pretože obsahuje symboly ladenia. Spusťte utilitu "strip" na ich odstránenie. Skrátite veľkosť súboru.
272276
273277**again.lpi:** Základný súbor Lazarus projektu (Lazarus Project Information); je to ekvivalent k základnému súboru aplikácie Delphi .dpr. Je uchovávaný vo formáte XML.
274278
275279**again.lpr:** Základný zdrojový súbor programu. Napriek špeciálnej prípone Lazarus ide v skutočnosti o klasický súbor zdrojového kódu Pascal. Má klauzulu **uses**, ktorá dovoľuje prekladaču nájsť všetky potrebné jednotky. Všimnite si, že príkaz **program** nemá rovnaké meno programu ako je meno súboru.
276280
277281**againu.lfm:** V tomtmo súbore Lazarus uchováva vzhľad formulára. Lazarus ho používa na generovanie resource súboru, ktorý je vložený v do sekcie initialisation jednotky againu.pas. Delphi .dfm súbory môžete konvertovať do formátu .lfm v IDE Lazarus pomocou Tools-\>Convert DFM file to LFM.
278282
279283**again.lrs:** Vygenerovaný resource súbor. Všimnite si, že to nie je súbor Windows resource.
280284
281285**againu.pas:** Jednotka, obsahujúce kód formulára.
282286
283287**again.ppu:** Preložená jednotka.
284288
285289**ppas.bat:** Jednoduchý skript, ktorý linkuje program na produkciu exe. Ak je preklad úspešný, je zmazaný prekladačom.
286290
287291## Spolupracovníci a zmeny
288292
289293This page has been imported from the epikwiki [version](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial).
290294
291295- Created initial page and template. T. Lisjac - 11/04/2003 VlxAdmin
292296- Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 User:Kirkpatc
293297- Per above, moved Chris's writeup to the main body of the tutorial VlxAdmin
294298- Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 User:Kirkpatc
295299- Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 User:Kirkpatc
296300- Added screenshots and revised some of the page formatting VlxAdmin 3/25/2004
297301- Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 User:Kirkpatc
298302- Formatted, added credits and comments. Removed original notes. VlxAdmin 3/26/2004
299303- More material added to Editor section of tutorial. 26 Mar 2004 User:Kirkpatc
300304- More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 User:Kirkpatc
301305- Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 User:Kirkpatc
302306- Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 User:Kirkpatc
303307- Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 User:Kirkpatc
304308- Added some more to the description of the Editor Main Menu. 18 Apr 2004 User:Kirkpatc
305309- Added section on Environment sub-menu. 19 Apr 2004 User:Kirkpatc
306310- Added section on Components sub-menu. 4 May 2004 User:Kirkpatc
307311- Adding Tools sub-menu description (incomplete). 7 May 2004 User:Kirkpatc
308312- Added some screenshots to Menu descriptions. 9 May 2004 User:Kirkpatc
309313- Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 User:Kirkpatc
310314- More additions to Tools sub-menu. 19 May 2004 User:Kirkpatc
311315- Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 User:Kirkpatc
312316- Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 User:Kirkpatc
313317- Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 User:Kirkpatc
314318- Expanding on the Components Palette. 5 June 2004 User:Kirkpatc
315319- Added a lot to the DialogExamples page. 10 June 2004 User:Kirkpatc
316320- Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 User:Kirkpatc
317321- Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 User:Kirkpatc
318322- Added page for Common Controls (linked to Component Palette). 16 June 2004 User:Kirkpatc
319323- Added MaskEdit page (linked to Component Palette). 17 June 2004 User:Kirkpatc
320324- Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 User:Kirkpatc
321325- Edited MainMenu component description page. 23 June 2004 User:Kirkpatc
322326- Some additions to Common Controls. 28 June 2004 User:Kirkpatc
323327- A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 User:Kirkpatc
324328- Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July User:Kirkpatc
325329- Added FormsTxt, component description page for Component Palette. 20 July 2004 User:Kirkpatc
326330- Some corrections to ConsoleModePascal. 21 July 2004 User:Kirkpatc
327331- Some small changes to ComponentPalette. 22 July 2004 User:Kirkpatc
328332- Preklad z anglického originálu [[Lazarus Tutorial]] a doplnenie obrázkov Palety komponentov. 25.marca 2005 User:Slavko
329333- Aktualizácia slovenské preklady z anglického originálu [[Lazarus Tutorial]]. 24.decembra 2008 User:Adamm
330334
331335---
332336*From the Free Pascal wiki, page "Lazarus Tutorial/sk", as it stood on 2021-12-08 after a change by Kupferstecher, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history