Sign in Join
Wiki copytemporary

Lazarus Tutorial/sk: what changed

Revision 1 to 2. 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
77-<center>
78-
79-<figure>
80-<img src="LazMain_GTK2.png" title="LazMain_GTK2.png" />
81-<figcaption>LazMain_GTK2.png</figcaption>
82-</figure>
83-
84-</center>
77+![](/wiki-images/4/43/LazMain_GTK2.png)
8578
8679V 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).
8780
8881Pod 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.
8982
9083Keď 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.
9184
9285Poč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.
9386
9487### Základné menu
9588
9689For a detailed description of every menu item which is accessible from the Lazarus IDE Main Menu, please refer to the [[Main menu/sk]] page.
9790
9891## Paleta komponentov
9992
10093Panel 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).
10194
10295Ak 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.
10396
10497V 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.
10598
10699- **[Standard](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls)**
107100
108101
109102*Najčastejšie používané komponenty*
110103
111-<center>
112-
113-<figure>
114-<img src="Component_Palette_Standart.png" title="Component_Palette_Standart.png" />
115-<figcaption>Component_Palette_Standart.png</figcaption>
116-</figure>
117-
118-</center>
104+![](/wiki-images/4/4d/Component_Palette_Standart.png)
119105
120106
121107[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)
122108
123109- **[Additional](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls)**
124110
125111*Ďalšie často používané komponenty:*
126112
127-<center>
128-
129-<figure>
130-<img src="Component_Palette_Additional.png" title="Component_Palette_Additional.png" />
131-<figcaption>Component_Palette_Additional.png</figcaption>
132-</figure>
133-
134-</center>
113+![](/wiki-images/7/7d/Component_Palette_Additional.png)
135114
136115
137116[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)
138117
139118- **[Common Controls](http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls)**
140119
141-<center>
142-
143-<figure>
144-<img src="Component_Palette_Common_Controls.png" title="Component_Palette_Common_Controls.png" />
145-<figcaption>Component_Palette_Common_Controls.png</figcaption>
146-</figure>
147-
148-</center>
120+![](/wiki-images/4/4a/Component_Palette_Common_Controls.png)
149121
150122
151123TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList
152124
153125- **[Dialogs](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt)**
154126
155-<center>
156-
157-<figure>
158-<img src="Component_Palette_Dialogs.png" title="Component_Palette_Dialogs.png" />
159-<figcaption>Component_Palette_Dialogs.png</figcaption>
160-</figure>
161-
162-</center>
127+![](/wiki-images/7/72/Component_Palette_Dialogs.png)
163128
164129
165130TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog
166131
167132Niektoré 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.
168133
169134Niekoľ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.
170135
171136Niektoré 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.
172137
173138Vyskúš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!
174139
175140- **Misc**
176141
177-<center>
178-
179-<figure>
180-<img src="Component_Palette_Misc.png" title="Component_Palette_Misc.png" />
181-<figcaption>Component_Palette_Misc.png</figcaption>
182-</figure>
183-
184-</center>
142+![](/wiki-images/8/8e/Component_Palette_Misc.png)
185143
186144
187145[TColorButton](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt), TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox
188146
189147- **Data Controls**
190148
191149*Komponenty Data-aware, ktoré do zančnej miery replikujú skupiny Standard a Additional, ale sú použiteľné s databázami:*
192150
193-<center>
194-
195-<figure>
196-<img src="Component_Palette_DataControls.png" title="Component_Palette_DataControls.png" />
197-<figcaption>Component_Palette_DataControls.png</figcaption>
198-</figure>
199-
200-</center>
151+![](/wiki-images/6/62/Component_Palette_DataControls.png)
201152
202153
203154TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid
204155
205156- **Data Access**
206157
207-<center>
208-
209-<figure>
210-<img src="Component_Palette_DataAccess.png" title="Component_Palette_DataAccess.png" />
211-<figcaption>Component_Palette_DataAccess.png</figcaption>
212-</figure>
213-
214-</center>
158+![](/wiki-images/c/cc/Component_Palette_DataAccess.png)
215159
216160
217161TDatasource
218162
219163- **System**
220164
221-<center>
222-
223-<figure>
224-<img src="Component_Palette_System.png" title="Component_Palette_System.png" />
225-<figcaption>Component_Palette_System.png</figcaption>
226-</figure>
227-
228-</center>
165+![](/wiki-images/f/fe/Component_Palette_System.png)
229166
230167
231168[TTimer](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TTimer), TIdleTimer, [[doc:fcl/process/tprocess.html|TProcess]]
232169
233170- **SynEdit**
234171
235172
236173*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).
237174
238-<center>
239-
240-<figure>
241-<img src="Component_Palette_SynEdit.png" title="Component_Palette_SynEdit.png" />
242-<figcaption>Component_Palette_SynEdit.png</figcaption>
243-</figure>
244-
245-</center>
175+![](/wiki-images/2/22/Component_Palette_SynEdit.png)
246176
247177
248178TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn
249179
250180Pre 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.
251181
252182Ak 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.
253183
254184## Ako používať základné (Standard), spoločné (Common) a rozšírené komponenty
255185
256-Programové jednotky <i>StdCtrls</i>, <i>ComCtrls</i> a <i>ExtCtrls</i> 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
186+Programové 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
257187
258188Veľ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.
259189
260190Pokiaľ 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.
261191
262192Ak však vytvoríte komponentu samy v kóde, je nutné nezabudnúť ju uvoľniť, keď už nie je ďalej potrebná
263193
264194Pokiaľ umiestnite komponentu na Form Designer a pozriete sa na okno Object Inspector, môžete preskúmať a meniť vlastnosti tejto komponenty.
265195
266196Napr. 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.
267197
268198Na 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.
269199
270200Takisto môžete explicitne nastaviť niektoré vlastnosti objektu v kóde (v príslučnej Implementation časti v okne Source Editor), napr.
271201
272202``` pascal
273203Form1.Button1.Height := 48;
274204```
275205
276206Pokiaľ 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
277207
278208Zhrnúť by sa to dalo tak, že obvykle existujú 3 spôsoby, ako nastaviť každú vlastnosť objektu:
279209
280210- použitím myši
281211- nastavením hodnoty v Object Inspektore
282212- explicitne napísaním kódu
283213
284214Komponenty 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.
285215
286216Dodatoč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.
287217
288218## Ako používať menu
289219
290220V tejto kapitole sa dočítate o vytváraní Menu položiek do formulárov.
291221
292222*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.
293223
294224*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í.
295225
296226Pre 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.
297227
298228Zobrazí 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.
299229
300230Všetky položky typu *MenuItems*, ktoré ste vytvorili cez Edit box môžete nastavovať pomocou okna Object Inspector.
301231
302232Kaž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.
303233
304234Pri 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.
305235
306236## Debugger
307237
308238
309239*Už len napísať*.
310240
311241## Súbory Lazarus
312242
313243(Thanks to Kevin Whitefoot.) (Additions by Giuseppe Ridino, User:Kirkpatc and Tom Lisjac)
314244
315245Pri ukladaní projektu budete vyzvaný na zadanie mena pre dva súbory:
316246
317247`  `**`xxx.pas`**` a `**`yyy.lpr`**
318248
319249(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.
320250
321251Takž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.
322252
323253Toto bude výsledok:
324254
325255e:/lazarus/kj/lazhello:
326256
327257`total 4740  free 76500`\
328258`-rwxrwxrwx   1 kjwh     root  4618697 Mar 24 11:19 again.exe`\
329259`-rw-rw-rw-   1 kjwh     root     3002 Mar 24 11:21 again.lpi`\
330260`-rw-rw-rw-   1 kjwh     root      190 Mar 24 11:18 again.lpr`\
331261`-rw-rw-rw-   1 kjwh     root      506 Mar 24 11:08 againu.lfm`\
332262`-rw-rw-rw-   1 kjwh     root      679 Mar 24 11:08 againu.lrs`\
333263`-rw-rw-rw-   1 kjwh     root      677 Mar 24 11:08 againu.pas`\
334264`-rw-rw-rw-   1 kjwh     root     2124 Mar 24 11:08 againu.ppu`\
335265`-rwxrwxrwx   1 kjwh     root      335 Mar 24 11:07 ppas.bat`
336266
337267Nezabudnite, že adresár môže obsahovať veľa ďalších súborov, ktoré ste už uložili predtým.
338268
339269Poznámky o každom súbore:
340270
341271**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.
342272
343273**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.
344274
345275**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.
346276
347277**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.
348278
349279**again.lrs:** Vygenerovaný resource súbor. Všimnite si, že to nie je súbor Windows resource.
350280
351281**againu.pas:** Jednotka, obsahujúce kód formulára.
352282
353283**again.ppu:** Preložená jednotka.
354284
355285**ppas.bat:** Jednoduchý skript, ktorý linkuje program na produkciu exe. Ak je preklad úspešný, je zmazaný prekladačom.
356286
357287## Spolupracovníci a zmeny
358288
359289This page has been imported from the epikwiki [version](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial).
360290
361291- Created initial page and template. T. Lisjac - 11/04/2003 VlxAdmin
362292- 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
363293- Per above, moved Chris's writeup to the main body of the tutorial VlxAdmin
364294- Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 User:Kirkpatc
365295- Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 User:Kirkpatc
366296- Added screenshots and revised some of the page formatting VlxAdmin 3/25/2004
367297- 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
368298- Formatted, added credits and comments. Removed original notes. VlxAdmin 3/26/2004
369299- More material added to Editor section of tutorial. 26 Mar 2004 User:Kirkpatc
370300- 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
371301- Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 User:Kirkpatc
372302- Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 User:Kirkpatc
373303- Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 User:Kirkpatc
374304- Added some more to the description of the Editor Main Menu. 18 Apr 2004 User:Kirkpatc
375305- Added section on Environment sub-menu. 19 Apr 2004 User:Kirkpatc
376306- Added section on Components sub-menu. 4 May 2004 User:Kirkpatc
377307- Adding Tools sub-menu description (incomplete). 7 May 2004 User:Kirkpatc
378308- Added some screenshots to Menu descriptions. 9 May 2004 User:Kirkpatc
379309- Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 User:Kirkpatc
380310- More additions to Tools sub-menu. 19 May 2004 User:Kirkpatc
381311- Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 User:Kirkpatc
382312- Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 User:Kirkpatc
383313- 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
384314- Expanding on the Components Palette. 5 June 2004 User:Kirkpatc
385315- Added a lot to the DialogExamples page. 10 June 2004 User:Kirkpatc
386316- 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
387317- 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
388318- Added page for Common Controls (linked to Component Palette). 16 June 2004 User:Kirkpatc
389319- Added MaskEdit page (linked to Component Palette). 17 June 2004 User:Kirkpatc
390320- Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 User:Kirkpatc
391321- Edited MainMenu component description page. 23 June 2004 User:Kirkpatc
392322- Some additions to Common Controls. 28 June 2004 User:Kirkpatc
393323- A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 User:Kirkpatc
394324- Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July User:Kirkpatc
395325- Added FormsTxt, component description page for Component Palette. 20 July 2004 User:Kirkpatc
396326- Some corrections to ConsoleModePascal. 21 July 2004 User:Kirkpatc
397327- Some small changes to ComponentPalette. 22 July 2004 User:Kirkpatc
398328- Preklad z anglického originálu [[Lazarus Tutorial]] a doplnenie obrázkov Palety komponentov. 25.marca 2005 User:Slavko
399329- Aktualizácia slovenské preklady z anglického originálu [[Lazarus Tutorial]]. 24.decembra 2008 User:Adamm
400330
401331---
402332*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