https://wiki.freepascal.org/api.php?action=feedcontributions&user=Trsek&feedformat=atomFree Pascal wiki - User contributions [en]2024-03-28T13:15:02ZUser contributionsMediaWiki 1.35.6https://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/sk&diff=98335Lazarus Tutorial/sk2015-12-15T14:54:48Z<p>Trsek: /* Súbory Lazarus */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
== Úvod ==<br />
Lazarus je free a open source vývojový nástroj pre prekladač FreePascal (Object Pascal), ktorý je tiež free a open source. [http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg IDE Lazarus] 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.<br />
<br />
== Začnite - Váš prvý program Lazarus! ==<br />
<br />
(Vďaka [[User:Kirkpatc]])<br />
<br />
Zí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.<br />
<br />
Na 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'.<br />
<br />
Teraz 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:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
</syntaxhighlight><br />
<br />
Stlač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:<br />
<syntaxhighlight><br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
</syntaxhighlight><br />
<br />
Opäť 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.<br />
<br />
Objavia 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.<br />
<br />
Skú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'!!<br />
<br />
Teraz 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.<br />
<br />
Svoju prácu môžete teraz uložiť (a často!!) zvolením Project > Save As > vyše_zvolené_meno_súboru.pas.<br />
<br />
=== Druhá časť ===<br />
Znova 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.<br />
<br />
Upravte svoj kód, aby vyzeral takto:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag =0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
</syntaxhighlight><br />
<br />
Uložte svoju prácu, preložte a spusťte. Ľavé tlačítko bude teraz prepínať medzi dvoma alternatívnymi návestiami.<br />
<br />
Zvyšok je na vás!<br />
<br />
Ak 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]].<br />
<br />
== Editor ==<br />
Pri prvom spustení IDE Lazarus sa na vašej pracovnej ploche objaví niekoľko samostatných, nespojených alebo plávajúcich okien.<br />
<br />
Prvé 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.<br />
<br />
<center>[[Image:LazMain_GTK2.png]]</center><br />
<br />
V 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.<br />
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).<br />
<br />
Pod základným oknom IDE Lazarus sa ešte vľavo obajví okno '''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg Object Inspector]''' a vedľa neho okno '''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg Editora zdrojového kódu]''' (Lazarus Source Editor). Môže sa objaviť ešte jedno menšie okno, nazvané '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', 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.<br />
<br />
Keď 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.<br />
<br />
Počas práce môžu byť zobrazené i ďalšie okná, ako: the '''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg Project Inspector]''', 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.<br />
<br />
=== Základné menu ===<br />
(Main Menu)<br />
<br />
Riadok základného menu obsahuje nasledujúce položky:<br />
<br />
<u>F</u>ile <u>E</u>dit <u>S</u>earch <u>V</u>iew <u>P</u>roject <u>R</u>un <u>C</u>omponents <u>T</u>ools E<u>n</u>vironment <u>W</u>indows <u>H</u>elp<br />
<br />
Ako je zvykom, položky môžu bať vybraté umiestnením myši nad položku menu a kliknutím ľavým tlačítkom myši alebo stlačením Alt-F na klávesnici (základné okno musí mať fokus, ak ho nemá stláčajte opakovane TAB na prepínanie fokusu medzi oknami, kým nie je titulkový pruh uíkladného okna zvýraznený farbou).<br />
<br />
==== Menu File ====<br />
<div class="floatright"> [[Image:FileMenu.png]] </div><br />
* '''New Unit''': Vytvorí nový súbor jednotky (zdrojový kód Pascal).<br />
* '''New Form''': Vytvorí nový formulár: vrátane pripojeného zdrojového súboru Pascal. <br />
* '''New ...''': Poskytuje ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg pop-up menu box]) s rôznymi typmi nových dokumentov.<br />
* '''Open''': Otvorí dialóg pre otvorenie existujúceho súboru. <br />
* '''Revert''': Ruší vykonané editácie a obnovuje súbor do pôvodného stavu. <br />
* '''Open Recent''': Zoznam naposledy otvorených súborov. <br />
* '''Save''': Uloží aktuálny súbor. Ak súbor ešte nemá meno, správa sa ako Save As.<br />
* '''Save As''': Umožňuje vybrať adresár a meno pre uloženie aktuálneho súboru.<br />
* '''Save ALL''': <br />
* '''Close''': Zatvorí aktuálny súbor, spýtajúc sa na uloženie vykonaných úprav.<br />
* '''Close all editor files''': Zatvorí všetky aktuálne otvorené súbory, spýtajúc sa na uloženie úprav.<br />
* '''Clean directory''': Otvorí dialóg s nastaviteľnými filtrami, pre odstránenie súborov z aktuálneho adresára. Užitočné pre odstránenie súborov .bak a zvyškov projektov Delphi.<br />
* '''Print''': Vytlačí zvolený súbor na tlačiarni systému. Táto položka menu sa predvolene neobjavuje, ale najprv je potrebné nainštalovať $Lazdir/components/printers/design/printers4lazide.pas a opäť preložiť IDE.<br />
* '''Restart''': <br />
* '''Quit''': Zatvorí Lazarus, spýtajúc sa na uloženie vykonaných úprav. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Edit ====<br />
<div class="floatright"> [[Image:EditMenu.png]] </div><br />
* '''Undo''': Vrátenie poslednej editovanej akcie, ponechajúc Editor v stave tesne pred ňou.<br />
* '''Redo''': Opakovanie poslednej akcie, ktorá bola vrátená pomocou Undo.<br />
* '''Cut''': Vystrihne vybraný text a uiestni ho do schránky.<br />
* '''Copy''': Prekopíruje vybratý text do schránky. <br />
* '''Paste''': Vloží obsah schránky na pozíciu kurzora. Ak bol vybratý text, prepíše ho.<br />
* '''Indent selection''': Posúva odsadenie vybratého textu doprava o rozsah zadaný v nastavení Environment -> Editor options -> General -> Block indent. Funkciaje užitočná pre formátovanie zdrojovéhokódu a vyvorenie blokovej štruktúry.<br />
* '''Unindent selection''': Odstraňuje jednu úroveň odsadenia, posunúc text doľava o rozsah zadaný v nastavení Editora Block indent. <br />
* '''Enclose selection''': Otvára pop-up menu s voľbami pre logické zakončenie vybratého textu (begin ... end; try ... except; try ... finally; repeat ... until; { ... } atď).<br />
* '''Uppercase selection''': Konvertuje vybratý text na veľké písmená.<br />
* '''Lowercase selection''': Konvertuje vybratý text na malé písmená.<br />
* '''Tabs to spaces in selection''': Konveruje všetky tabulátory vybratého textu na medzery, podľa nastavenia Environment -> Editor options -> General -> Tab widths. Počet medzier nemá fixnú veľkosť, ale je to potrebný počet medzier na zaplnenie potrebnej šírky tabelátora medzerami.<br />
* '''Break lines in selection''': Zalomí riadok vybratého textu, ktorý presahuje 80 znakov alebo počet zadaný v nastavení Environment -> Editor options -> Display -> Right Margin, riadok je zalomený na hranici slova a pokračuje na nasledujúcom riadku.<br />
* '''Comment selection''': Vloží značky komentára // na každý riadok vybratého textu.<br />
* '''Uncomment selection''': Odstráni značky komentára.<br />
* '''Sort selection''': Zoradí riadky (alebo slová v odstavci) podľa abecedy; voľby pre smer radenia, citlivosť na veľkosť písmen. Uprostred zrojového kódu, samozrejme, to neprichádza do úvahy, ale ak máte zoznam, ktorý treba zoradiť, oceníte tento trik.<br />
* '''Select''': Umožní výber blokov textu. Voľby zahŕňajú Vybrať všetko, vybrať po brace, vybrať odstavec alebo riadok, atď.<br />
* '''Insert from character map''': Umožní vloženie symbolu, ktorý nie je na klávesnici, vybratý z pop-up mapy znakov.<br />
* '''Insert text''': Zobrazí pop-up menu pre vloženie štandartných textov, ako kľúčové slová CVS (Author, Date, Header atď), či poznámku GPL, meno užívateľa, dátum a čas.<br />
* '''Complete code''': Dokončí kód pod kurzorom. Závisí od kontextu a šetrí mnoho času. Napríklad dokončuje triedy, pridaním súkromných premenných, prístupové metódy Get a Set vlastností a pridaním tela metód. Na priradeniach premenných (tj. i:=3;) pridáva deklaráciu premennej. Pri forward deklarovaných procedúrach pridáva telá procedúr. Pri priradení udalostí (OnClick:=) pridáva definíciu a telo metódy. Viď [[Lazarus IDE Tools/sk | Nástroje IDE Lazarus]].<br />
* '''Extract procedure''': Použije vybratý text (príkaz alebo sériu príkazov) na vytvorenie novej procedúry.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Search ====<br />
<div class="floatright"> [[Image:SearchMenu.png]] </div><br />
* '''Find''': Obdoba vlastnosti skoro všetkých grafických editorov: pop-up dialógový box pre zadanie hľadaného textu a volieb hľadania, ako citlivosť na veľkosť písmen, celé slová, začiatok, oblasť a smer hľadania.<br />
* '''Find Next, Find previous''': Pokračuje v hľadaní predtým zvoleného textu, zadaným smerom.<br />
* '''Find in files''': Hľadá textový reťazec v súboroch: pop-up dialóg s voľbami všetky otvorené súbory, všetky súbory v projekte alebo všetky adresáre; umožňuje i zadanie masky pre výber typu súboru.<br />
* '''Replace''': Podobné ako '''Find'''; zobrazí pop-up dialóg s miestom pre zadanie hľadaného reťazca a nahradzujúceho textu a volieb pre citlivosť na veľkosť písmen, smer atď.<br />
* '''Incremental find''': Hľadanie reťazca kým zadávate hľadaný reťazec. Príklad: stlačíte "l" a je zvýraznené prvé "l", ak potom stlačíte "a", editor nájde nasledujúce "la" atď.<br />
* '''Goto line''': Presunie kurzor na zadaný riadok súboru.<br />
* '''Jump back''': Presunie kurzor späť k nasledujúcej záložke (musíte použiť Add jump point to history). Presúva i na záložky iných súborov otvorených v Editore. <br />
* '''Jump forward''': Presunie kurzor vpred na nasledujúcu záložku.<br />
* '''Add jump point to history''': Pridá do súboru záložky alebo skokové body.<br />
* '''View Jump-History''': Ukáže zoznam záložiek v súbore: '''Zatiaľ neimplementované???'''.<br />
* '''Jump to next error''', '''Jump to previous error''': Skoč na na pozíciu nasledujúcej/predchádzajúcej hlásenej chyby v zdrojovom súbore.<br />
* '''Set a free bookmark''': označ riadok, na ktorom je kurzor, ďalšou dostupnou (voľnou) číslovanou záložkou a pridaj ju do zoznamu záložiek. Pozor, vyskakovacie menu (získané kliknutím pravým tlačítkom myši na príslušný riadok zdrojového súboru) poskytuje väčší rozsah možností záložky, umožňujúc zadať číslo záložky, či skočiť na očíslovanú záložku, nie len na nasledujúcu/predchádzajúcu. <br />
* '''Jump to next bookmark''', '''Jump to previous bookmark''': Skoč na nasledujúcu/predchádzajúcu záložku v číselnom poradí.<br />
* '''Find other end of code block''': Ak je kurzor umiestnený na '''begin''', presunie kurzor na príslušný '''end''' a naopak.<br />
* '''Find code block start''': Presunie kurzor na '''begin''' procedúry alebo funkcie, v tele ktorej je umiestnený.<br />
* '''Find Declaration at cursor''': Presunie kurzor na miesto deklarácie zvoleného identifikátora. Môže to byť v rovnakom súbore alebo v inom. Ak nie je otvorený, otvorí ho v Editore (tak ak je procedúra alebo funkcia deklarovaná napr. v <u>classesh.inc </u>, tento bude otvorený v Editore).<br />
* '''Open filename at cursor''': Otvorí súbor, ktorého meno je vybraté kurzorom. Užitočné na zobrazenie <u>Include </u> súborov alebo súborov obsahujúcich iné <u>Jednotky</u> použité v projekte.<br />
* '''Goto include directive''': Ak je kurzor umiestnený v súbore, ktorý je <u>Included</u> v inom súbore, presunie kurzor na miesto v súbore, odkiaľ bol volaný súbor <u>Include</u>.<br />
* '''Find Identifier References''': Poskytuje zoznam všetkých riadkov aktuálneho súboru, projektu alebo pripojených súborov, na ktorých je spomenutý identifikátor. <br />
* '''Rename Identifier''': Umožňuje vývojárovi premenovať identifikátor. Pomocou vyskakovacie menu možno určiť, či sa má premenovanie vykonať len v aktuálnom súbore, v projekte, vo všetkých otvorených alebo pripojených súboroch atď. Dokoncá je možné premenovať aj identifikátory vyskytujúce sa v komentároch. Túto vlastnosť môžete využiť, napríklad, al prekladač hlási, že identifikátor už existuje, takže môžete potebovať nové meno svojho identifikátora.<br />
* '''Procedure List''': Poskytuje zoznam všetkých procedúr a funkcií v aktuálnom súbore, spolu s číslom riadku, kde sú definované.<br />
'''<div style="clear:both;"></div><br />
<br />
==== Menu View ====<br />
Ovládanie zobrazenia rôznych okien a panelov na obrazovke.<br />
<div class="floatright"> [[Image:ViewMenu.png]] </div><br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/ViewMenuSnapshot.png </div><br />
* '''Object Inspector''': Okno, zvyčajne umiestnené na ľavej strane obrazovky, ktoré zobrazuje funkcie formulára, ktorý je na obrazovke. Kliknutím myšou na ktorýkoľvek komponent formulára, spôsobí, že detaily komponentu budú zobrazené v Object Inspector. Na jeho vrchu je panel, ktorý zobrazuje stromovú štruktúru aktuálneho projektu a komponenty formulára môžu byť vybraté aj z tohoto panela. Základný panel má dve záložky, ktoré umožňujú zobraziť '''Properties''' alebo '''Events'''. Výber '''Properties''' zobrazí vlastnosti zvoleného komponentu v dvoch stĺpcoch, ľavý zobrazuje meno vlastnosti a pravý jej hodnotu. Výber '''Events''' zobrazí tiež dva stĺpce, ľavý s menom udalostí priradených ku komponentu a pravý ukazuje akciu, ktorá je výsledkom udalosti (procedúru udalosti). Ak nie je definovaná akcia, kliknutie na tlačítko <div class="box">...</div> spôsobí zobrazenie Editora zdrojového kódu s kurzorom umiestneným na prázdenj deklarácii procedúry, do ktorej môžete zadať svoj kód udalosti.<br />
* '''Source Editor''': Základné okno pre editovanie zdrojového kódu. Jeho správanie je veľmi podobné iným grafickým editorom textu, takže môžete myšou presúvať kurzor nad zobrazeným textom a stlačenie ľavého tlačítka myši počas posúvania vyberie a označí text. Pravým kliknutím zobrazíte kontextové menu, ale ak ste zvyknutý na editory Windows, Gnome alebo KDE, budete márne hľadať zvyčajné funkcie, ako Vystrihnúť, Kopírovať a Vložiť, ale zahŕňa voľby ako '''Find Declaration''' alebo '''Open File at Cursor'''. Na vrchu okna Editora zdrojového kódu je niekoľko záložiek, reprezentujúcich otvorené súbory; kliknutie na jednu z nich vyvolá daný súbor do popredia, takto môžete jednoducho kopírovať zo súboru do súboru a vykonávať bežné editovacie funkcie. Editor zdrojového kódu poskytuje farebné zvýraznenie syntaxe kódu, s rôznymi farbami pre interpunkciu, komentáre, reťazcové konštanty atď. Rovnako zabezpečuje automatické odsadenie riadkov kódu. Funkcie a vzhľad Editora zdrojového kódu sú nastaviteľné cez menu Environment -> Editor options a zvolením jednej z viacerých záložiek.<br />
* '''Code Explorer''': Okno, zvyčajne umiestnené na pravej strane pracovnej plochy, ktoré v stromovej forme zobrazuje štruktúru kódu aktuálnej jednotky alebo programu. Ak zmeníte súbor zobrazený v okne Editora zdrojového kódu, musíte zvoliť tlačítko Refresh na zobrazenie novej štruktúry súboru. Okno po otvorení zvyčajne zobrazuje meno jednotky a vetvy pre časti Interface a Implementation, ale kliknutím na <div class="box">+</div> vľavo od vetvy otvoríte podvetvy a vetvičky :-), do úplných detailov samotných konštánt, typov a premenných, ako aj deklarácií procedúr a funkcií.<br />
* '''Units...''': pop-up dialóg so zoznamom súborov jednotiek aktuálneho projektu, ktorý umožní vybrať súbor Zobrazený v Editore zdrojového kódu. Zaškrtnutím voľby Multi select môžete vybrať a otvoriť viac jednotiek naraz, ale len jedna bude zobrazená. Táto položka menu je lepšia ako položka Project -> Project Inspector, ale zobrazuje len zoznam jednotiek a dovoľuje ich otvoriť.<br />
* '''Forms...''': pop-up dialóg so zoznamom formulárov aktuálneho projektu a umožní vybrať jeden alebo viac z nich pre zobrazenie.<br />
* '''View Unit Dependencies''': pop-up dialóg, ktorý zobrazí stromovú štruktúru závislostí aktuálne otvorenej jednotky. Mnoho súborov zobrazených v tomto okne má svoje svoje vlastné <div class="box">+</div> ,ktoré umožňujú preskúmať ich vlastné závislosti, často rekurzívnym spôsobom.<br />
* '''View Unit Information''': <br />
* '''Toggle form / unit view F12''': Prepína zobrazenie Formulár/Zdrojový kód formulára. Jednoduchším spôsobom je stlačenie F12 na klávesnici, ale táto položka menu má rovnaký význam.<br />
* '''Messages''': Okno so správami prekladača, zobrazuje postup úspešného prekladu alebo vypisuje nájdené chyby.<br />
* '''Search Results''': Okno s výsledkom hľadania textu v súboroch.<br />
* '''View Anchor Editor''': <br />
* '''View Component Pallete''': <br />
* '''View IDE Speed buttons''': <br />
* '''Debug windows''': pop-up menu s niekoľkými voľbami pre činnosť a konfiguráciu Debuggera. [[#The_Debugger|debugger]] je popísaný ďalej.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Project ====<br />
<div class="floatright"> [[Image:ProjectMenu.png]] </div><br />
* '''New Project''': Vytvorí nový projekt a poskytuje možnosť zvoliť typ projektu.<br />
* '''New Project from file''': Umožní vytvoriť nový projekt z existujúceho súboru.<br />
* '''Open Project''': Otvorí projekt, ktorý už bol vytvorený a uložený. Dialóg ponúkne zoznam súborov Lazarus Project Information (.lpi), z ktorých si môžete vybrať.<br />
* '''Open Recent Project''': Otvorí projekt zo zoznamu naposledy spracovávaných projektov.<br />
* '''Close Project''':<br />
* '''Save Project''': Obdoba File -> Save: uloží všetky súbory aktuálneho projektu; ak ešte neboli uložené, ponúkne dialóg na zadanie mena (ako Save Project As...).<br />
* '''Save Project As...''': Požiada meno súboru pre uloženie projektu. Ponúkne prednastavené meno súboru Project1.lpi, ale môžete si zvoliť vlastné. Lazarus nedovoľuje použiť rovnaké meno súboru pre súbor projektu a súbor jednotky. Viz [[Lazarus Tutorial/sk#Súbory_Lazarus| nižšie]]).<br />
* '''Publish Project''': Vytvorí kópiu celého projektu. Bežný adresár projektu obsahuje veľa informácií, ktoré nie je potrebné publikovať (informácie o session, súbory .ppu, .o, .exe. Publish Project vytvorí súbor .lpi obsahujúci len základné informácie a do kópie presunie len zdrojové kódy, zo všetkych podadresárov. V dialógu môžete nastaviť filter exclude/include a spôsob kompresie výstupného archívu. Viz [[Lazarus IDE Tools/sk| Nástroje IDE Lazarus]]<br />
* '''Project Inspector''': pop-up dialóg so stromovou štruktúrou súborov aktuálneho projektu. Dovoľuje pridať, odstrániť alebo otvoriť zvolené súbory alebo zmeniť vlastnosti projektu.<br />
* '''Project Options...''': pop-up dialóg s voľbami nastavenia projektu (titulok, meno cieľového súboru), Forms (dovoľuje výber z dostupných formulárov, a ich nastavenie Auto-create) a Info (určuje, či editačné informácie majú byť uložené pre zatvárané súbory, alebo len pre súbory projektu).<br />
* '''Compiler options ...''': Konfigurácia prekladača, zahŕňa záložky: '''Paths''' definícia ciest hľadania jednotiek, include súborov, knižníc... ako aj voľbu pomocného typu formulára (gtk, gnome, win32); '''Parsing''' voľba pravidiel pre syntaktickú analýzu programov, '''Code''' voľby optimalizácie pre rýchlejšie alebo pomalšie programy, výber cieľového procesora, veľkosti haldy atď; '''Linking''' voľby použitia ladenia, statických alebo dynamických knižníc atď; '''Messages''' typy správ, generované pri výskyte chyby; '''Other''' určenie predvoleného konfiguračného súboru (fpc.cfg) alebo iného súboru; '''Inherited''' stromový diagram ukazujúci voľby zdedené z už zahrnutých jednotiek; '''Compilation''' dovoľuje zadať príkazy vykonávané pred/po spustení prekladača a použitie súborov Make.<br />
* '''Add editor file to Project''': Do projektu pridá súbor, ktorý je práve upravovaný.<br />
* '''Remove from Project''': pop-up menu na odstránenie súboru z projektu.<br />
* '''View Source''': Bez ohľadu na to, ktorý súbor je práve upravovaný, zobrazí základný programový súbor (.dpr) alebo základný súbor .pas, ak .dpr neexistuje.<br />
<br />
==== Menu Run ====<br />
<div class="floatright"> [[Image:RunMenu.png]] </div><br />
* '''Build''': Prekladá súbory projektu, ktoré boli zmenené od posledného prekladu.<br />
* '''Build all''': Prekladá všetky súbory projektu, bez ohľadu na to, či boli alebo neboli zmenené.<br />
* '''Quick compile''':<br />
* '''Abort build''': Zastaví proces prekladu, ktorý je spustený - či už sa spamätáte, že máte niečo zle a chcete zastaviť preklad, alebo systém pracuje veľmi dlho a niečo je obvykle zle.<br />
* '''Run''': Obvyklý spôsob spustenia prekladača a, ak je preklad úspešný, spustenia aplikácia. Lazarus uloží kópie súborov, potom spustí prekladač a linker, potom začne vykonávať finálny programový súbor (.exe).<br />
* '''Pause''': Preruší vykonávanie aktuálne bežiaceho programu. Tým vám umožní skontrolovať akýkoľvek výstup, ktorý bol generovaný; vykonávanie môže pokračovať opätovným vybratím Run.<br />
* '''Step into''': Used in conjunction with the debugger, causes execution of the program one step at a time up to a bookmarked point in the source.<br />
* '''Step over''': Causes stepwise execution up to the statement marked, then skips the marked statement, and continues execution at normal speed. Useful in trying to isolate a statement that introduces a logical error.<br />
* '''Run to cursor''': Spôsobí vykonávanie programu normálnou rýchlosťou (tj. nie jeden príkaz naraz) pokiaľ nedôjde po príkaz, na ktorom je umiestnený kurzor; potom zastaví. Pokračovanie vykonávania normálnou rýchlosťou dosiahnete zvolením '''Run'''.<br />
* '''Stop''': Spôsobí zastavenie vykonávania bežiaceho programu. Nasledujúce zvolenie '''Run''' nepokračuje vo vykonávaní, ale spustí program od začiatku (ak treba i s prekladom).<br />
* '''Run Parameters''': Otvorí viacstránkové pop-up okno, v ktorom môžete tadať voľby a parametre príkazového riadku pre spustenie programu; výber zobrazenia spusteného programu (tj. môžete použiť vzdialený X terminál terminal v Linuxe); môžete prepísať niektoré systémové premenné.<br />
: Veľmi zaujímavou možnosťou tohoto sub-menu je aktivácia okna terminálu pre zobrazenie vstupu/výstupu konvenčnej konzoly Pascalu. Ak pracujete na konzolovom programe Pascalu, (tj. nepoužijete pre program GUI s formulármi, tlačítkami...), potom môžete zaškrtnúť políčko "Use launching application". Keď to nastavíte prvý krát a skúsite sekvenciu Compile/Run, asi dostanete divoké hlásenie hovoriace<br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied".<br />
: Ak toto nastane, potrebujete zmeniť prístupové práva príslušného súboru; možno to budete musieť urobiť ako root (administrator). Po tomto, sa pri každom spustení programu objaví konzolové okno, v ktorom sa budú obajovať všetky vaše textové vstupy/výstupy (readln, writeln ...).<br />
: Po skončení práce vášho programu sa objaví na obrazovke správa "Press enter". Takto celý výstup generovaný vašim programom ostane na obrazovke, aby ste mali šancu prečítať si ho a okno bude zatvorené až po stlačení 'enter'.<br />
: '''Poznámka:''' keďže v aktuálnej verzii nie je pripravený príkaz konzoly pre používateľov Windows. Zatiať Lazarus team odkazuje, že musí pracovať nasledujúci príkaz (vo WinXP)<br />
C:\Windows\system32\cmd.exe /C ${TargetCmdLine}<br />
* '''Reset debugger''': Obnovuje debugger do jeho pôvodného stavu, všetky ladiace body a hodnoty premenných... sú zabudnuté.<br />
* '''Build file''': Preloží súbor, ktorý je aktuálne otvorený v Editre zdrojového kódu.<br />
* '''Run file''': Preloží, spojí a spustí aktuálne otvorený súbor. <br />
* '''Configure Build + Run File''': Otvorí viacstránkové okno s voľbami, ktoré nastavia preklad práve tohoto súboru pri výbere '''Build Project''', dovolia výber pracovného adresára, použitie rôznych makier... Potom preloží a spustí súbor.<br />
: Tieto posledné tri voľby umožňujú otvoriť (a spravovať) testovací projekt. Použite File -> Open pre otvorenie súboru .lpr a v nasledujúcom dialógu stlačte cancel pre otvorenie tohoto súboru ako "normálneho zdrojového" súboru.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Components ====<br />
* '''Open Package''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png zoznam nainštalovaných balíčkov], s možnosťou [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png otvoriť jeden alebo viac z nich], alebo výber rôznych všeobecných volieb alebo volieb prekladača.<br />
* '''Open Package File''': Otvorí jeden zo súborov vo zvolenom balíčku.<br />
* '''Open package of current unit''': <br />
* '''Open Recent Package''': Ponúkne zoznam naposledy otvorených balíčkov.<br />
* '''Add Active Unit to Package''': Pridá aktuálny súbor (otvorený v editore) do balíčka.<br />
* '''Package Graph''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graf vzťahov] jednotlivých balíčkov, ktoré sú používané (ak nepoužívate žiadny iný balíček, budú zobrazené balíčeky Lazarus, FCL a LCL).<br />
* '''Configure custom components''': táto položka už nie je...<br />
<br />
==== Menu Tools ====<br />
<div class="floatright"> [[Image:ToolsMenu.png]] </div><br />
* '''Configure custom tools''': Umožňuje užívateľovi pridať do nástrojov rôzne externé nástroje (zvyčajne makrá).<br />
* '''Project templates options''': <br />
* '''Quick syntax check''': Vykoná rýchlu kontrolu syntaxe vášho zdrojového kódu bez skutočného prekladu. Základný krok pri vývoji veľkých alebo komplikovaných programov, ak nechcete mrhať čas prekladom chybného kódu. <br />
* '''Guess unclosed block''': Užitočný nástroj, ak máte zložitú alebo vnorenú blokovú štruktúru a chcete niekde nájsť '''end'''.<br />
* '''Guess misplaced IFDEF/ENDIF''': Užitočné, ak ak máte zložitú alebo vnorenú štruktúru makra a potebujete nájsť direktívu ENDIF. <br />
* '''Make resource string''': Z vybratého reťazca robí zdrojový reťazec (''resource string'') jeho umiestnením v sekcii resourcestrings. Výhodou zdrojových reťazcov je, že môžu byť zmenené bez poteby rekompilácie projektu!<br />
* '''Diff''': Umožňuje porovnanie dvoch súborov (alebo dvoch verzií rovnakého súboru) a nájdenie rozdielov. Poskytuje voľby na ignorovanie prázdneho miesta na začiatku alebo konci riadkov alebo rôznych zakončení riadkov (CR+LF a LF). Užitočné na kontrolu, či boli urobené zmeny od poslednej aktualizácie CVS atd.<br />
* '''Check LFM file in editor''': Umožňuje kontrolu súboru LFM, ktorý obsahuje nastavenia aktuálneho formulára.<br />
* '''Convert Delphi unit to Lazarus unit''': Pomáha pri prenose aplikácií Delphi do Lazarus; robí potrebné zmeny v zdrojovom súbore. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] a [[Code Conversion Guide]].<br />
* '''Convert DFM file to LFM''': Pre prenos z Delphi do Lazarus. Konvertuje súbory Form Description z Delphi do Lazarus. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] and [[Code Conversion Guide]].<br />
* '''Build Lazarus''': Spúšťa znovuzostavenie Lazarus z naposledy stiahnutých alebo aktualizovaných súborov CVS (proces môžete sledovať v okne '''Messages''').<br />
* '''Configure "Build Lazarus"''': Umožňuje určiť, ktoré časti Lazarus budú znova zostavené a ako. Napríklad, môžete nastaviť, že bude preložená len LCL alebo všetko okrem príkladov. Môžete nastaviť ktoré rozhranie LCL použiť a môžete nastaviť cieľový operačný systém, či nastaviť iný cieľový adresár. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Environment ====<br />
<div class="floatright"> [[Image:EnvironmentMenu.png]] </div><br />
* '''Environment options''': viacstránkové okno so záložkami pre<br />
** '''Files''' - cesty k predvolenému adresáru, prekladaču, zdrojovému adresáru a dočasnému adresáru pre prekladanie;<br />
** '''Desktop''' - voľby pre jazyk, správanie automatického ukladania, ukladanie vlastností pracovnej plochy, hinty pre paletu komponentov a speed tlačítka;<br />
** '''Windows''' - zadanie veľkosti a správania rôznych okien;<br />
** '''Form Editor''' - výber farieb pre editovanie formulárov;<br />
** '''Object Inspector''' - výber farieb a veľkosti položiek;<br />
** '''Backup''' - udáva ako zálohovať súbory pri úpravách;<br />
** '''Naming''' - udáva príponu názvov súborov Pascalu ('.pp' alebo '.pas'), či sa majú ukladať malými písmenami, či vykonávať automatické mazanie alebo premenovanie.<br />
* '''Editor options''': viacstránkové okno so záložkami pre<br />
** '''General''' - určuje správanie ako automatické odsadenie, zvýrazňovanie zátvoriek, drag-drop upravovanie, posúvanie, zvýrazňovanie syntaxe, zobrazovanie hintov, veľkosť odsadenia bloku a tabulátora, hranicu Undo;<br />
** '''Display''' - voľby pre zobrazovanie čísel riadkov, zobrazovanie guttera, veľkosť a typ fontu editora a okno so zobrazením farieb rôznych typov syntaxe, ako komentáre, značky, direktívy, chyby a ladiace body;<br />
** '''Key Mappings''' - voľby pre výber schémy Lazarus alebo Turbo Pascal;<br />
** '''Color''' - umožňuje nastaviť farebnú schému textu pre viac typov jazyka, ako Object Pascal, C++, Perl, HTML, XML a skripty shellu. Zobrazuje aj ukážkový panel (pre zvolený jazyk); <br />
** '''Code Tools''' - umožňuje výber funkcií ako Identifier Completion, tooltips, zadanie šablón názvov súborov, šablóny pre dokončovanie kódu.<br />
* '''Debugger Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - voľby debugera: bez, GNU debugger (gdb) alebo gdb cez SSH, zadanie vyhľadávacej cesty a volieb pre zvolený debugger;<br />
** '''Event log''' - nastavenie, či zmazať log pri spustení a ktoré správy zobrazovať;<br />
** '''Language Exceptions''' - výber výnimiek, ktoré budú ignorované;<br />
** '''OS Exceptions''' - umožňuje pridať isté signály, ktoré aplikuje na aktuálny operačný systém.<br />
* '''Code Tool Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - zadanie ďalších ciest pre hľadanie zdrojových súborov a určenie metódy Jumping Method;<br />
** '''Code Creation''' - určuje, či je vytváraný kód pridaný pred alebo za určitú funkciu;<br />
** '''Words''' - určuje, či sú kľúčové slová Pascal zadávané malými alebo veľkými písmenami, alebo s veľkými počiatočnými písmenami;<br />
** '''Line Splitting''' - zavádza pravidlá zalamovania riadkov (pred alebo po interpunkčných znamienkach, za kľúčovým slovom atď);<br />
** '''Space''' - určuje či sú medzery automaticky pridané alebo za určité syntaktické črty, ako kľúčové slová, alebo interpunkčné značky. <br />
* '''Code Tools Defines Editor''':<br />
* '''Re-scan FPC Source directory''' Znova prechádza adresár. Lazarus používa zdrojové kódy FreePascal na generovanie správnych obslúh udalostí a pri hľadaní deklarácií. Ak niekto zmení adresár v nastavení prostredia, potom je tento adresár znova prehľadaný, aby bolo zaistené, že Lazarus používa verziu uchovanú v danom umiestnení. Ale ak bol tento adresár zmenený a Lazarus nebol o tom informovaný, potom sa môžu objaviť chyby pri navrhovaní formulárov alebo vykonaním "Find declaration". Ak sa stretnete s touto chybou, môžete urobiť dve veci:<br />
*# skontrolovať nastavenie zdrojového adresára vo voľbách prostredia.<br />
*# znova prehľadať zdrojový adresár FreePascal.<br />
<br />
==== Menu Windows ====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Obsahuje zoznam aktuálne otvorených súborov a dostupných okien, ako '''Source Editor''', '''Object Inspector''', či '''Project Inspector'''. Kliknutím na názov jedného z okien je okno vyvolané do popredia a získava zameranie.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Help ====<br />
* '''Online Help''' otvorí okno prehliadača so súborom c:/lazarus/docs/index.html, ktoré obsahuje obrázok bežiacej cheetah a niekoľko odkazov nafew links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' umožňuje nastaviť prehliadač a databázy, z ktorých budú čítané informácie nápovedy. Tieto voľby dovoľujú užívateľovi zadať jeden z on-line dokumentov na webovej stránke Lazarus-CCR, niektoré ďalšie webové stránky obsahujúce dokumenty, alebo lokálne umiestnenie dokumentácie. Predvolene, ak umiestnite kurzor nad kľúčové slovo FCL alebo RunTime Library (ale nie LCL) a potom stlačíte <<F1>> dostanete sa na príslušnú stránku.<br />
* '''About Lazarus''' Zobrazí pop-up box s informáciami o Lazarus. <br />
<br />
Časom tu bude úplný on-line Help, s informáciami o syntaxe Pascalu, o použití IDE, o používaní, úpravách a tvorbe komponentov a tipy ako urobiť niektoré úlohy. Táto časť sekcie Dokumentácia (to čo teraz čítate) predstavuje začiatok procesu. '''Potrebujeme spolupracovníkov, ktorí sú ochotní pomôcť: Editácia WiKi je veľmo jednoduchá.'''<br />
<br />
== Paleta komponentov ==<br />
Panel 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).<br />
<br />
Ak 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.<br />
<br />
V 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.<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
: ''Najčastejšie používané komponenty''<br />
<center>[[Image:Component_Palette_Standart.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tmainmenu.html TMainMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tpopupmenu.html TPopupMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tbutton.html TButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlabel.html TLabel], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tedit.html TEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tmemo.html TMemo], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/ttogglebox.html TToggleBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcheckbox.html TCheckBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tradiobutton.html TRadioButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlistbox.html TListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcombobox.html TComboBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tscrollbar.html TScrollBar], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tgroupbox.html TGroupBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tstatictext.html TStaticText], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tradiogroup.html TRadioGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tcheckgroup.html TCheckGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpanel.html TPanel], [http://lazarus-ccr.sourceforge.net/docs/lcl/actnlist/tactionlist.html TActionList]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
''Ďalšie často používané komponenty:''<br />
<center>[[Image:Component_Palette_Additional.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tbitbtn.html TBitBtn], [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tspeedbutton.html TSpeedButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/timage.html TImage], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tshape.html TShape], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tbevel.html TBevel], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpaintbox.html TPaintBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tnotebook.html TNotebook], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tlabelededit.html TLabeledEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tsplitter.html TSplitter], [http://lazarus-ccr.sourceforge.net/docs/lcl/maskedit/tmaskedit.html TMaskEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/checklst/tchecklistbox.html TCheckListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tscrollbox.html TScrollBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tapplicationproperties.html TApplicationProperties], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tstringgrid.html TStringGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tdrawgrid.html TDrawGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/pairsplitter/tpairsplitter.html TPairSplitter]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[Image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[Image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Niektoré užitočné '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples dialógové]''' procedúry alebo funkcie nenájdete na palete, ale je ľahšie ich volať priamo zo zdrojového kódu.<br />
<br />
Niekoľ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.<br />
<br />
Niektoré 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.<br />
<br />
Vyskúš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!<br />
<br />
* '''Misc'''<br />
<center>[[Image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox<br />
<br />
* '''Data Controls'''<br />
''Komponenty Data-aware, ktoré do zančnej miery replikujú skupiny Standard a Additional, ale sú použiteľné s databázami:''<br />
<center>[[Image:Component_Palette_DataControls.png]]</center><br />
: TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
<br />
* '''Data Access'''<br />
<center>[[Image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
<br />
* '''System'''<br />
<center>[[Image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TTimer TTimer], TIdleTimer, [[doc:fcl/process/tprocess.html|TProcess]]<br />
<br />
* '''SynEdit'''<br />
: ''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 [http://synedit.sourceforge.net synedit na sourceforge].<br />
<br />
<center>[[Image:Component_Palette_SynEdit.png]]</center><br />
: TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pre 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.<br />
<br />
Ak 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.<br />
<br />
== Ako používať základné (Standard), spoločné (Common) a rozšírené komponenty ==<br />
<p>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</p><br />
<p>Veľ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.</p><br />
<p>Pokiaľ 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.</p><br />
<p>Ak však vytvoríte komponentu samy v kóde, je nutné nezabudnúť ju uvoľniť, keď už nie je ďalej potrebná</p><br />
<p>Pokiaľ umiestnite komponentu na Form Designer a pozriete sa na okno Object Inspector, môžete preskúmať a meniť vlastnosti tejto komponenty.</p><br />
<p>Napr. 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.</p><br />
<p>Na 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.</p><br />
<p>Takisto môžete explicitne nastaviť niektoré vlastnosti objektu v kóde (v príslučnej Implementation časti v okne Source Editor), napr.</p><br />
<syntaxhighlight><br />
Form1.Button1.Height := 48;<br />
</syntaxhighlight><br />
<p>Pokiaľ 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</p><br />
<p>Zhrnúť by sa to dalo tak, že obvykle existujú 3 spôsoby, ako nastaviť každú vlastnosť objektu:</p><br />
* použitím myši<br />
* nastavením hodnoty v Object Inspektore<br />
* explicitne napísaním kódu<br />
<p>Komponenty 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.</p><br />
<p>Dodatoč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.</p><br />
<br />
== Ako používať menu ==<br />
V tejto kapitole sa dočítate o vytváraní Menu položiek do formulárov.<br />
<br />
''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.<br />
<br />
''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í.<br />
<br />
Pre 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.<br />
<br />
Zobrazí 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.<br />
<br />
Všetky položky typu ''MenuItems'', ktoré ste vytvorili cez Edit box môžete nastavovať pomocou okna Object Inspector.<br />
<br />
Kaž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.<br />
<br />
Pri 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.<br />
<br />
== Debugger ==<br />
: ''Už len napísať''.<br />
<br />
== Súbory Lazarus ==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridino, [[User:Kirkpatc]] and Tom Lisjac)<br />
<br />
Pri ukladaní projektu budete vyzvaný na zadanie mena pre dva súbory: <br />
'''xxx.pas''' a '''yyy.lpr'''<br />
(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.<br />
<br />
Takž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. <br />
<br />
Toto bude výsledok:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Nezabudnite, že adresár môže obsahovať veľa ďalších súborov, ktoré ste už uložili predtým.<br />
<br />
Poznámky o každom súbore:<br />
<br />
'''again.exe:'''<br />
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.<br />
<br />
'''again.lpi:'''<br />
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.<br />
<br />
'''again.lpr:'''<br />
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.<br />
<br />
'''againu.lfm:'''<br />
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.<br />
<br />
'''again.lrs:'''<br />
Vygenerovaný resource súbor. Všimnite si, že to nie je súbor Windows resource.<br />
<br />
'''againu.pas:'''<br />
Jednotka, obsahujúce kód formulára.<br />
<br />
'''again.ppu:'''<br />
Preložená jednotka.<br />
<br />
'''ppas.bat:'''<br />
Jednoduchý skript, ktorý linkuje program na produkciu exe. Ak je preklad úspešný, je zmazaný prekladačom.<br />
<br />
== Spolupracovníci a zmeny ==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* 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]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* 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]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* 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]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]<br />
* Preklad z anglického originálu [[Lazarus Tutorial]] a doplnenie obrázkov Palety komponentov. 25.marca 2005 [[User:Slavko]]<br />
* Aktualizácia slovenské preklady z anglického originálu [[Lazarus Tutorial]]. 24.decembra 2008 [[User:Adamm]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/sk&diff=98180Lazarus Tutorial/sk2015-12-09T12:43:38Z<p>Trsek: /* Menu Environment */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
== Úvod ==<br />
Lazarus je free a open source vývojový nástroj pre prekladač FreePascal (Object Pascal), ktorý je tiež free a open source. [http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg IDE Lazarus] 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.<br />
<br />
== Začnite - Váš prvý program Lazarus! ==<br />
<br />
(Vďaka [[User:Kirkpatc]])<br />
<br />
Zí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.<br />
<br />
Na 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'.<br />
<br />
Teraz 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:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
</syntaxhighlight><br />
<br />
Stlač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:<br />
<syntaxhighlight><br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
</syntaxhighlight><br />
<br />
Opäť 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.<br />
<br />
Objavia 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.<br />
<br />
Skú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'!!<br />
<br />
Teraz 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.<br />
<br />
Svoju prácu môžete teraz uložiť (a často!!) zvolením Project > Save As > vyše_zvolené_meno_súboru.pas.<br />
<br />
=== Druhá časť ===<br />
Znova 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.<br />
<br />
Upravte svoj kód, aby vyzeral takto:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag =0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
</syntaxhighlight><br />
<br />
Uložte svoju prácu, preložte a spusťte. Ľavé tlačítko bude teraz prepínať medzi dvoma alternatívnymi návestiami.<br />
<br />
Zvyšok je na vás!<br />
<br />
Ak 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]].<br />
<br />
== Editor ==<br />
Pri prvom spustení IDE Lazarus sa na vašej pracovnej ploche objaví niekoľko samostatných, nespojených alebo plávajúcich okien.<br />
<br />
Prvé 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.<br />
<br />
<center>[[Image:LazMain_GTK2.png]]</center><br />
<br />
V 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.<br />
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).<br />
<br />
Pod základným oknom IDE Lazarus sa ešte vľavo obajví okno '''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg Object Inspector]''' a vedľa neho okno '''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg Editora zdrojového kódu]''' (Lazarus Source Editor). Môže sa objaviť ešte jedno menšie okno, nazvané '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', 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.<br />
<br />
Keď 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.<br />
<br />
Počas práce môžu byť zobrazené i ďalšie okná, ako: the '''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg Project Inspector]''', 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.<br />
<br />
=== Základné menu ===<br />
(Main Menu)<br />
<br />
Riadok základného menu obsahuje nasledujúce položky:<br />
<br />
<u>F</u>ile <u>E</u>dit <u>S</u>earch <u>V</u>iew <u>P</u>roject <u>R</u>un <u>C</u>omponents <u>T</u>ools E<u>n</u>vironment <u>W</u>indows <u>H</u>elp<br />
<br />
Ako je zvykom, položky môžu bať vybraté umiestnením myši nad položku menu a kliknutím ľavým tlačítkom myši alebo stlačením Alt-F na klávesnici (základné okno musí mať fokus, ak ho nemá stláčajte opakovane TAB na prepínanie fokusu medzi oknami, kým nie je titulkový pruh uíkladného okna zvýraznený farbou).<br />
<br />
==== Menu File ====<br />
<div class="floatright"> [[Image:FileMenu.png]] </div><br />
* '''New Unit''': Vytvorí nový súbor jednotky (zdrojový kód Pascal).<br />
* '''New Form''': Vytvorí nový formulár: vrátane pripojeného zdrojového súboru Pascal. <br />
* '''New ...''': Poskytuje ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg pop-up menu box]) s rôznymi typmi nových dokumentov.<br />
* '''Open''': Otvorí dialóg pre otvorenie existujúceho súboru. <br />
* '''Revert''': Ruší vykonané editácie a obnovuje súbor do pôvodného stavu. <br />
* '''Open Recent''': Zoznam naposledy otvorených súborov. <br />
* '''Save''': Uloží aktuálny súbor. Ak súbor ešte nemá meno, správa sa ako Save As.<br />
* '''Save As''': Umožňuje vybrať adresár a meno pre uloženie aktuálneho súboru.<br />
* '''Save ALL''': <br />
* '''Close''': Zatvorí aktuálny súbor, spýtajúc sa na uloženie vykonaných úprav.<br />
* '''Close all editor files''': Zatvorí všetky aktuálne otvorené súbory, spýtajúc sa na uloženie úprav.<br />
* '''Clean directory''': Otvorí dialóg s nastaviteľnými filtrami, pre odstránenie súborov z aktuálneho adresára. Užitočné pre odstránenie súborov .bak a zvyškov projektov Delphi.<br />
* '''Print''': Vytlačí zvolený súbor na tlačiarni systému. Táto položka menu sa predvolene neobjavuje, ale najprv je potrebné nainštalovať $Lazdir/components/printers/design/printers4lazide.pas a opäť preložiť IDE.<br />
* '''Restart''': <br />
* '''Quit''': Zatvorí Lazarus, spýtajúc sa na uloženie vykonaných úprav. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Edit ====<br />
<div class="floatright"> [[Image:EditMenu.png]] </div><br />
* '''Undo''': Vrátenie poslednej editovanej akcie, ponechajúc Editor v stave tesne pred ňou.<br />
* '''Redo''': Opakovanie poslednej akcie, ktorá bola vrátená pomocou Undo.<br />
* '''Cut''': Vystrihne vybraný text a uiestni ho do schránky.<br />
* '''Copy''': Prekopíruje vybratý text do schránky. <br />
* '''Paste''': Vloží obsah schránky na pozíciu kurzora. Ak bol vybratý text, prepíše ho.<br />
* '''Indent selection''': Posúva odsadenie vybratého textu doprava o rozsah zadaný v nastavení Environment -> Editor options -> General -> Block indent. Funkciaje užitočná pre formátovanie zdrojovéhokódu a vyvorenie blokovej štruktúry.<br />
* '''Unindent selection''': Odstraňuje jednu úroveň odsadenia, posunúc text doľava o rozsah zadaný v nastavení Editora Block indent. <br />
* '''Enclose selection''': Otvára pop-up menu s voľbami pre logické zakončenie vybratého textu (begin ... end; try ... except; try ... finally; repeat ... until; { ... } atď).<br />
* '''Uppercase selection''': Konvertuje vybratý text na veľké písmená.<br />
* '''Lowercase selection''': Konvertuje vybratý text na malé písmená.<br />
* '''Tabs to spaces in selection''': Konveruje všetky tabulátory vybratého textu na medzery, podľa nastavenia Environment -> Editor options -> General -> Tab widths. Počet medzier nemá fixnú veľkosť, ale je to potrebný počet medzier na zaplnenie potrebnej šírky tabelátora medzerami.<br />
* '''Break lines in selection''': Zalomí riadok vybratého textu, ktorý presahuje 80 znakov alebo počet zadaný v nastavení Environment -> Editor options -> Display -> Right Margin, riadok je zalomený na hranici slova a pokračuje na nasledujúcom riadku.<br />
* '''Comment selection''': Vloží značky komentára // na každý riadok vybratého textu.<br />
* '''Uncomment selection''': Odstráni značky komentára.<br />
* '''Sort selection''': Zoradí riadky (alebo slová v odstavci) podľa abecedy; voľby pre smer radenia, citlivosť na veľkosť písmen. Uprostred zrojového kódu, samozrejme, to neprichádza do úvahy, ale ak máte zoznam, ktorý treba zoradiť, oceníte tento trik.<br />
* '''Select''': Umožní výber blokov textu. Voľby zahŕňajú Vybrať všetko, vybrať po brace, vybrať odstavec alebo riadok, atď.<br />
* '''Insert from character map''': Umožní vloženie symbolu, ktorý nie je na klávesnici, vybratý z pop-up mapy znakov.<br />
* '''Insert text''': Zobrazí pop-up menu pre vloženie štandartných textov, ako kľúčové slová CVS (Author, Date, Header atď), či poznámku GPL, meno užívateľa, dátum a čas.<br />
* '''Complete code''': Dokončí kód pod kurzorom. Závisí od kontextu a šetrí mnoho času. Napríklad dokončuje triedy, pridaním súkromných premenných, prístupové metódy Get a Set vlastností a pridaním tela metód. Na priradeniach premenných (tj. i:=3;) pridáva deklaráciu premennej. Pri forward deklarovaných procedúrach pridáva telá procedúr. Pri priradení udalostí (OnClick:=) pridáva definíciu a telo metódy. Viď [[Lazarus IDE Tools/sk | Nástroje IDE Lazarus]].<br />
* '''Extract procedure''': Použije vybratý text (príkaz alebo sériu príkazov) na vytvorenie novej procedúry.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Search ====<br />
<div class="floatright"> [[Image:SearchMenu.png]] </div><br />
* '''Find''': Obdoba vlastnosti skoro všetkých grafických editorov: pop-up dialógový box pre zadanie hľadaného textu a volieb hľadania, ako citlivosť na veľkosť písmen, celé slová, začiatok, oblasť a smer hľadania.<br />
* '''Find Next, Find previous''': Pokračuje v hľadaní predtým zvoleného textu, zadaným smerom.<br />
* '''Find in files''': Hľadá textový reťazec v súboroch: pop-up dialóg s voľbami všetky otvorené súbory, všetky súbory v projekte alebo všetky adresáre; umožňuje i zadanie masky pre výber typu súboru.<br />
* '''Replace''': Podobné ako '''Find'''; zobrazí pop-up dialóg s miestom pre zadanie hľadaného reťazca a nahradzujúceho textu a volieb pre citlivosť na veľkosť písmen, smer atď.<br />
* '''Incremental find''': Hľadanie reťazca kým zadávate hľadaný reťazec. Príklad: stlačíte "l" a je zvýraznené prvé "l", ak potom stlačíte "a", editor nájde nasledujúce "la" atď.<br />
* '''Goto line''': Presunie kurzor na zadaný riadok súboru.<br />
* '''Jump back''': Presunie kurzor späť k nasledujúcej záložke (musíte použiť Add jump point to history). Presúva i na záložky iných súborov otvorených v Editore. <br />
* '''Jump forward''': Presunie kurzor vpred na nasledujúcu záložku.<br />
* '''Add jump point to history''': Pridá do súboru záložky alebo skokové body.<br />
* '''View Jump-History''': Ukáže zoznam záložiek v súbore: '''Zatiaľ neimplementované???'''.<br />
* '''Jump to next error''', '''Jump to previous error''': Skoč na na pozíciu nasledujúcej/predchádzajúcej hlásenej chyby v zdrojovom súbore.<br />
* '''Set a free bookmark''': označ riadok, na ktorom je kurzor, ďalšou dostupnou (voľnou) číslovanou záložkou a pridaj ju do zoznamu záložiek. Pozor, vyskakovacie menu (získané kliknutím pravým tlačítkom myši na príslušný riadok zdrojového súboru) poskytuje väčší rozsah možností záložky, umožňujúc zadať číslo záložky, či skočiť na očíslovanú záložku, nie len na nasledujúcu/predchádzajúcu. <br />
* '''Jump to next bookmark''', '''Jump to previous bookmark''': Skoč na nasledujúcu/predchádzajúcu záložku v číselnom poradí.<br />
* '''Find other end of code block''': Ak je kurzor umiestnený na '''begin''', presunie kurzor na príslušný '''end''' a naopak.<br />
* '''Find code block start''': Presunie kurzor na '''begin''' procedúry alebo funkcie, v tele ktorej je umiestnený.<br />
* '''Find Declaration at cursor''': Presunie kurzor na miesto deklarácie zvoleného identifikátora. Môže to byť v rovnakom súbore alebo v inom. Ak nie je otvorený, otvorí ho v Editore (tak ak je procedúra alebo funkcia deklarovaná napr. v <u>classesh.inc </u>, tento bude otvorený v Editore).<br />
* '''Open filename at cursor''': Otvorí súbor, ktorého meno je vybraté kurzorom. Užitočné na zobrazenie <u>Include </u> súborov alebo súborov obsahujúcich iné <u>Jednotky</u> použité v projekte.<br />
* '''Goto include directive''': Ak je kurzor umiestnený v súbore, ktorý je <u>Included</u> v inom súbore, presunie kurzor na miesto v súbore, odkiaľ bol volaný súbor <u>Include</u>.<br />
* '''Find Identifier References''': Poskytuje zoznam všetkých riadkov aktuálneho súboru, projektu alebo pripojených súborov, na ktorých je spomenutý identifikátor. <br />
* '''Rename Identifier''': Umožňuje vývojárovi premenovať identifikátor. Pomocou vyskakovacie menu možno určiť, či sa má premenovanie vykonať len v aktuálnom súbore, v projekte, vo všetkých otvorených alebo pripojených súboroch atď. Dokoncá je možné premenovať aj identifikátory vyskytujúce sa v komentároch. Túto vlastnosť môžete využiť, napríklad, al prekladač hlási, že identifikátor už existuje, takže môžete potebovať nové meno svojho identifikátora.<br />
* '''Procedure List''': Poskytuje zoznam všetkých procedúr a funkcií v aktuálnom súbore, spolu s číslom riadku, kde sú definované.<br />
'''<div style="clear:both;"></div><br />
<br />
==== Menu View ====<br />
Ovládanie zobrazenia rôznych okien a panelov na obrazovke.<br />
<div class="floatright"> [[Image:ViewMenu.png]] </div><br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/ViewMenuSnapshot.png </div><br />
* '''Object Inspector''': Okno, zvyčajne umiestnené na ľavej strane obrazovky, ktoré zobrazuje funkcie formulára, ktorý je na obrazovke. Kliknutím myšou na ktorýkoľvek komponent formulára, spôsobí, že detaily komponentu budú zobrazené v Object Inspector. Na jeho vrchu je panel, ktorý zobrazuje stromovú štruktúru aktuálneho projektu a komponenty formulára môžu byť vybraté aj z tohoto panela. Základný panel má dve záložky, ktoré umožňujú zobraziť '''Properties''' alebo '''Events'''. Výber '''Properties''' zobrazí vlastnosti zvoleného komponentu v dvoch stĺpcoch, ľavý zobrazuje meno vlastnosti a pravý jej hodnotu. Výber '''Events''' zobrazí tiež dva stĺpce, ľavý s menom udalostí priradených ku komponentu a pravý ukazuje akciu, ktorá je výsledkom udalosti (procedúru udalosti). Ak nie je definovaná akcia, kliknutie na tlačítko <div class="box">...</div> spôsobí zobrazenie Editora zdrojového kódu s kurzorom umiestneným na prázdenj deklarácii procedúry, do ktorej môžete zadať svoj kód udalosti.<br />
* '''Source Editor''': Základné okno pre editovanie zdrojového kódu. Jeho správanie je veľmi podobné iným grafickým editorom textu, takže môžete myšou presúvať kurzor nad zobrazeným textom a stlačenie ľavého tlačítka myši počas posúvania vyberie a označí text. Pravým kliknutím zobrazíte kontextové menu, ale ak ste zvyknutý na editory Windows, Gnome alebo KDE, budete márne hľadať zvyčajné funkcie, ako Vystrihnúť, Kopírovať a Vložiť, ale zahŕňa voľby ako '''Find Declaration''' alebo '''Open File at Cursor'''. Na vrchu okna Editora zdrojového kódu je niekoľko záložiek, reprezentujúcich otvorené súbory; kliknutie na jednu z nich vyvolá daný súbor do popredia, takto môžete jednoducho kopírovať zo súboru do súboru a vykonávať bežné editovacie funkcie. Editor zdrojového kódu poskytuje farebné zvýraznenie syntaxe kódu, s rôznymi farbami pre interpunkciu, komentáre, reťazcové konštanty atď. Rovnako zabezpečuje automatické odsadenie riadkov kódu. Funkcie a vzhľad Editora zdrojového kódu sú nastaviteľné cez menu Environment -> Editor options a zvolením jednej z viacerých záložiek.<br />
* '''Code Explorer''': Okno, zvyčajne umiestnené na pravej strane pracovnej plochy, ktoré v stromovej forme zobrazuje štruktúru kódu aktuálnej jednotky alebo programu. Ak zmeníte súbor zobrazený v okne Editora zdrojového kódu, musíte zvoliť tlačítko Refresh na zobrazenie novej štruktúry súboru. Okno po otvorení zvyčajne zobrazuje meno jednotky a vetvy pre časti Interface a Implementation, ale kliknutím na <div class="box">+</div> vľavo od vetvy otvoríte podvetvy a vetvičky :-), do úplných detailov samotných konštánt, typov a premenných, ako aj deklarácií procedúr a funkcií.<br />
* '''Units...''': pop-up dialóg so zoznamom súborov jednotiek aktuálneho projektu, ktorý umožní vybrať súbor Zobrazený v Editore zdrojového kódu. Zaškrtnutím voľby Multi select môžete vybrať a otvoriť viac jednotiek naraz, ale len jedna bude zobrazená. Táto položka menu je lepšia ako položka Project -> Project Inspector, ale zobrazuje len zoznam jednotiek a dovoľuje ich otvoriť.<br />
* '''Forms...''': pop-up dialóg so zoznamom formulárov aktuálneho projektu a umožní vybrať jeden alebo viac z nich pre zobrazenie.<br />
* '''View Unit Dependencies''': pop-up dialóg, ktorý zobrazí stromovú štruktúru závislostí aktuálne otvorenej jednotky. Mnoho súborov zobrazených v tomto okne má svoje svoje vlastné <div class="box">+</div> ,ktoré umožňujú preskúmať ich vlastné závislosti, často rekurzívnym spôsobom.<br />
* '''View Unit Information''': <br />
* '''Toggle form / unit view F12''': Prepína zobrazenie Formulár/Zdrojový kód formulára. Jednoduchším spôsobom je stlačenie F12 na klávesnici, ale táto položka menu má rovnaký význam.<br />
* '''Messages''': Okno so správami prekladača, zobrazuje postup úspešného prekladu alebo vypisuje nájdené chyby.<br />
* '''Search Results''': Okno s výsledkom hľadania textu v súboroch.<br />
* '''View Anchor Editor''': <br />
* '''View Component Pallete''': <br />
* '''View IDE Speed buttons''': <br />
* '''Debug windows''': pop-up menu s niekoľkými voľbami pre činnosť a konfiguráciu Debuggera. [[#The_Debugger|debugger]] je popísaný ďalej.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Project ====<br />
<div class="floatright"> [[Image:ProjectMenu.png]] </div><br />
* '''New Project''': Vytvorí nový projekt a poskytuje možnosť zvoliť typ projektu.<br />
* '''New Project from file''': Umožní vytvoriť nový projekt z existujúceho súboru.<br />
* '''Open Project''': Otvorí projekt, ktorý už bol vytvorený a uložený. Dialóg ponúkne zoznam súborov Lazarus Project Information (.lpi), z ktorých si môžete vybrať.<br />
* '''Open Recent Project''': Otvorí projekt zo zoznamu naposledy spracovávaných projektov.<br />
* '''Close Project''':<br />
* '''Save Project''': Obdoba File -> Save: uloží všetky súbory aktuálneho projektu; ak ešte neboli uložené, ponúkne dialóg na zadanie mena (ako Save Project As...).<br />
* '''Save Project As...''': Požiada meno súboru pre uloženie projektu. Ponúkne prednastavené meno súboru Project1.lpi, ale môžete si zvoliť vlastné. Lazarus nedovoľuje použiť rovnaké meno súboru pre súbor projektu a súbor jednotky. Viz [[Lazarus Tutorial/sk#Súbory_Lazarus| nižšie]]).<br />
* '''Publish Project''': Vytvorí kópiu celého projektu. Bežný adresár projektu obsahuje veľa informácií, ktoré nie je potrebné publikovať (informácie o session, súbory .ppu, .o, .exe. Publish Project vytvorí súbor .lpi obsahujúci len základné informácie a do kópie presunie len zdrojové kódy, zo všetkych podadresárov. V dialógu môžete nastaviť filter exclude/include a spôsob kompresie výstupného archívu. Viz [[Lazarus IDE Tools/sk| Nástroje IDE Lazarus]]<br />
* '''Project Inspector''': pop-up dialóg so stromovou štruktúrou súborov aktuálneho projektu. Dovoľuje pridať, odstrániť alebo otvoriť zvolené súbory alebo zmeniť vlastnosti projektu.<br />
* '''Project Options...''': pop-up dialóg s voľbami nastavenia projektu (titulok, meno cieľového súboru), Forms (dovoľuje výber z dostupných formulárov, a ich nastavenie Auto-create) a Info (určuje, či editačné informácie majú byť uložené pre zatvárané súbory, alebo len pre súbory projektu).<br />
* '''Compiler options ...''': Konfigurácia prekladača, zahŕňa záložky: '''Paths''' definícia ciest hľadania jednotiek, include súborov, knižníc... ako aj voľbu pomocného typu formulára (gtk, gnome, win32); '''Parsing''' voľba pravidiel pre syntaktickú analýzu programov, '''Code''' voľby optimalizácie pre rýchlejšie alebo pomalšie programy, výber cieľového procesora, veľkosti haldy atď; '''Linking''' voľby použitia ladenia, statických alebo dynamických knižníc atď; '''Messages''' typy správ, generované pri výskyte chyby; '''Other''' určenie predvoleného konfiguračného súboru (fpc.cfg) alebo iného súboru; '''Inherited''' stromový diagram ukazujúci voľby zdedené z už zahrnutých jednotiek; '''Compilation''' dovoľuje zadať príkazy vykonávané pred/po spustení prekladača a použitie súborov Make.<br />
* '''Add editor file to Project''': Do projektu pridá súbor, ktorý je práve upravovaný.<br />
* '''Remove from Project''': pop-up menu na odstránenie súboru z projektu.<br />
* '''View Source''': Bez ohľadu na to, ktorý súbor je práve upravovaný, zobrazí základný programový súbor (.dpr) alebo základný súbor .pas, ak .dpr neexistuje.<br />
<br />
==== Menu Run ====<br />
<div class="floatright"> [[Image:RunMenu.png]] </div><br />
* '''Build''': Prekladá súbory projektu, ktoré boli zmenené od posledného prekladu.<br />
* '''Build all''': Prekladá všetky súbory projektu, bez ohľadu na to, či boli alebo neboli zmenené.<br />
* '''Quick compile''':<br />
* '''Abort build''': Zastaví proces prekladu, ktorý je spustený - či už sa spamätáte, že máte niečo zle a chcete zastaviť preklad, alebo systém pracuje veľmi dlho a niečo je obvykle zle.<br />
* '''Run''': Obvyklý spôsob spustenia prekladača a, ak je preklad úspešný, spustenia aplikácia. Lazarus uloží kópie súborov, potom spustí prekladač a linker, potom začne vykonávať finálny programový súbor (.exe).<br />
* '''Pause''': Preruší vykonávanie aktuálne bežiaceho programu. Tým vám umožní skontrolovať akýkoľvek výstup, ktorý bol generovaný; vykonávanie môže pokračovať opätovným vybratím Run.<br />
* '''Step into''': Used in conjunction with the debugger, causes execution of the program one step at a time up to a bookmarked point in the source.<br />
* '''Step over''': Causes stepwise execution up to the statement marked, then skips the marked statement, and continues execution at normal speed. Useful in trying to isolate a statement that introduces a logical error.<br />
* '''Run to cursor''': Spôsobí vykonávanie programu normálnou rýchlosťou (tj. nie jeden príkaz naraz) pokiaľ nedôjde po príkaz, na ktorom je umiestnený kurzor; potom zastaví. Pokračovanie vykonávania normálnou rýchlosťou dosiahnete zvolením '''Run'''.<br />
* '''Stop''': Spôsobí zastavenie vykonávania bežiaceho programu. Nasledujúce zvolenie '''Run''' nepokračuje vo vykonávaní, ale spustí program od začiatku (ak treba i s prekladom).<br />
* '''Run Parameters''': Otvorí viacstránkové pop-up okno, v ktorom môžete tadať voľby a parametre príkazového riadku pre spustenie programu; výber zobrazenia spusteného programu (tj. môžete použiť vzdialený X terminál terminal v Linuxe); môžete prepísať niektoré systémové premenné.<br />
: Veľmi zaujímavou možnosťou tohoto sub-menu je aktivácia okna terminálu pre zobrazenie vstupu/výstupu konvenčnej konzoly Pascalu. Ak pracujete na konzolovom programe Pascalu, (tj. nepoužijete pre program GUI s formulármi, tlačítkami...), potom môžete zaškrtnúť políčko "Use launching application". Keď to nastavíte prvý krát a skúsite sekvenciu Compile/Run, asi dostanete divoké hlásenie hovoriace<br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied".<br />
: Ak toto nastane, potrebujete zmeniť prístupové práva príslušného súboru; možno to budete musieť urobiť ako root (administrator). Po tomto, sa pri každom spustení programu objaví konzolové okno, v ktorom sa budú obajovať všetky vaše textové vstupy/výstupy (readln, writeln ...).<br />
: Po skončení práce vášho programu sa objaví na obrazovke správa "Press enter". Takto celý výstup generovaný vašim programom ostane na obrazovke, aby ste mali šancu prečítať si ho a okno bude zatvorené až po stlačení 'enter'.<br />
: '''Poznámka:''' keďže v aktuálnej verzii nie je pripravený príkaz konzoly pre používateľov Windows. Zatiať Lazarus team odkazuje, že musí pracovať nasledujúci príkaz (vo WinXP)<br />
C:\Windows\system32\cmd.exe /C ${TargetCmdLine}<br />
* '''Reset debugger''': Obnovuje debugger do jeho pôvodného stavu, všetky ladiace body a hodnoty premenných... sú zabudnuté.<br />
* '''Build file''': Preloží súbor, ktorý je aktuálne otvorený v Editre zdrojového kódu.<br />
* '''Run file''': Preloží, spojí a spustí aktuálne otvorený súbor. <br />
* '''Configure Build + Run File''': Otvorí viacstránkové okno s voľbami, ktoré nastavia preklad práve tohoto súboru pri výbere '''Build Project''', dovolia výber pracovného adresára, použitie rôznych makier... Potom preloží a spustí súbor.<br />
: Tieto posledné tri voľby umožňujú otvoriť (a spravovať) testovací projekt. Použite File -> Open pre otvorenie súboru .lpr a v nasledujúcom dialógu stlačte cancel pre otvorenie tohoto súboru ako "normálneho zdrojového" súboru.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Components ====<br />
* '''Open Package''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png zoznam nainštalovaných balíčkov], s možnosťou [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png otvoriť jeden alebo viac z nich], alebo výber rôznych všeobecných volieb alebo volieb prekladača.<br />
* '''Open Package File''': Otvorí jeden zo súborov vo zvolenom balíčku.<br />
* '''Open package of current unit''': <br />
* '''Open Recent Package''': Ponúkne zoznam naposledy otvorených balíčkov.<br />
* '''Add Active Unit to Package''': Pridá aktuálny súbor (otvorený v editore) do balíčka.<br />
* '''Package Graph''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graf vzťahov] jednotlivých balíčkov, ktoré sú používané (ak nepoužívate žiadny iný balíček, budú zobrazené balíčeky Lazarus, FCL a LCL).<br />
* '''Configure custom components''': táto položka už nie je...<br />
<br />
==== Menu Tools ====<br />
<div class="floatright"> [[Image:ToolsMenu.png]] </div><br />
* '''Configure custom tools''': Umožňuje užívateľovi pridať do nástrojov rôzne externé nástroje (zvyčajne makrá).<br />
* '''Project templates options''': <br />
* '''Quick syntax check''': Vykoná rýchlu kontrolu syntaxe vášho zdrojového kódu bez skutočného prekladu. Základný krok pri vývoji veľkých alebo komplikovaných programov, ak nechcete mrhať čas prekladom chybného kódu. <br />
* '''Guess unclosed block''': Užitočný nástroj, ak máte zložitú alebo vnorenú blokovú štruktúru a chcete niekde nájsť '''end'''.<br />
* '''Guess misplaced IFDEF/ENDIF''': Užitočné, ak ak máte zložitú alebo vnorenú štruktúru makra a potebujete nájsť direktívu ENDIF. <br />
* '''Make resource string''': Z vybratého reťazca robí zdrojový reťazec (''resource string'') jeho umiestnením v sekcii resourcestrings. Výhodou zdrojových reťazcov je, že môžu byť zmenené bez poteby rekompilácie projektu!<br />
* '''Diff''': Umožňuje porovnanie dvoch súborov (alebo dvoch verzií rovnakého súboru) a nájdenie rozdielov. Poskytuje voľby na ignorovanie prázdneho miesta na začiatku alebo konci riadkov alebo rôznych zakončení riadkov (CR+LF a LF). Užitočné na kontrolu, či boli urobené zmeny od poslednej aktualizácie CVS atd.<br />
* '''Check LFM file in editor''': Umožňuje kontrolu súboru LFM, ktorý obsahuje nastavenia aktuálneho formulára.<br />
* '''Convert Delphi unit to Lazarus unit''': Pomáha pri prenose aplikácií Delphi do Lazarus; robí potrebné zmeny v zdrojovom súbore. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] a [[Code Conversion Guide]].<br />
* '''Convert DFM file to LFM''': Pre prenos z Delphi do Lazarus. Konvertuje súbory Form Description z Delphi do Lazarus. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] and [[Code Conversion Guide]].<br />
* '''Build Lazarus''': Spúšťa znovuzostavenie Lazarus z naposledy stiahnutých alebo aktualizovaných súborov CVS (proces môžete sledovať v okne '''Messages''').<br />
* '''Configure "Build Lazarus"''': Umožňuje určiť, ktoré časti Lazarus budú znova zostavené a ako. Napríklad, môžete nastaviť, že bude preložená len LCL alebo všetko okrem príkladov. Môžete nastaviť ktoré rozhranie LCL použiť a môžete nastaviť cieľový operačný systém, či nastaviť iný cieľový adresár. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Environment ====<br />
<div class="floatright"> [[Image:EnvironmentMenu.png]] </div><br />
* '''Environment options''': viacstránkové okno so záložkami pre<br />
** '''Files''' - cesty k predvolenému adresáru, prekladaču, zdrojovému adresáru a dočasnému adresáru pre prekladanie;<br />
** '''Desktop''' - voľby pre jazyk, správanie automatického ukladania, ukladanie vlastností pracovnej plochy, hinty pre paletu komponentov a speed tlačítka;<br />
** '''Windows''' - zadanie veľkosti a správania rôznych okien;<br />
** '''Form Editor''' - výber farieb pre editovanie formulárov;<br />
** '''Object Inspector''' - výber farieb a veľkosti položiek;<br />
** '''Backup''' - udáva ako zálohovať súbory pri úpravách;<br />
** '''Naming''' - udáva príponu názvov súborov Pascalu ('.pp' alebo '.pas'), či sa majú ukladať malými písmenami, či vykonávať automatické mazanie alebo premenovanie.<br />
* '''Editor options''': viacstránkové okno so záložkami pre<br />
** '''General''' - určuje správanie ako automatické odsadenie, zvýrazňovanie zátvoriek, drag-drop upravovanie, posúvanie, zvýrazňovanie syntaxe, zobrazovanie hintov, veľkosť odsadenia bloku a tabulátora, hranicu Undo;<br />
** '''Display''' - voľby pre zobrazovanie čísel riadkov, zobrazovanie guttera, veľkosť a typ fontu editora a okno so zobrazením farieb rôznych typov syntaxe, ako komentáre, značky, direktívy, chyby a ladiace body;<br />
** '''Key Mappings''' - voľby pre výber schémy Lazarus alebo Turbo Pascal;<br />
** '''Color''' - umožňuje nastaviť farebnú schému textu pre viac typov jazyka, ako Object Pascal, C++, Perl, HTML, XML a skripty shellu. Zobrazuje aj ukážkový panel (pre zvolený jazyk); <br />
** '''Code Tools''' - umožňuje výber funkcií ako Identifier Completion, tooltips, zadanie šablón názvov súborov, šablóny pre dokončovanie kódu.<br />
* '''Debugger Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - voľby debugera: bez, GNU debugger (gdb) alebo gdb cez SSH, zadanie vyhľadávacej cesty a volieb pre zvolený debugger;<br />
** '''Event log''' - nastavenie, či zmazať log pri spustení a ktoré správy zobrazovať;<br />
** '''Language Exceptions''' - výber výnimiek, ktoré budú ignorované;<br />
** '''OS Exceptions''' - umožňuje pridať isté signály, ktoré aplikuje na aktuálny operačný systém.<br />
* '''Code Tool Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - zadanie ďalších ciest pre hľadanie zdrojových súborov a určenie metódy Jumping Method;<br />
** '''Code Creation''' - určuje, či je vytváraný kód pridaný pred alebo za určitú funkciu;<br />
** '''Words''' - určuje, či sú kľúčové slová Pascal zadávané malými alebo veľkými písmenami, alebo s veľkými počiatočnými písmenami;<br />
** '''Line Splitting''' - zavádza pravidlá zalamovania riadkov (pred alebo po interpunkčných znamienkach, za kľúčovým slovom atď);<br />
** '''Space''' - určuje či sú medzery automaticky pridané alebo za určité syntaktické črty, ako kľúčové slová, alebo interpunkčné značky. <br />
* '''Code Tools Defines Editor''':<br />
* '''Re-scan FPC Source directory''' Znova prechádza adresár. Lazarus používa zdrojové kódy FreePascal na generovanie správnych obslúh udalostí a pri hľadaní deklarácií. Ak niekto zmení adresár v nastavení prostredia, potom je tento adresár znova prehľadaný, aby bolo zaistené, že Lazarus používa verziu uchovanú v danom umiestnení. Ale ak bol tento adresár zmenený a Lazarus nebol o tom informovaný, potom sa môžu objaviť chyby pri navrhovaní formulárov alebo vykonaním "Find declaration". Ak sa stretnete s touto chybou, môžete urobiť dve veci:<br />
*# skontrolovať nastavenie zdrojového adresára vo voľbách prostredia.<br />
*# znova prehľadať zdrojový adresár FreePascal.<br />
<br />
==== Menu Windows ====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Obsahuje zoznam aktuálne otvorených súborov a dostupných okien, ako '''Source Editor''', '''Object Inspector''', či '''Project Inspector'''. Kliknutím na názov jedného z okien je okno vyvolané do popredia a získava zameranie.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Help ====<br />
* '''Online Help''' otvorí okno prehliadača so súborom c:/lazarus/docs/index.html, ktoré obsahuje obrázok bežiacej cheetah a niekoľko odkazov nafew links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' umožňuje nastaviť prehliadač a databázy, z ktorých budú čítané informácie nápovedy. Tieto voľby dovoľujú užívateľovi zadať jeden z on-line dokumentov na webovej stránke Lazarus-CCR, niektoré ďalšie webové stránky obsahujúce dokumenty, alebo lokálne umiestnenie dokumentácie. Predvolene, ak umiestnite kurzor nad kľúčové slovo FCL alebo RunTime Library (ale nie LCL) a potom stlačíte <<F1>> dostanete sa na príslušnú stránku.<br />
* '''About Lazarus''' Zobrazí pop-up box s informáciami o Lazarus. <br />
<br />
Časom tu bude úplný on-line Help, s informáciami o syntaxe Pascalu, o použití IDE, o používaní, úpravách a tvorbe komponentov a tipy ako urobiť niektoré úlohy. Táto časť sekcie Dokumentácia (to čo teraz čítate) predstavuje začiatok procesu. '''Potrebujeme spolupracovníkov, ktorí sú ochotní pomôcť: Editácia WiKi je veľmo jednoduchá.'''<br />
<br />
== Paleta komponentov ==<br />
Panel 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).<br />
<br />
Ak 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.<br />
<br />
V 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.<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
: ''Najčastejšie používané komponenty''<br />
<center>[[Image:Component_Palette_Standart.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tmainmenu.html TMainMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tpopupmenu.html TPopupMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tbutton.html TButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlabel.html TLabel], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tedit.html TEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tmemo.html TMemo], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/ttogglebox.html TToggleBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcheckbox.html TCheckBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tradiobutton.html TRadioButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlistbox.html TListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcombobox.html TComboBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tscrollbar.html TScrollBar], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tgroupbox.html TGroupBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tstatictext.html TStaticText], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tradiogroup.html TRadioGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tcheckgroup.html TCheckGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpanel.html TPanel], [http://lazarus-ccr.sourceforge.net/docs/lcl/actnlist/tactionlist.html TActionList]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
''Ďalšie často používané komponenty:''<br />
<center>[[Image:Component_Palette_Additional.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tbitbtn.html TBitBtn], [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tspeedbutton.html TSpeedButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/timage.html TImage], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tshape.html TShape], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tbevel.html TBevel], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpaintbox.html TPaintBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tnotebook.html TNotebook], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tlabelededit.html TLabeledEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tsplitter.html TSplitter], [http://lazarus-ccr.sourceforge.net/docs/lcl/maskedit/tmaskedit.html TMaskEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/checklst/tchecklistbox.html TCheckListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tscrollbox.html TScrollBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tapplicationproperties.html TApplicationProperties], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tstringgrid.html TStringGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tdrawgrid.html TDrawGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/pairsplitter/tpairsplitter.html TPairSplitter]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[Image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[Image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Niektoré užitočné '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples dialógové]''' procedúry alebo funkcie nenájdete na palete, ale je ľahšie ich volať priamo zo zdrojového kódu.<br />
<br />
Niekoľ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.<br />
<br />
Niektoré 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.<br />
<br />
Vyskúš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!<br />
<br />
* '''Misc'''<br />
<center>[[Image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox<br />
<br />
* '''Data Controls'''<br />
''Komponenty Data-aware, ktoré do zančnej miery replikujú skupiny Standard a Additional, ale sú použiteľné s databázami:''<br />
<center>[[Image:Component_Palette_DataControls.png]]</center><br />
: TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
<br />
* '''Data Access'''<br />
<center>[[Image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
<br />
* '''System'''<br />
<center>[[Image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TTimer TTimer], TIdleTimer, [[doc:fcl/process/tprocess.html|TProcess]]<br />
<br />
* '''SynEdit'''<br />
: ''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 [http://synedit.sourceforge.net synedit na sourceforge].<br />
<br />
<center>[[Image:Component_Palette_SynEdit.png]]</center><br />
: TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pre 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.<br />
<br />
Ak 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.<br />
<br />
== Ako používať základné (Standard), spoločné (Common) a rozšírené komponenty ==<br />
<p>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</p><br />
<p>Veľ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.</p><br />
<p>Pokiaľ 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.</p><br />
<p>Ak však vytvoríte komponentu samy v kóde, je nutné nezabudnúť ju uvoľniť, keď už nie je ďalej potrebná</p><br />
<p>Pokiaľ umiestnite komponentu na Form Designer a pozriete sa na okno Object Inspector, môžete preskúmať a meniť vlastnosti tejto komponenty.</p><br />
<p>Napr. 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.</p><br />
<p>Na 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.</p><br />
<p>Takisto môžete explicitne nastaviť niektoré vlastnosti objektu v kóde (v príslučnej Implementation časti v okne Source Editor), napr.</p><br />
<syntaxhighlight><br />
Form1.Button1.Height := 48;<br />
</syntaxhighlight><br />
<p>Pokiaľ 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</p><br />
<p>Zhrnúť by sa to dalo tak, že obvykle existujú 3 spôsoby, ako nastaviť každú vlastnosť objektu:</p><br />
* použitím myši<br />
* nastavením hodnoty v Object Inspektore<br />
* explicitne napísaním kódu<br />
<p>Komponenty 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.</p><br />
<p>Dodatoč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.</p><br />
<br />
== Ako používať menu ==<br />
V tejto kapitole sa dočítate o vytváraní Menu položiek do formulárov.<br />
<br />
''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.<br />
<br />
''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í.<br />
<br />
Pre 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.<br />
<br />
Zobrazí 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.<br />
<br />
Všetky položky typu ''MenuItems'', ktoré ste vytvorili cez Edit box môžete nastavovať pomocou okna Object Inspector.<br />
<br />
Kaž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.<br />
<br />
Pri 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.<br />
<br />
== Debugger ==<br />
: ''Už len napísať''.<br />
<br />
== Súbory Lazarus ==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridino, [[User:Kirkpatc]] and Tom Lisjac)<br />
<br />
Pri ukladaní projektu budete vyzvaný na zadanie mena pre dva súbory: <br />
'''xxx.pas''' a '''yyy.lpr'''<br />
(Uložených bude viac súborov). Súbor projektu (lpr) a súbor jednotky (pas) 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.<br />
<br />
Tak, ak uložíte projekt pod menom '''again''', pokus uložiť '''again.pas''' a '''again.lpr''' 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, tak by to prekladač interpretoval ako odkaz sám na seba. <br />
<br />
Tak toto bude výsledok:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Nezabudnite, že adresár môže obsahovať veľa ďalších súborov, ktoré ste už uložili predtým.<br />
<br />
Poznámky o každom súbore:<br />
<br />
'''again.exe:'''<br />
Základný binárny program. Win32 pridáva príponu "exe". Linux niee. Tento súbor bude na Linux obrovský, pretože obsahuje symboly ladenia. Spusťte utilitu "strip" na ich odstránenie a skrátite veľkosť súboru.<br />
<br />
'''again.lpi:'''<br />
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.<br />
<br />
'''again.lpr:'''<br />
Základný zdrojový súbor programu. Napriek špeciálnej prípone Lazarus ide v skutočnosti o kladický 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á robnaké meno programu ako je meno súboru.<br />
<br />
'''againu.lfm:'''<br />
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.<br />
<br />
'''again.lrs:'''<br />
Vygenerovaný resource súbor. Všimnite si, že to nie je súbor Windows resource .<br />
<br />
'''againu.pas:'''<br />
Jednotka, obsahujúce kód formulára.<br />
<br />
'''again.ppu:'''<br />
Preložená jednotka.<br />
<br />
'''ppas.bat:'''<br />
Jednoduchý skript, ktorý linkuje program na produkciu exe. Ak je preklad úspešný, je zmazaný prekladačom.<br />
<br />
== Spolupracovníci a zmeny ==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* 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]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* 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]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* 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]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]<br />
* Preklad z anglického originálu [[Lazarus Tutorial]] a doplnenie obrázkov Palety komponentov. 25.marca 2005 [[User:Slavko]]<br />
* Aktualizácia slovenské preklady z anglického originálu [[Lazarus Tutorial]]. 24.decembra 2008 [[User:Adamm]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/sk&diff=98179Lazarus Tutorial/sk2015-12-09T12:27:50Z<p>Trsek: /* Menu Project */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
== Úvod ==<br />
Lazarus je free a open source vývojový nástroj pre prekladač FreePascal (Object Pascal), ktorý je tiež free a open source. [http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg IDE Lazarus] 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.<br />
<br />
== Začnite - Váš prvý program Lazarus! ==<br />
<br />
(Vďaka [[User:Kirkpatc]])<br />
<br />
Zí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.<br />
<br />
Na 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'.<br />
<br />
Teraz 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:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
</syntaxhighlight><br />
<br />
Stlač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:<br />
<syntaxhighlight><br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
</syntaxhighlight><br />
<br />
Opäť 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.<br />
<br />
Objavia 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.<br />
<br />
Skú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'!!<br />
<br />
Teraz 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.<br />
<br />
Svoju prácu môžete teraz uložiť (a často!!) zvolením Project > Save As > vyše_zvolené_meno_súboru.pas.<br />
<br />
=== Druhá časť ===<br />
Znova 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.<br />
<br />
Upravte svoj kód, aby vyzeral takto:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag =0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
</syntaxhighlight><br />
<br />
Uložte svoju prácu, preložte a spusťte. Ľavé tlačítko bude teraz prepínať medzi dvoma alternatívnymi návestiami.<br />
<br />
Zvyšok je na vás!<br />
<br />
Ak 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]].<br />
<br />
== Editor ==<br />
Pri prvom spustení IDE Lazarus sa na vašej pracovnej ploche objaví niekoľko samostatných, nespojených alebo plávajúcich okien.<br />
<br />
Prvé 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.<br />
<br />
<center>[[Image:LazMain_GTK2.png]]</center><br />
<br />
V 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.<br />
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).<br />
<br />
Pod základným oknom IDE Lazarus sa ešte vľavo obajví okno '''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg Object Inspector]''' a vedľa neho okno '''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg Editora zdrojového kódu]''' (Lazarus Source Editor). Môže sa objaviť ešte jedno menšie okno, nazvané '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', 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.<br />
<br />
Keď 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.<br />
<br />
Počas práce môžu byť zobrazené i ďalšie okná, ako: the '''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg Project Inspector]''', 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.<br />
<br />
=== Základné menu ===<br />
(Main Menu)<br />
<br />
Riadok základného menu obsahuje nasledujúce položky:<br />
<br />
<u>F</u>ile <u>E</u>dit <u>S</u>earch <u>V</u>iew <u>P</u>roject <u>R</u>un <u>C</u>omponents <u>T</u>ools E<u>n</u>vironment <u>W</u>indows <u>H</u>elp<br />
<br />
Ako je zvykom, položky môžu bať vybraté umiestnením myši nad položku menu a kliknutím ľavým tlačítkom myši alebo stlačením Alt-F na klávesnici (základné okno musí mať fokus, ak ho nemá stláčajte opakovane TAB na prepínanie fokusu medzi oknami, kým nie je titulkový pruh uíkladného okna zvýraznený farbou).<br />
<br />
==== Menu File ====<br />
<div class="floatright"> [[Image:FileMenu.png]] </div><br />
* '''New Unit''': Vytvorí nový súbor jednotky (zdrojový kód Pascal).<br />
* '''New Form''': Vytvorí nový formulár: vrátane pripojeného zdrojového súboru Pascal. <br />
* '''New ...''': Poskytuje ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg pop-up menu box]) s rôznymi typmi nových dokumentov.<br />
* '''Open''': Otvorí dialóg pre otvorenie existujúceho súboru. <br />
* '''Revert''': Ruší vykonané editácie a obnovuje súbor do pôvodného stavu. <br />
* '''Open Recent''': Zoznam naposledy otvorených súborov. <br />
* '''Save''': Uloží aktuálny súbor. Ak súbor ešte nemá meno, správa sa ako Save As.<br />
* '''Save As''': Umožňuje vybrať adresár a meno pre uloženie aktuálneho súboru.<br />
* '''Save ALL''': <br />
* '''Close''': Zatvorí aktuálny súbor, spýtajúc sa na uloženie vykonaných úprav.<br />
* '''Close all editor files''': Zatvorí všetky aktuálne otvorené súbory, spýtajúc sa na uloženie úprav.<br />
* '''Clean directory''': Otvorí dialóg s nastaviteľnými filtrami, pre odstránenie súborov z aktuálneho adresára. Užitočné pre odstránenie súborov .bak a zvyškov projektov Delphi.<br />
* '''Print''': Vytlačí zvolený súbor na tlačiarni systému. Táto položka menu sa predvolene neobjavuje, ale najprv je potrebné nainštalovať $Lazdir/components/printers/design/printers4lazide.pas a opäť preložiť IDE.<br />
* '''Restart''': <br />
* '''Quit''': Zatvorí Lazarus, spýtajúc sa na uloženie vykonaných úprav. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Edit ====<br />
<div class="floatright"> [[Image:EditMenu.png]] </div><br />
* '''Undo''': Vrátenie poslednej editovanej akcie, ponechajúc Editor v stave tesne pred ňou.<br />
* '''Redo''': Opakovanie poslednej akcie, ktorá bola vrátená pomocou Undo.<br />
* '''Cut''': Vystrihne vybraný text a uiestni ho do schránky.<br />
* '''Copy''': Prekopíruje vybratý text do schránky. <br />
* '''Paste''': Vloží obsah schránky na pozíciu kurzora. Ak bol vybratý text, prepíše ho.<br />
* '''Indent selection''': Posúva odsadenie vybratého textu doprava o rozsah zadaný v nastavení Environment -> Editor options -> General -> Block indent. Funkciaje užitočná pre formátovanie zdrojovéhokódu a vyvorenie blokovej štruktúry.<br />
* '''Unindent selection''': Odstraňuje jednu úroveň odsadenia, posunúc text doľava o rozsah zadaný v nastavení Editora Block indent. <br />
* '''Enclose selection''': Otvára pop-up menu s voľbami pre logické zakončenie vybratého textu (begin ... end; try ... except; try ... finally; repeat ... until; { ... } atď).<br />
* '''Uppercase selection''': Konvertuje vybratý text na veľké písmená.<br />
* '''Lowercase selection''': Konvertuje vybratý text na malé písmená.<br />
* '''Tabs to spaces in selection''': Konveruje všetky tabulátory vybratého textu na medzery, podľa nastavenia Environment -> Editor options -> General -> Tab widths. Počet medzier nemá fixnú veľkosť, ale je to potrebný počet medzier na zaplnenie potrebnej šírky tabelátora medzerami.<br />
* '''Break lines in selection''': Zalomí riadok vybratého textu, ktorý presahuje 80 znakov alebo počet zadaný v nastavení Environment -> Editor options -> Display -> Right Margin, riadok je zalomený na hranici slova a pokračuje na nasledujúcom riadku.<br />
* '''Comment selection''': Vloží značky komentára // na každý riadok vybratého textu.<br />
* '''Uncomment selection''': Odstráni značky komentára.<br />
* '''Sort selection''': Zoradí riadky (alebo slová v odstavci) podľa abecedy; voľby pre smer radenia, citlivosť na veľkosť písmen. Uprostred zrojového kódu, samozrejme, to neprichádza do úvahy, ale ak máte zoznam, ktorý treba zoradiť, oceníte tento trik.<br />
* '''Select''': Umožní výber blokov textu. Voľby zahŕňajú Vybrať všetko, vybrať po brace, vybrať odstavec alebo riadok, atď.<br />
* '''Insert from character map''': Umožní vloženie symbolu, ktorý nie je na klávesnici, vybratý z pop-up mapy znakov.<br />
* '''Insert text''': Zobrazí pop-up menu pre vloženie štandartných textov, ako kľúčové slová CVS (Author, Date, Header atď), či poznámku GPL, meno užívateľa, dátum a čas.<br />
* '''Complete code''': Dokončí kód pod kurzorom. Závisí od kontextu a šetrí mnoho času. Napríklad dokončuje triedy, pridaním súkromných premenných, prístupové metódy Get a Set vlastností a pridaním tela metód. Na priradeniach premenných (tj. i:=3;) pridáva deklaráciu premennej. Pri forward deklarovaných procedúrach pridáva telá procedúr. Pri priradení udalostí (OnClick:=) pridáva definíciu a telo metódy. Viď [[Lazarus IDE Tools/sk | Nástroje IDE Lazarus]].<br />
* '''Extract procedure''': Použije vybratý text (príkaz alebo sériu príkazov) na vytvorenie novej procedúry.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Search ====<br />
<div class="floatright"> [[Image:SearchMenu.png]] </div><br />
* '''Find''': Obdoba vlastnosti skoro všetkých grafických editorov: pop-up dialógový box pre zadanie hľadaného textu a volieb hľadania, ako citlivosť na veľkosť písmen, celé slová, začiatok, oblasť a smer hľadania.<br />
* '''Find Next, Find previous''': Pokračuje v hľadaní predtým zvoleného textu, zadaným smerom.<br />
* '''Find in files''': Hľadá textový reťazec v súboroch: pop-up dialóg s voľbami všetky otvorené súbory, všetky súbory v projekte alebo všetky adresáre; umožňuje i zadanie masky pre výber typu súboru.<br />
* '''Replace''': Podobné ako '''Find'''; zobrazí pop-up dialóg s miestom pre zadanie hľadaného reťazca a nahradzujúceho textu a volieb pre citlivosť na veľkosť písmen, smer atď.<br />
* '''Incremental find''': Hľadanie reťazca kým zadávate hľadaný reťazec. Príklad: stlačíte "l" a je zvýraznené prvé "l", ak potom stlačíte "a", editor nájde nasledujúce "la" atď.<br />
* '''Goto line''': Presunie kurzor na zadaný riadok súboru.<br />
* '''Jump back''': Presunie kurzor späť k nasledujúcej záložke (musíte použiť Add jump point to history). Presúva i na záložky iných súborov otvorených v Editore. <br />
* '''Jump forward''': Presunie kurzor vpred na nasledujúcu záložku.<br />
* '''Add jump point to history''': Pridá do súboru záložky alebo skokové body.<br />
* '''View Jump-History''': Ukáže zoznam záložiek v súbore: '''Zatiaľ neimplementované???'''.<br />
* '''Jump to next error''', '''Jump to previous error''': Skoč na na pozíciu nasledujúcej/predchádzajúcej hlásenej chyby v zdrojovom súbore.<br />
* '''Set a free bookmark''': označ riadok, na ktorom je kurzor, ďalšou dostupnou (voľnou) číslovanou záložkou a pridaj ju do zoznamu záložiek. Pozor, vyskakovacie menu (získané kliknutím pravým tlačítkom myši na príslušný riadok zdrojového súboru) poskytuje väčší rozsah možností záložky, umožňujúc zadať číslo záložky, či skočiť na očíslovanú záložku, nie len na nasledujúcu/predchádzajúcu. <br />
* '''Jump to next bookmark''', '''Jump to previous bookmark''': Skoč na nasledujúcu/predchádzajúcu záložku v číselnom poradí.<br />
* '''Find other end of code block''': Ak je kurzor umiestnený na '''begin''', presunie kurzor na príslušný '''end''' a naopak.<br />
* '''Find code block start''': Presunie kurzor na '''begin''' procedúry alebo funkcie, v tele ktorej je umiestnený.<br />
* '''Find Declaration at cursor''': Presunie kurzor na miesto deklarácie zvoleného identifikátora. Môže to byť v rovnakom súbore alebo v inom. Ak nie je otvorený, otvorí ho v Editore (tak ak je procedúra alebo funkcia deklarovaná napr. v <u>classesh.inc </u>, tento bude otvorený v Editore).<br />
* '''Open filename at cursor''': Otvorí súbor, ktorého meno je vybraté kurzorom. Užitočné na zobrazenie <u>Include </u> súborov alebo súborov obsahujúcich iné <u>Jednotky</u> použité v projekte.<br />
* '''Goto include directive''': Ak je kurzor umiestnený v súbore, ktorý je <u>Included</u> v inom súbore, presunie kurzor na miesto v súbore, odkiaľ bol volaný súbor <u>Include</u>.<br />
* '''Find Identifier References''': Poskytuje zoznam všetkých riadkov aktuálneho súboru, projektu alebo pripojených súborov, na ktorých je spomenutý identifikátor. <br />
* '''Rename Identifier''': Umožňuje vývojárovi premenovať identifikátor. Pomocou vyskakovacie menu možno určiť, či sa má premenovanie vykonať len v aktuálnom súbore, v projekte, vo všetkých otvorených alebo pripojených súboroch atď. Dokoncá je možné premenovať aj identifikátory vyskytujúce sa v komentároch. Túto vlastnosť môžete využiť, napríklad, al prekladač hlási, že identifikátor už existuje, takže môžete potebovať nové meno svojho identifikátora.<br />
* '''Procedure List''': Poskytuje zoznam všetkých procedúr a funkcií v aktuálnom súbore, spolu s číslom riadku, kde sú definované.<br />
'''<div style="clear:both;"></div><br />
<br />
==== Menu View ====<br />
Ovládanie zobrazenia rôznych okien a panelov na obrazovke.<br />
<div class="floatright"> [[Image:ViewMenu.png]] </div><br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/ViewMenuSnapshot.png </div><br />
* '''Object Inspector''': Okno, zvyčajne umiestnené na ľavej strane obrazovky, ktoré zobrazuje funkcie formulára, ktorý je na obrazovke. Kliknutím myšou na ktorýkoľvek komponent formulára, spôsobí, že detaily komponentu budú zobrazené v Object Inspector. Na jeho vrchu je panel, ktorý zobrazuje stromovú štruktúru aktuálneho projektu a komponenty formulára môžu byť vybraté aj z tohoto panela. Základný panel má dve záložky, ktoré umožňujú zobraziť '''Properties''' alebo '''Events'''. Výber '''Properties''' zobrazí vlastnosti zvoleného komponentu v dvoch stĺpcoch, ľavý zobrazuje meno vlastnosti a pravý jej hodnotu. Výber '''Events''' zobrazí tiež dva stĺpce, ľavý s menom udalostí priradených ku komponentu a pravý ukazuje akciu, ktorá je výsledkom udalosti (procedúru udalosti). Ak nie je definovaná akcia, kliknutie na tlačítko <div class="box">...</div> spôsobí zobrazenie Editora zdrojového kódu s kurzorom umiestneným na prázdenj deklarácii procedúry, do ktorej môžete zadať svoj kód udalosti.<br />
* '''Source Editor''': Základné okno pre editovanie zdrojového kódu. Jeho správanie je veľmi podobné iným grafickým editorom textu, takže môžete myšou presúvať kurzor nad zobrazeným textom a stlačenie ľavého tlačítka myši počas posúvania vyberie a označí text. Pravým kliknutím zobrazíte kontextové menu, ale ak ste zvyknutý na editory Windows, Gnome alebo KDE, budete márne hľadať zvyčajné funkcie, ako Vystrihnúť, Kopírovať a Vložiť, ale zahŕňa voľby ako '''Find Declaration''' alebo '''Open File at Cursor'''. Na vrchu okna Editora zdrojového kódu je niekoľko záložiek, reprezentujúcich otvorené súbory; kliknutie na jednu z nich vyvolá daný súbor do popredia, takto môžete jednoducho kopírovať zo súboru do súboru a vykonávať bežné editovacie funkcie. Editor zdrojového kódu poskytuje farebné zvýraznenie syntaxe kódu, s rôznymi farbami pre interpunkciu, komentáre, reťazcové konštanty atď. Rovnako zabezpečuje automatické odsadenie riadkov kódu. Funkcie a vzhľad Editora zdrojového kódu sú nastaviteľné cez menu Environment -> Editor options a zvolením jednej z viacerých záložiek.<br />
* '''Code Explorer''': Okno, zvyčajne umiestnené na pravej strane pracovnej plochy, ktoré v stromovej forme zobrazuje štruktúru kódu aktuálnej jednotky alebo programu. Ak zmeníte súbor zobrazený v okne Editora zdrojového kódu, musíte zvoliť tlačítko Refresh na zobrazenie novej štruktúry súboru. Okno po otvorení zvyčajne zobrazuje meno jednotky a vetvy pre časti Interface a Implementation, ale kliknutím na <div class="box">+</div> vľavo od vetvy otvoríte podvetvy a vetvičky :-), do úplných detailov samotných konštánt, typov a premenných, ako aj deklarácií procedúr a funkcií.<br />
* '''Units...''': pop-up dialóg so zoznamom súborov jednotiek aktuálneho projektu, ktorý umožní vybrať súbor Zobrazený v Editore zdrojového kódu. Zaškrtnutím voľby Multi select môžete vybrať a otvoriť viac jednotiek naraz, ale len jedna bude zobrazená. Táto položka menu je lepšia ako položka Project -> Project Inspector, ale zobrazuje len zoznam jednotiek a dovoľuje ich otvoriť.<br />
* '''Forms...''': pop-up dialóg so zoznamom formulárov aktuálneho projektu a umožní vybrať jeden alebo viac z nich pre zobrazenie.<br />
* '''View Unit Dependencies''': pop-up dialóg, ktorý zobrazí stromovú štruktúru závislostí aktuálne otvorenej jednotky. Mnoho súborov zobrazených v tomto okne má svoje svoje vlastné <div class="box">+</div> ,ktoré umožňujú preskúmať ich vlastné závislosti, často rekurzívnym spôsobom.<br />
* '''View Unit Information''': <br />
* '''Toggle form / unit view F12''': Prepína zobrazenie Formulár/Zdrojový kód formulára. Jednoduchším spôsobom je stlačenie F12 na klávesnici, ale táto položka menu má rovnaký význam.<br />
* '''Messages''': Okno so správami prekladača, zobrazuje postup úspešného prekladu alebo vypisuje nájdené chyby.<br />
* '''Search Results''': Okno s výsledkom hľadania textu v súboroch.<br />
* '''View Anchor Editor''': <br />
* '''View Component Pallete''': <br />
* '''View IDE Speed buttons''': <br />
* '''Debug windows''': pop-up menu s niekoľkými voľbami pre činnosť a konfiguráciu Debuggera. [[#The_Debugger|debugger]] je popísaný ďalej.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Project ====<br />
<div class="floatright"> [[Image:ProjectMenu.png]] </div><br />
* '''New Project''': Vytvorí nový projekt a poskytuje možnosť zvoliť typ projektu.<br />
* '''New Project from file''': Umožní vytvoriť nový projekt z existujúceho súboru.<br />
* '''Open Project''': Otvorí projekt, ktorý už bol vytvorený a uložený. Dialóg ponúkne zoznam súborov Lazarus Project Information (.lpi), z ktorých si môžete vybrať.<br />
* '''Open Recent Project''': Otvorí projekt zo zoznamu naposledy spracovávaných projektov.<br />
* '''Close Project''':<br />
* '''Save Project''': Obdoba File -> Save: uloží všetky súbory aktuálneho projektu; ak ešte neboli uložené, ponúkne dialóg na zadanie mena (ako Save Project As...).<br />
* '''Save Project As...''': Požiada meno súboru pre uloženie projektu. Ponúkne prednastavené meno súboru Project1.lpi, ale môžete si zvoliť vlastné. Lazarus nedovoľuje použiť rovnaké meno súboru pre súbor projektu a súbor jednotky. Viz [[Lazarus Tutorial/sk#Súbory_Lazarus| nižšie]]).<br />
* '''Publish Project''': Vytvorí kópiu celého projektu. Bežný adresár projektu obsahuje veľa informácií, ktoré nie je potrebné publikovať (informácie o session, súbory .ppu, .o, .exe. Publish Project vytvorí súbor .lpi obsahujúci len základné informácie a do kópie presunie len zdrojové kódy, zo všetkych podadresárov. V dialógu môžete nastaviť filter exclude/include a spôsob kompresie výstupného archívu. Viz [[Lazarus IDE Tools/sk| Nástroje IDE Lazarus]]<br />
* '''Project Inspector''': pop-up dialóg so stromovou štruktúrou súborov aktuálneho projektu. Dovoľuje pridať, odstrániť alebo otvoriť zvolené súbory alebo zmeniť vlastnosti projektu.<br />
* '''Project Options...''': pop-up dialóg s voľbami nastavenia projektu (titulok, meno cieľového súboru), Forms (dovoľuje výber z dostupných formulárov, a ich nastavenie Auto-create) a Info (určuje, či editačné informácie majú byť uložené pre zatvárané súbory, alebo len pre súbory projektu).<br />
* '''Compiler options ...''': Konfigurácia prekladača, zahŕňa záložky: '''Paths''' definícia ciest hľadania jednotiek, include súborov, knižníc... ako aj voľbu pomocného typu formulára (gtk, gnome, win32); '''Parsing''' voľba pravidiel pre syntaktickú analýzu programov, '''Code''' voľby optimalizácie pre rýchlejšie alebo pomalšie programy, výber cieľového procesora, veľkosti haldy atď; '''Linking''' voľby použitia ladenia, statických alebo dynamických knižníc atď; '''Messages''' typy správ, generované pri výskyte chyby; '''Other''' určenie predvoleného konfiguračného súboru (fpc.cfg) alebo iného súboru; '''Inherited''' stromový diagram ukazujúci voľby zdedené z už zahrnutých jednotiek; '''Compilation''' dovoľuje zadať príkazy vykonávané pred/po spustení prekladača a použitie súborov Make.<br />
* '''Add editor file to Project''': Do projektu pridá súbor, ktorý je práve upravovaný.<br />
* '''Remove from Project''': pop-up menu na odstránenie súboru z projektu.<br />
* '''View Source''': Bez ohľadu na to, ktorý súbor je práve upravovaný, zobrazí základný programový súbor (.dpr) alebo základný súbor .pas, ak .dpr neexistuje.<br />
<br />
==== Menu Run ====<br />
<div class="floatright"> [[Image:RunMenu.png]] </div><br />
* '''Build''': Prekladá súbory projektu, ktoré boli zmenené od posledného prekladu.<br />
* '''Build all''': Prekladá všetky súbory projektu, bez ohľadu na to, či boli alebo neboli zmenené.<br />
* '''Quick compile''':<br />
* '''Abort build''': Zastaví proces prekladu, ktorý je spustený - či už sa spamätáte, že máte niečo zle a chcete zastaviť preklad, alebo systém pracuje veľmi dlho a niečo je obvykle zle.<br />
* '''Run''': Obvyklý spôsob spustenia prekladača a, ak je preklad úspešný, spustenia aplikácia. Lazarus uloží kópie súborov, potom spustí prekladač a linker, potom začne vykonávať finálny programový súbor (.exe).<br />
* '''Pause''': Preruší vykonávanie aktuálne bežiaceho programu. Tým vám umožní skontrolovať akýkoľvek výstup, ktorý bol generovaný; vykonávanie môže pokračovať opätovným vybratím Run.<br />
* '''Step into''': Used in conjunction with the debugger, causes execution of the program one step at a time up to a bookmarked point in the source.<br />
* '''Step over''': Causes stepwise execution up to the statement marked, then skips the marked statement, and continues execution at normal speed. Useful in trying to isolate a statement that introduces a logical error.<br />
* '''Run to cursor''': Spôsobí vykonávanie programu normálnou rýchlosťou (tj. nie jeden príkaz naraz) pokiaľ nedôjde po príkaz, na ktorom je umiestnený kurzor; potom zastaví. Pokračovanie vykonávania normálnou rýchlosťou dosiahnete zvolením '''Run'''.<br />
* '''Stop''': Spôsobí zastavenie vykonávania bežiaceho programu. Nasledujúce zvolenie '''Run''' nepokračuje vo vykonávaní, ale spustí program od začiatku (ak treba i s prekladom).<br />
* '''Run Parameters''': Otvorí viacstránkové pop-up okno, v ktorom môžete tadať voľby a parametre príkazového riadku pre spustenie programu; výber zobrazenia spusteného programu (tj. môžete použiť vzdialený X terminál terminal v Linuxe); môžete prepísať niektoré systémové premenné.<br />
: Veľmi zaujímavou možnosťou tohoto sub-menu je aktivácia okna terminálu pre zobrazenie vstupu/výstupu konvenčnej konzoly Pascalu. Ak pracujete na konzolovom programe Pascalu, (tj. nepoužijete pre program GUI s formulármi, tlačítkami...), potom môžete zaškrtnúť políčko "Use launching application". Keď to nastavíte prvý krát a skúsite sekvenciu Compile/Run, asi dostanete divoké hlásenie hovoriace<br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied".<br />
: Ak toto nastane, potrebujete zmeniť prístupové práva príslušného súboru; možno to budete musieť urobiť ako root (administrator). Po tomto, sa pri každom spustení programu objaví konzolové okno, v ktorom sa budú obajovať všetky vaše textové vstupy/výstupy (readln, writeln ...).<br />
: Po skončení práce vášho programu sa objaví na obrazovke správa "Press enter". Takto celý výstup generovaný vašim programom ostane na obrazovke, aby ste mali šancu prečítať si ho a okno bude zatvorené až po stlačení 'enter'.<br />
: '''Poznámka:''' keďže v aktuálnej verzii nie je pripravený príkaz konzoly pre používateľov Windows. Zatiať Lazarus team odkazuje, že musí pracovať nasledujúci príkaz (vo WinXP)<br />
C:\Windows\system32\cmd.exe /C ${TargetCmdLine}<br />
* '''Reset debugger''': Obnovuje debugger do jeho pôvodného stavu, všetky ladiace body a hodnoty premenných... sú zabudnuté.<br />
* '''Build file''': Preloží súbor, ktorý je aktuálne otvorený v Editre zdrojového kódu.<br />
* '''Run file''': Preloží, spojí a spustí aktuálne otvorený súbor. <br />
* '''Configure Build + Run File''': Otvorí viacstránkové okno s voľbami, ktoré nastavia preklad práve tohoto súboru pri výbere '''Build Project''', dovolia výber pracovného adresára, použitie rôznych makier... Potom preloží a spustí súbor.<br />
: Tieto posledné tri voľby umožňujú otvoriť (a spravovať) testovací projekt. Použite File -> Open pre otvorenie súboru .lpr a v nasledujúcom dialógu stlačte cancel pre otvorenie tohoto súboru ako "normálneho zdrojového" súboru.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Components ====<br />
* '''Open Package''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png zoznam nainštalovaných balíčkov], s možnosťou [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png otvoriť jeden alebo viac z nich], alebo výber rôznych všeobecných volieb alebo volieb prekladača.<br />
* '''Open Package File''': Otvorí jeden zo súborov vo zvolenom balíčku.<br />
* '''Open package of current unit''': <br />
* '''Open Recent Package''': Ponúkne zoznam naposledy otvorených balíčkov.<br />
* '''Add Active Unit to Package''': Pridá aktuálny súbor (otvorený v editore) do balíčka.<br />
* '''Package Graph''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graf vzťahov] jednotlivých balíčkov, ktoré sú používané (ak nepoužívate žiadny iný balíček, budú zobrazené balíčeky Lazarus, FCL a LCL).<br />
* '''Configure custom components''': táto položka už nie je...<br />
<br />
==== Menu Tools ====<br />
<div class="floatright"> [[Image:ToolsMenu.png]] </div><br />
* '''Configure custom tools''': Umožňuje užívateľovi pridať do nástrojov rôzne externé nástroje (zvyčajne makrá).<br />
* '''Project templates options''': <br />
* '''Quick syntax check''': Vykoná rýchlu kontrolu syntaxe vášho zdrojového kódu bez skutočného prekladu. Základný krok pri vývoji veľkých alebo komplikovaných programov, ak nechcete mrhať čas prekladom chybného kódu. <br />
* '''Guess unclosed block''': Užitočný nástroj, ak máte zložitú alebo vnorenú blokovú štruktúru a chcete niekde nájsť '''end'''.<br />
* '''Guess misplaced IFDEF/ENDIF''': Užitočné, ak ak máte zložitú alebo vnorenú štruktúru makra a potebujete nájsť direktívu ENDIF. <br />
* '''Make resource string''': Z vybratého reťazca robí zdrojový reťazec (''resource string'') jeho umiestnením v sekcii resourcestrings. Výhodou zdrojových reťazcov je, že môžu byť zmenené bez poteby rekompilácie projektu!<br />
* '''Diff''': Umožňuje porovnanie dvoch súborov (alebo dvoch verzií rovnakého súboru) a nájdenie rozdielov. Poskytuje voľby na ignorovanie prázdneho miesta na začiatku alebo konci riadkov alebo rôznych zakončení riadkov (CR+LF a LF). Užitočné na kontrolu, či boli urobené zmeny od poslednej aktualizácie CVS atd.<br />
* '''Check LFM file in editor''': Umožňuje kontrolu súboru LFM, ktorý obsahuje nastavenia aktuálneho formulára.<br />
* '''Convert Delphi unit to Lazarus unit''': Pomáha pri prenose aplikácií Delphi do Lazarus; robí potrebné zmeny v zdrojovom súbore. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] a [[Code Conversion Guide]].<br />
* '''Convert DFM file to LFM''': Pre prenos z Delphi do Lazarus. Konvertuje súbory Form Description z Delphi do Lazarus. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] and [[Code Conversion Guide]].<br />
* '''Build Lazarus''': Spúšťa znovuzostavenie Lazarus z naposledy stiahnutých alebo aktualizovaných súborov CVS (proces môžete sledovať v okne '''Messages''').<br />
* '''Configure "Build Lazarus"''': Umožňuje určiť, ktoré časti Lazarus budú znova zostavené a ako. Napríklad, môžete nastaviť, že bude preložená len LCL alebo všetko okrem príkladov. Môžete nastaviť ktoré rozhranie LCL použiť a môžete nastaviť cieľový operačný systém, či nastaviť iný cieľový adresár. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Environment ====<br />
<div class="floatright"> [[Image:EnvironmentMenu.png]] </div><br />
* '''Environment options''': viacstránkové okno so záložkami pre<br />
** '''Files''' - cesty k predvolenému adresáru, prekladaču, zdrojovému adresáru a dočasnému adresáru pre prekladanie;<br />
** '''Desktop''' - voľby pre jazyk, správanie automatického ukladania, ukladanie vlastností pracovnej plochy, hinty pre paletu komponentov a speed tlačítka;<br />
** '''Windows''' - zadanie veľkosti a správania rôznych okien;<br />
** '''Form Editor''' - výber farieb pre editovanie formulárov;<br />
** '''Object Inspector''' - výber farieb a veľkosti položiek;<br />
** '''Backup''' - udáva ako zálohovať súbory pri úpravách;<br />
** '''Naming''' - udáva príponu názvos súborov Pascalu ('.pp' alebo '.pas'), či sa majú ukladať malými písmenami, či vykonávať automatické mazanie alebo premenovanie.<br />
* '''Editor options''': viacstránkové okno so záložkami pre<br />
** '''General''' - určuje správanie ako automatické odsadenie, zvýrazňovanie zátvoriek, drag-drop upravovanie, posúvanie, zvýrazňovanie syntaxe, zobrazovanie hintov, veľkosť odsadenia bloku a tabulátora, hranicu Undo;<br />
** '''Display''' - voľby pre zobrazovanie čísel riadkov, zobrazovanie guttera, veľkosť a typ fontu editora a okno so zobrazením farieb rôznych typov syntaxe, ako komentáre, značky, direktívy, chyby a ladiace body;<br />
** '''Key Mappings''' - voľby pre výber schémy Lazarus alebo Turbo Pascal;<br />
** '''Color''' - umožňuje nastaviť farebnú schému textu pre viac typov jazyka, ako Object Pascal, C++, Perl, HTML, XML a skripty shellu. Zobrazuje aj ukážkový panel (pre zvolený jazyk); <br />
** '''Code Tools''' - umožňuje výber funkcií ako Identifier Completion, tooltips, zadanie šablón názvov súborov, šablóny pre dokončovanie kódu.<br />
* '''Debugger Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - voľby debugera: bez, GNU debugger (gdb) alebo gdb cez SSH, zadanie vyhľadávacej cesty a volieb pre zvolený debugger;<br />
** '''Event log''' - nastavenie, či zmazať log pri spustení a ktoré správy zobrazovať;<br />
** '''Language Exceptions''' - výber výnimiek, ktoré budú ignorované;<br />
** '''OS Exceptions''' - umožňuje pridať isté signály, ktoré aplikuje na aktuálny operačný systém.<br />
* '''Code Tool Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - zadanie ďalších ciest pre hľadanie zdrojových súborov a určenie metódy Jumping Method;<br />
** '''Code Creation''' - určuje, či je vytváraný kód pridaný pred alebo za určitú funkciu;<br />
** '''Words''' - určuje, či sú kľúčové slová Pascal zadávané malými alebo veľkými písmenami, alebo s veľkými počiatočnými písmenami;<br />
** '''Line Splitting''' - zavádza pravidlá zalamovania riadkov (pred alebo po interpunkčných znamienkach, za kľúčovým slovom atď);<br />
** '''Space''' - určuje či sú medzery automaticky pridané alebo za určité snktaktické črty, ako kľúčové slová, alebo interpunkčné značky. <br />
* '''Code Tools Defines Editor''':<br />
* '''Re-scan FPC Source directory''' Znova prechádza adresár. Lazarus používa zdrojové kódy FreePascal na generovanie správnych obslúh udalostí a pri hľadaní deklarácií. Ak niekto zmení adresár v nastavení prostredia, potom je tento adresár znova prehľadaný, aby bolo zaistené, že Lazarus používa verziu uchovanú v danom umiestnení. Ale ak bol tento adresár zmenený a Lazarus nebol o tom informovaný, potom sa môžu objaviť chyby pri navrhovaní formulárov alebo vykonaním "Find declaration". Ak sa stretnete s touto chybou, môžete urobiť dve veci:<br />
*# skontrolovať nastavenie zdrojového adresára vo voľbách prostredia.<br />
*# znova prehľadať zdrojový adresár FreePascal.<br />
<br />
==== Menu Windows ====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Obsahuje zoznam aktuálne otvorených súborov a dostupných okien, ako '''Source Editor''', '''Object Inspector''', či '''Project Inspector'''. Kliknutím na názov jedného z okien je okno vyvolané do popredia a získava zameranie.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Help ====<br />
* '''Online Help''' otvorí okno prehliadača so súborom c:/lazarus/docs/index.html, ktoré obsahuje obrázok bežiacej cheetah a niekoľko odkazov nafew links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' umožňuje nastaviť prehliadač a databázy, z ktorých budú čítané informácie nápovedy. Tieto voľby dovoľujú užívateľovi zadať jeden z on-line dokumentov na webovej stránke Lazarus-CCR, niektoré ďalšie webové stránky obsahujúce dokumenty, alebo lokálne umiestnenie dokumentácie. Predvolene, ak umiestnite kurzor nad kľúčové slovo FCL alebo RunTime Library (ale nie LCL) a potom stlačíte <<F1>> dostanete sa na príslušnú stránku.<br />
* '''About Lazarus''' Zobrazí pop-up box s informáciami o Lazarus. <br />
<br />
Časom tu bude úplný on-line Help, s informáciami o syntaxe Pascalu, o použití IDE, o používaní, úpravách a tvorbe komponentov a tipy ako urobiť niektoré úlohy. Táto časť sekcie Dokumentácia (to čo teraz čítate) predstavuje začiatok procesu. '''Potrebujeme spolupracovníkov, ktorí sú ochotní pomôcť: Editácia WiKi je veľmo jednoduchá.'''<br />
<br />
== Paleta komponentov ==<br />
Panel 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).<br />
<br />
Ak 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.<br />
<br />
V 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.<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
: ''Najčastejšie používané komponenty''<br />
<center>[[Image:Component_Palette_Standart.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tmainmenu.html TMainMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tpopupmenu.html TPopupMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tbutton.html TButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlabel.html TLabel], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tedit.html TEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tmemo.html TMemo], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/ttogglebox.html TToggleBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcheckbox.html TCheckBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tradiobutton.html TRadioButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlistbox.html TListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcombobox.html TComboBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tscrollbar.html TScrollBar], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tgroupbox.html TGroupBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tstatictext.html TStaticText], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tradiogroup.html TRadioGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tcheckgroup.html TCheckGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpanel.html TPanel], [http://lazarus-ccr.sourceforge.net/docs/lcl/actnlist/tactionlist.html TActionList]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
''Ďalšie často používané komponenty:''<br />
<center>[[Image:Component_Palette_Additional.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tbitbtn.html TBitBtn], [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tspeedbutton.html TSpeedButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/timage.html TImage], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tshape.html TShape], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tbevel.html TBevel], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpaintbox.html TPaintBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tnotebook.html TNotebook], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tlabelededit.html TLabeledEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tsplitter.html TSplitter], [http://lazarus-ccr.sourceforge.net/docs/lcl/maskedit/tmaskedit.html TMaskEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/checklst/tchecklistbox.html TCheckListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tscrollbox.html TScrollBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tapplicationproperties.html TApplicationProperties], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tstringgrid.html TStringGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tdrawgrid.html TDrawGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/pairsplitter/tpairsplitter.html TPairSplitter]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[Image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[Image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Niektoré užitočné '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples dialógové]''' procedúry alebo funkcie nenájdete na palete, ale je ľahšie ich volať priamo zo zdrojového kódu.<br />
<br />
Niekoľ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.<br />
<br />
Niektoré 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.<br />
<br />
Vyskúš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!<br />
<br />
* '''Misc'''<br />
<center>[[Image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox<br />
<br />
* '''Data Controls'''<br />
''Komponenty Data-aware, ktoré do zančnej miery replikujú skupiny Standard a Additional, ale sú použiteľné s databázami:''<br />
<center>[[Image:Component_Palette_DataControls.png]]</center><br />
: TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
<br />
* '''Data Access'''<br />
<center>[[Image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
<br />
* '''System'''<br />
<center>[[Image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TTimer TTimer], TIdleTimer, [[doc:fcl/process/tprocess.html|TProcess]]<br />
<br />
* '''SynEdit'''<br />
: ''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 [http://synedit.sourceforge.net synedit na sourceforge].<br />
<br />
<center>[[Image:Component_Palette_SynEdit.png]]</center><br />
: TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pre 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.<br />
<br />
Ak 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.<br />
<br />
== Ako používať základné (Standard), spoločné (Common) a rozšírené komponenty ==<br />
<p>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</p><br />
<p>Veľ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.</p><br />
<p>Pokiaľ 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.</p><br />
<p>Ak však vytvoríte komponentu samy v kóde, je nutné nezabudnúť ju uvoľniť, keď už nie je ďalej potrebná</p><br />
<p>Pokiaľ umiestnite komponentu na Form Designer a pozriete sa na okno Object Inspector, môžete preskúmať a meniť vlastnosti tejto komponenty.</p><br />
<p>Napr. 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.</p><br />
<p>Na 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.</p><br />
<p>Takisto môžete explicitne nastaviť niektoré vlastnosti objektu v kóde (v príslučnej Implementation časti v okne Source Editor), napr.</p><br />
<syntaxhighlight><br />
Form1.Button1.Height := 48;<br />
</syntaxhighlight><br />
<p>Pokiaľ 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</p><br />
<p>Zhrnúť by sa to dalo tak, že obvykle existujú 3 spôsoby, ako nastaviť každú vlastnosť objektu:</p><br />
* použitím myši<br />
* nastavením hodnoty v Object Inspektore<br />
* explicitne napísaním kódu<br />
<p>Komponenty 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.</p><br />
<p>Dodatoč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.</p><br />
<br />
== Ako používať menu ==<br />
V tejto kapitole sa dočítate o vytváraní Menu položiek do formulárov.<br />
<br />
''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.<br />
<br />
''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í.<br />
<br />
Pre 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.<br />
<br />
Zobrazí 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.<br />
<br />
Všetky položky typu ''MenuItems'', ktoré ste vytvorili cez Edit box môžete nastavovať pomocou okna Object Inspector.<br />
<br />
Kaž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.<br />
<br />
Pri 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.<br />
<br />
== Debugger ==<br />
: ''Už len napísať''.<br />
<br />
== Súbory Lazarus ==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridino, [[User:Kirkpatc]] and Tom Lisjac)<br />
<br />
Pri ukladaní projektu budete vyzvaný na zadanie mena pre dva súbory: <br />
'''xxx.pas''' a '''yyy.lpr'''<br />
(Uložených bude viac súborov). Súbor projektu (lpr) a súbor jednotky (pas) 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.<br />
<br />
Tak, ak uložíte projekt pod menom '''again''', pokus uložiť '''again.pas''' a '''again.lpr''' 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, tak by to prekladač interpretoval ako odkaz sám na seba. <br />
<br />
Tak toto bude výsledok:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Nezabudnite, že adresár môže obsahovať veľa ďalších súborov, ktoré ste už uložili predtým.<br />
<br />
Poznámky o každom súbore:<br />
<br />
'''again.exe:'''<br />
Základný binárny program. Win32 pridáva príponu "exe". Linux niee. Tento súbor bude na Linux obrovský, pretože obsahuje symboly ladenia. Spusťte utilitu "strip" na ich odstránenie a skrátite veľkosť súboru.<br />
<br />
'''again.lpi:'''<br />
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.<br />
<br />
'''again.lpr:'''<br />
Základný zdrojový súbor programu. Napriek špeciálnej prípone Lazarus ide v skutočnosti o kladický 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á robnaké meno programu ako je meno súboru.<br />
<br />
'''againu.lfm:'''<br />
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.<br />
<br />
'''again.lrs:'''<br />
Vygenerovaný resource súbor. Všimnite si, že to nie je súbor Windows resource .<br />
<br />
'''againu.pas:'''<br />
Jednotka, obsahujúce kód formulára.<br />
<br />
'''again.ppu:'''<br />
Preložená jednotka.<br />
<br />
'''ppas.bat:'''<br />
Jednoduchý skript, ktorý linkuje program na produkciu exe. Ak je preklad úspešný, je zmazaný prekladačom.<br />
<br />
== Spolupracovníci a zmeny ==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* 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]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* 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]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* 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]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]<br />
* Preklad z anglického originálu [[Lazarus Tutorial]] a doplnenie obrázkov Palety komponentov. 25.marca 2005 [[User:Slavko]]<br />
* Aktualizácia slovenské preklady z anglického originálu [[Lazarus Tutorial]]. 24.decembra 2008 [[User:Adamm]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/sk&diff=98178Lazarus Tutorial/sk2015-12-09T12:23:41Z<p>Trsek: /* Menu View */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
== Úvod ==<br />
Lazarus je free a open source vývojový nástroj pre prekladač FreePascal (Object Pascal), ktorý je tiež free a open source. [http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg IDE Lazarus] 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.<br />
<br />
== Začnite - Váš prvý program Lazarus! ==<br />
<br />
(Vďaka [[User:Kirkpatc]])<br />
<br />
Zí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.<br />
<br />
Na 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'.<br />
<br />
Teraz 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:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
</syntaxhighlight><br />
<br />
Stlač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:<br />
<syntaxhighlight><br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
</syntaxhighlight><br />
<br />
Opäť 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.<br />
<br />
Objavia 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.<br />
<br />
Skú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'!!<br />
<br />
Teraz 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.<br />
<br />
Svoju prácu môžete teraz uložiť (a často!!) zvolením Project > Save As > vyše_zvolené_meno_súboru.pas.<br />
<br />
=== Druhá časť ===<br />
Znova 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.<br />
<br />
Upravte svoj kód, aby vyzeral takto:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag =0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
</syntaxhighlight><br />
<br />
Uložte svoju prácu, preložte a spusťte. Ľavé tlačítko bude teraz prepínať medzi dvoma alternatívnymi návestiami.<br />
<br />
Zvyšok je na vás!<br />
<br />
Ak 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]].<br />
<br />
== Editor ==<br />
Pri prvom spustení IDE Lazarus sa na vašej pracovnej ploche objaví niekoľko samostatných, nespojených alebo plávajúcich okien.<br />
<br />
Prvé 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.<br />
<br />
<center>[[Image:LazMain_GTK2.png]]</center><br />
<br />
V 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.<br />
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).<br />
<br />
Pod základným oknom IDE Lazarus sa ešte vľavo obajví okno '''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg Object Inspector]''' a vedľa neho okno '''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg Editora zdrojového kódu]''' (Lazarus Source Editor). Môže sa objaviť ešte jedno menšie okno, nazvané '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', 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.<br />
<br />
Keď 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.<br />
<br />
Počas práce môžu byť zobrazené i ďalšie okná, ako: the '''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg Project Inspector]''', 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.<br />
<br />
=== Základné menu ===<br />
(Main Menu)<br />
<br />
Riadok základného menu obsahuje nasledujúce položky:<br />
<br />
<u>F</u>ile <u>E</u>dit <u>S</u>earch <u>V</u>iew <u>P</u>roject <u>R</u>un <u>C</u>omponents <u>T</u>ools E<u>n</u>vironment <u>W</u>indows <u>H</u>elp<br />
<br />
Ako je zvykom, položky môžu bať vybraté umiestnením myši nad položku menu a kliknutím ľavým tlačítkom myši alebo stlačením Alt-F na klávesnici (základné okno musí mať fokus, ak ho nemá stláčajte opakovane TAB na prepínanie fokusu medzi oknami, kým nie je titulkový pruh uíkladného okna zvýraznený farbou).<br />
<br />
==== Menu File ====<br />
<div class="floatright"> [[Image:FileMenu.png]] </div><br />
* '''New Unit''': Vytvorí nový súbor jednotky (zdrojový kód Pascal).<br />
* '''New Form''': Vytvorí nový formulár: vrátane pripojeného zdrojového súboru Pascal. <br />
* '''New ...''': Poskytuje ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg pop-up menu box]) s rôznymi typmi nových dokumentov.<br />
* '''Open''': Otvorí dialóg pre otvorenie existujúceho súboru. <br />
* '''Revert''': Ruší vykonané editácie a obnovuje súbor do pôvodného stavu. <br />
* '''Open Recent''': Zoznam naposledy otvorených súborov. <br />
* '''Save''': Uloží aktuálny súbor. Ak súbor ešte nemá meno, správa sa ako Save As.<br />
* '''Save As''': Umožňuje vybrať adresár a meno pre uloženie aktuálneho súboru.<br />
* '''Save ALL''': <br />
* '''Close''': Zatvorí aktuálny súbor, spýtajúc sa na uloženie vykonaných úprav.<br />
* '''Close all editor files''': Zatvorí všetky aktuálne otvorené súbory, spýtajúc sa na uloženie úprav.<br />
* '''Clean directory''': Otvorí dialóg s nastaviteľnými filtrami, pre odstránenie súborov z aktuálneho adresára. Užitočné pre odstránenie súborov .bak a zvyškov projektov Delphi.<br />
* '''Print''': Vytlačí zvolený súbor na tlačiarni systému. Táto položka menu sa predvolene neobjavuje, ale najprv je potrebné nainštalovať $Lazdir/components/printers/design/printers4lazide.pas a opäť preložiť IDE.<br />
* '''Restart''': <br />
* '''Quit''': Zatvorí Lazarus, spýtajúc sa na uloženie vykonaných úprav. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Edit ====<br />
<div class="floatright"> [[Image:EditMenu.png]] </div><br />
* '''Undo''': Vrátenie poslednej editovanej akcie, ponechajúc Editor v stave tesne pred ňou.<br />
* '''Redo''': Opakovanie poslednej akcie, ktorá bola vrátená pomocou Undo.<br />
* '''Cut''': Vystrihne vybraný text a uiestni ho do schránky.<br />
* '''Copy''': Prekopíruje vybratý text do schránky. <br />
* '''Paste''': Vloží obsah schránky na pozíciu kurzora. Ak bol vybratý text, prepíše ho.<br />
* '''Indent selection''': Posúva odsadenie vybratého textu doprava o rozsah zadaný v nastavení Environment -> Editor options -> General -> Block indent. Funkciaje užitočná pre formátovanie zdrojovéhokódu a vyvorenie blokovej štruktúry.<br />
* '''Unindent selection''': Odstraňuje jednu úroveň odsadenia, posunúc text doľava o rozsah zadaný v nastavení Editora Block indent. <br />
* '''Enclose selection''': Otvára pop-up menu s voľbami pre logické zakončenie vybratého textu (begin ... end; try ... except; try ... finally; repeat ... until; { ... } atď).<br />
* '''Uppercase selection''': Konvertuje vybratý text na veľké písmená.<br />
* '''Lowercase selection''': Konvertuje vybratý text na malé písmená.<br />
* '''Tabs to spaces in selection''': Konveruje všetky tabulátory vybratého textu na medzery, podľa nastavenia Environment -> Editor options -> General -> Tab widths. Počet medzier nemá fixnú veľkosť, ale je to potrebný počet medzier na zaplnenie potrebnej šírky tabelátora medzerami.<br />
* '''Break lines in selection''': Zalomí riadok vybratého textu, ktorý presahuje 80 znakov alebo počet zadaný v nastavení Environment -> Editor options -> Display -> Right Margin, riadok je zalomený na hranici slova a pokračuje na nasledujúcom riadku.<br />
* '''Comment selection''': Vloží značky komentára // na každý riadok vybratého textu.<br />
* '''Uncomment selection''': Odstráni značky komentára.<br />
* '''Sort selection''': Zoradí riadky (alebo slová v odstavci) podľa abecedy; voľby pre smer radenia, citlivosť na veľkosť písmen. Uprostred zrojového kódu, samozrejme, to neprichádza do úvahy, ale ak máte zoznam, ktorý treba zoradiť, oceníte tento trik.<br />
* '''Select''': Umožní výber blokov textu. Voľby zahŕňajú Vybrať všetko, vybrať po brace, vybrať odstavec alebo riadok, atď.<br />
* '''Insert from character map''': Umožní vloženie symbolu, ktorý nie je na klávesnici, vybratý z pop-up mapy znakov.<br />
* '''Insert text''': Zobrazí pop-up menu pre vloženie štandartných textov, ako kľúčové slová CVS (Author, Date, Header atď), či poznámku GPL, meno užívateľa, dátum a čas.<br />
* '''Complete code''': Dokončí kód pod kurzorom. Závisí od kontextu a šetrí mnoho času. Napríklad dokončuje triedy, pridaním súkromných premenných, prístupové metódy Get a Set vlastností a pridaním tela metód. Na priradeniach premenných (tj. i:=3;) pridáva deklaráciu premennej. Pri forward deklarovaných procedúrach pridáva telá procedúr. Pri priradení udalostí (OnClick:=) pridáva definíciu a telo metódy. Viď [[Lazarus IDE Tools/sk | Nástroje IDE Lazarus]].<br />
* '''Extract procedure''': Použije vybratý text (príkaz alebo sériu príkazov) na vytvorenie novej procedúry.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Search ====<br />
<div class="floatright"> [[Image:SearchMenu.png]] </div><br />
* '''Find''': Obdoba vlastnosti skoro všetkých grafických editorov: pop-up dialógový box pre zadanie hľadaného textu a volieb hľadania, ako citlivosť na veľkosť písmen, celé slová, začiatok, oblasť a smer hľadania.<br />
* '''Find Next, Find previous''': Pokračuje v hľadaní predtým zvoleného textu, zadaným smerom.<br />
* '''Find in files''': Hľadá textový reťazec v súboroch: pop-up dialóg s voľbami všetky otvorené súbory, všetky súbory v projekte alebo všetky adresáre; umožňuje i zadanie masky pre výber typu súboru.<br />
* '''Replace''': Podobné ako '''Find'''; zobrazí pop-up dialóg s miestom pre zadanie hľadaného reťazca a nahradzujúceho textu a volieb pre citlivosť na veľkosť písmen, smer atď.<br />
* '''Incremental find''': Hľadanie reťazca kým zadávate hľadaný reťazec. Príklad: stlačíte "l" a je zvýraznené prvé "l", ak potom stlačíte "a", editor nájde nasledujúce "la" atď.<br />
* '''Goto line''': Presunie kurzor na zadaný riadok súboru.<br />
* '''Jump back''': Presunie kurzor späť k nasledujúcej záložke (musíte použiť Add jump point to history). Presúva i na záložky iných súborov otvorených v Editore. <br />
* '''Jump forward''': Presunie kurzor vpred na nasledujúcu záložku.<br />
* '''Add jump point to history''': Pridá do súboru záložky alebo skokové body.<br />
* '''View Jump-History''': Ukáže zoznam záložiek v súbore: '''Zatiaľ neimplementované???'''.<br />
* '''Jump to next error''', '''Jump to previous error''': Skoč na na pozíciu nasledujúcej/predchádzajúcej hlásenej chyby v zdrojovom súbore.<br />
* '''Set a free bookmark''': označ riadok, na ktorom je kurzor, ďalšou dostupnou (voľnou) číslovanou záložkou a pridaj ju do zoznamu záložiek. Pozor, vyskakovacie menu (získané kliknutím pravým tlačítkom myši na príslušný riadok zdrojového súboru) poskytuje väčší rozsah možností záložky, umožňujúc zadať číslo záložky, či skočiť na očíslovanú záložku, nie len na nasledujúcu/predchádzajúcu. <br />
* '''Jump to next bookmark''', '''Jump to previous bookmark''': Skoč na nasledujúcu/predchádzajúcu záložku v číselnom poradí.<br />
* '''Find other end of code block''': Ak je kurzor umiestnený na '''begin''', presunie kurzor na príslušný '''end''' a naopak.<br />
* '''Find code block start''': Presunie kurzor na '''begin''' procedúry alebo funkcie, v tele ktorej je umiestnený.<br />
* '''Find Declaration at cursor''': Presunie kurzor na miesto deklarácie zvoleného identifikátora. Môže to byť v rovnakom súbore alebo v inom. Ak nie je otvorený, otvorí ho v Editore (tak ak je procedúra alebo funkcia deklarovaná napr. v <u>classesh.inc </u>, tento bude otvorený v Editore).<br />
* '''Open filename at cursor''': Otvorí súbor, ktorého meno je vybraté kurzorom. Užitočné na zobrazenie <u>Include </u> súborov alebo súborov obsahujúcich iné <u>Jednotky</u> použité v projekte.<br />
* '''Goto include directive''': Ak je kurzor umiestnený v súbore, ktorý je <u>Included</u> v inom súbore, presunie kurzor na miesto v súbore, odkiaľ bol volaný súbor <u>Include</u>.<br />
* '''Find Identifier References''': Poskytuje zoznam všetkých riadkov aktuálneho súboru, projektu alebo pripojených súborov, na ktorých je spomenutý identifikátor. <br />
* '''Rename Identifier''': Umožňuje vývojárovi premenovať identifikátor. Pomocou vyskakovacie menu možno určiť, či sa má premenovanie vykonať len v aktuálnom súbore, v projekte, vo všetkých otvorených alebo pripojených súboroch atď. Dokoncá je možné premenovať aj identifikátory vyskytujúce sa v komentároch. Túto vlastnosť môžete využiť, napríklad, al prekladač hlási, že identifikátor už existuje, takže môžete potebovať nové meno svojho identifikátora.<br />
* '''Procedure List''': Poskytuje zoznam všetkých procedúr a funkcií v aktuálnom súbore, spolu s číslom riadku, kde sú definované.<br />
'''<div style="clear:both;"></div><br />
<br />
==== Menu View ====<br />
Ovládanie zobrazenia rôznych okien a panelov na obrazovke.<br />
<div class="floatright"> [[Image:ViewMenu.png]] </div><br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/ViewMenuSnapshot.png </div><br />
* '''Object Inspector''': Okno, zvyčajne umiestnené na ľavej strane obrazovky, ktoré zobrazuje funkcie formulára, ktorý je na obrazovke. Kliknutím myšou na ktorýkoľvek komponent formulára, spôsobí, že detaily komponentu budú zobrazené v Object Inspector. Na jeho vrchu je panel, ktorý zobrazuje stromovú štruktúru aktuálneho projektu a komponenty formulára môžu byť vybraté aj z tohoto panela. Základný panel má dve záložky, ktoré umožňujú zobraziť '''Properties''' alebo '''Events'''. Výber '''Properties''' zobrazí vlastnosti zvoleného komponentu v dvoch stĺpcoch, ľavý zobrazuje meno vlastnosti a pravý jej hodnotu. Výber '''Events''' zobrazí tiež dva stĺpce, ľavý s menom udalostí priradených ku komponentu a pravý ukazuje akciu, ktorá je výsledkom udalosti (procedúru udalosti). Ak nie je definovaná akcia, kliknutie na tlačítko <div class="box">...</div> spôsobí zobrazenie Editora zdrojového kódu s kurzorom umiestneným na prázdenj deklarácii procedúry, do ktorej môžete zadať svoj kód udalosti.<br />
* '''Source Editor''': Základné okno pre editovanie zdrojového kódu. Jeho správanie je veľmi podobné iným grafickým editorom textu, takže môžete myšou presúvať kurzor nad zobrazeným textom a stlačenie ľavého tlačítka myši počas posúvania vyberie a označí text. Pravým kliknutím zobrazíte kontextové menu, ale ak ste zvyknutý na editory Windows, Gnome alebo KDE, budete márne hľadať zvyčajné funkcie, ako Vystrihnúť, Kopírovať a Vložiť, ale zahŕňa voľby ako '''Find Declaration''' alebo '''Open File at Cursor'''. Na vrchu okna Editora zdrojového kódu je niekoľko záložiek, reprezentujúcich otvorené súbory; kliknutie na jednu z nich vyvolá daný súbor do popredia, takto môžete jednoducho kopírovať zo súboru do súboru a vykonávať bežné editovacie funkcie. Editor zdrojového kódu poskytuje farebné zvýraznenie syntaxe kódu, s rôznymi farbami pre interpunkciu, komentáre, reťazcové konštanty atď. Rovnako zabezpečuje automatické odsadenie riadkov kódu. Funkcie a vzhľad Editora zdrojového kódu sú nastaviteľné cez menu Environment -> Editor options a zvolením jednej z viacerých záložiek.<br />
* '''Code Explorer''': Okno, zvyčajne umiestnené na pravej strane pracovnej plochy, ktoré v stromovej forme zobrazuje štruktúru kódu aktuálnej jednotky alebo programu. Ak zmeníte súbor zobrazený v okne Editora zdrojového kódu, musíte zvoliť tlačítko Refresh na zobrazenie novej štruktúry súboru. Okno po otvorení zvyčajne zobrazuje meno jednotky a vetvy pre časti Interface a Implementation, ale kliknutím na <div class="box">+</div> vľavo od vetvy otvoríte podvetvy a vetvičky :-), do úplných detailov samotných konštánt, typov a premenných, ako aj deklarácií procedúr a funkcií.<br />
* '''Units...''': pop-up dialóg so zoznamom súborov jednotiek aktuálneho projektu, ktorý umožní vybrať súbor Zobrazený v Editore zdrojového kódu. Zaškrtnutím voľby Multi select môžete vybrať a otvoriť viac jednotiek naraz, ale len jedna bude zobrazená. Táto položka menu je lepšia ako položka Project -> Project Inspector, ale zobrazuje len zoznam jednotiek a dovoľuje ich otvoriť.<br />
* '''Forms...''': pop-up dialóg so zoznamom formulárov aktuálneho projektu a umožní vybrať jeden alebo viac z nich pre zobrazenie.<br />
* '''View Unit Dependencies''': pop-up dialóg, ktorý zobrazí stromovú štruktúru závislostí aktuálne otvorenej jednotky. Mnoho súborov zobrazených v tomto okne má svoje svoje vlastné <div class="box">+</div> ,ktoré umožňujú preskúmať ich vlastné závislosti, často rekurzívnym spôsobom.<br />
* '''View Unit Information''': <br />
* '''Toggle form / unit view F12''': Prepína zobrazenie Formulár/Zdrojový kód formulára. Jednoduchším spôsobom je stlačenie F12 na klávesnici, ale táto položka menu má rovnaký význam.<br />
* '''Messages''': Okno so správami prekladača, zobrazuje postup úspešného prekladu alebo vypisuje nájdené chyby.<br />
* '''Search Results''': Okno s výsledkom hľadania textu v súboroch.<br />
* '''View Anchor Editor''': <br />
* '''View Component Pallete''': <br />
* '''View IDE Speed buttons''': <br />
* '''Debug windows''': pop-up menu s niekoľkými voľbami pre činnosť a konfiguráciu Debuggera. [[#The_Debugger|debugger]] je popísaný ďalej.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Project ====<br />
<div class="floatright"> [[Image:ProjectMenu.png]] </div><br />
* '''New Project''': Vytvorí nový projekt a poskytuje možnosť zvoliť typ projektu.<br />
* '''New Project from file''': Umožní vytvoriť nový projekt z existujúceho súboru.<br />
* '''Open Project''': Otvorí projekt, ktorý už bol vytvorený a uložený. Dialóg ponúkne zoznam súborov Lazarus Project Information (.lpi), z ktorých si môžete vybrať.<br />
* '''Open Recent Project''': Otvorí projekt zo zoznamu naposledy spracovávaných projektov.<br />
* '''Close Project''':<br />
* '''Save Project''': Obdoba File -> Save: uloží všetky súbory aktuálneho projektu; ak ešte neboli uložené, ponúkne dialóg na zadanie mena (ako Save Project As...).<br />
* '''Save Project As...''': Požiada meno súboru pre uloženie projektu. Ponúkne prednastavené meno súboru Project1.lpi, ale môžete si zvoliť vlastné. Lazarus nedovoľuje použiť rovnaké meno súboru pre súbor projektu a súbor jednotky. Viz [[Lazarus Tutorial/sk#Súbory_Lazarus| nižšie]]).<br />
* '''Publish Project''': Vytvorí kópiu celého projektu. Bežný adresár projektu obsahuje veľa informácií, ktoré nie je potrebné publikovať (informácie o session, súbory .ppu, .o, .exe. Publish Project vytvorí súbor .lpi obsahujúci len základné informácie a do kópie presunie len zdrojové kódy, zo všetkych podadresárov. V dialógu môžete nastaviť filter exclude/include a spôsob kompresie výstupného archívu. Viz [[Lazarus IDE Tools/sk| Nástroje IDE Lazarus]]<br />
* '''Project Inspector''': pop-up dialóg so stromovou štruktúrou súborov aktuálneho projektu. Dovoľuje pridať, odstrániť alebo otvoriť zvolené súbory alebo zmeniť vlastnosti projektu.<br />
* '''Project Options...''': pop-up dialóg s voľbami nastavenia projektu (titulok, meno cieľového súboru), Forms (dovoľuje výber z dostupných formulárov, a ich nastavenie Auto-create) a Info (určuje, či editačné informácie majú byť uložené pre zatvárané súbory alebo len pre súbory projektu).<br />
* '''Compiler options ...''': Konfigurácia prekladača, zahŕňa záložky: '''Paths''' definícia ciest hľadania jednotiek, include súborov, knižníc... ako aj voľbu pomocného typu formulára (gtk, gnome, win32); '''Parsing''' voľba pravidiel pre syntaktickú analýzu programov, '''Code''' voľby optimalizácie pre rýchlejšie alebo pomalšieprogramy, výber cieľového procesora, veľkosti halsy atď; '''Linking''' voľby použitia ladenia, statických alebo dynamických knižníc atď; '''Messages''' typy správ, generované pri výskyte chyby; '''Other''' určenie predvoleného konfiguračného súboru (fpc.cfg) alebo iného súboru; '''Inherited''' stromový diagram ukazujúci voľby zdedené z už zahrnutých jednotiek; '''Compilation''' dovoľuje zadať príkazy vykonávané pred/po spustení prekladača a použitie súborov Make.<br />
* '''Add editor file to Project''': Do projektu pridá súbor, ktorý je práve upravovaný.<br />
* '''Remove from Project''': pop-up menu na odstránenie súboru z projektu.<br />
* '''View Source''': Bez ohľadu na to, ktorý súbor je práve upravovaný, zobrazí základný programový súbor (.dpr) alebo základný súbor .pas, ak .dpr neexistuje.<br />
<br />
==== Menu Run ====<br />
<div class="floatright"> [[Image:RunMenu.png]] </div><br />
* '''Build''': Prekladá súbory projektu, ktoré boli zmenené od posledného prekladu.<br />
* '''Build all''': Prekladá všetky súbory projektu, bez ohľadu na to, či boli alebo neboli zmenené.<br />
* '''Quick compile''':<br />
* '''Abort build''': Zastaví proces prekladu, ktorý je spustený - či už sa spamätáte, že máte niečo zle a chcete zastaviť preklad, alebo systém pracuje veľmi dlho a niečo je obvykle zle.<br />
* '''Run''': Obvyklý spôsob spustenia prekladača a, ak je preklad úspešný, spustenia aplikácia. Lazarus uloží kópie súborov, potom spustí prekladač a linker, potom začne vykonávať finálny programový súbor (.exe).<br />
* '''Pause''': Preruší vykonávanie aktuálne bežiaceho programu. Tým vám umožní skontrolovať akýkoľvek výstup, ktorý bol generovaný; vykonávanie môže pokračovať opätovným vybratím Run.<br />
* '''Step into''': Used in conjunction with the debugger, causes execution of the program one step at a time up to a bookmarked point in the source.<br />
* '''Step over''': Causes stepwise execution up to the statement marked, then skips the marked statement, and continues execution at normal speed. Useful in trying to isolate a statement that introduces a logical error.<br />
* '''Run to cursor''': Spôsobí vykonávanie programu normálnou rýchlosťou (tj. nie jeden príkaz naraz) pokiaľ nedôjde po príkaz, na ktorom je umiestnený kurzor; potom zastaví. Pokračovanie vykonávania normálnou rýchlosťou dosiahnete zvolením '''Run'''.<br />
* '''Stop''': Spôsobí zastavenie vykonávania bežiaceho programu. Nasledujúce zvolenie '''Run''' nepokračuje vo vykonávaní, ale spustí program od začiatku (ak treba i s prekladom).<br />
* '''Run Parameters''': Otvorí viacstránkové pop-up okno, v ktorom môžete tadať voľby a parametre príkazového riadku pre spustenie programu; výber zobrazenia spusteného programu (tj. môžete použiť vzdialený X terminál terminal v Linuxe); môžete prepísať niektoré systémové premenné.<br />
: Veľmi zaujímavou možnosťou tohoto sub-menu je aktivácia okna terminálu pre zobrazenie vstupu/výstupu konvenčnej konzoly Pascalu. Ak pracujete na konzolovom programe Pascalu, (tj. nepoužijete pre program GUI s formulármi, tlačítkami...), potom môžete zaškrtnúť políčko "Use launching application". Keď to nastavíte prvý krát a skúsite sekvenciu Compile/Run, asi dostanete divoké hlásenie hovoriace<br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied".<br />
: Ak toto nastane, potrebujete zmeniť prístupové práva príslušného súboru; možno to budete musieť urobiť ako root (administrator). Po tomto, sa pri každom spustení programu objaví konzolové okno, v ktorom sa budú obajovať všetky vaše textové vstupy/výstupy (readln, writeln ...).<br />
: Po skončení práce vášho programu sa objaví na obrazovke správa "Press enter". Takto celý výstup generovaný vašim programom ostane na obrazovke, aby ste mali šancu prečítať si ho a okno bude zatvorené až po stlačení 'enter'.<br />
: '''Poznámka:''' keďže v aktuálnej verzii nie je pripravený príkaz konzoly pre používateľov Windows. Zatiať Lazarus team odkazuje, že musí pracovať nasledujúci príkaz (vo WinXP)<br />
C:\Windows\system32\cmd.exe /C ${TargetCmdLine}<br />
* '''Reset debugger''': Obnovuje debugger do jeho pôvodného stavu, všetky ladiace body a hodnoty premenných... sú zabudnuté.<br />
* '''Build file''': Preloží súbor, ktorý je aktuálne otvorený v Editre zdrojového kódu.<br />
* '''Run file''': Preloží, spojí a spustí aktuálne otvorený súbor. <br />
* '''Configure Build + Run File''': Otvorí viacstránkové okno s voľbami, ktoré nastavia preklad práve tohoto súboru pri výbere '''Build Project''', dovolia výber pracovného adresára, použitie rôznych makier... Potom preloží a spustí súbor.<br />
: Tieto posledné tri voľby umožňujú otvoriť (a spravovať) testovací projekt. Použite File -> Open pre otvorenie súboru .lpr a v nasledujúcom dialógu stlačte cancel pre otvorenie tohoto súboru ako "normálneho zdrojového" súboru.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Components ====<br />
* '''Open Package''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png zoznam nainštalovaných balíčkov], s možnosťou [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png otvoriť jeden alebo viac z nich], alebo výber rôznych všeobecných volieb alebo volieb prekladača.<br />
* '''Open Package File''': Otvorí jeden zo súborov vo zvolenom balíčku.<br />
* '''Open package of current unit''': <br />
* '''Open Recent Package''': Ponúkne zoznam naposledy otvorených balíčkov.<br />
* '''Add Active Unit to Package''': Pridá aktuálny súbor (otvorený v editore) do balíčka.<br />
* '''Package Graph''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graf vzťahov] jednotlivých balíčkov, ktoré sú používané (ak nepoužívate žiadny iný balíček, budú zobrazené balíčeky Lazarus, FCL a LCL).<br />
* '''Configure custom components''': táto položka už nie je...<br />
<br />
==== Menu Tools ====<br />
<div class="floatright"> [[Image:ToolsMenu.png]] </div><br />
* '''Configure custom tools''': Umožňuje užívateľovi pridať do nástrojov rôzne externé nástroje (zvyčajne makrá).<br />
* '''Project templates options''': <br />
* '''Quick syntax check''': Vykoná rýchlu kontrolu syntaxe vášho zdrojového kódu bez skutočného prekladu. Základný krok pri vývoji veľkých alebo komplikovaných programov, ak nechcete mrhať čas prekladom chybného kódu. <br />
* '''Guess unclosed block''': Užitočný nástroj, ak máte zložitú alebo vnorenú blokovú štruktúru a chcete niekde nájsť '''end'''.<br />
* '''Guess misplaced IFDEF/ENDIF''': Užitočné, ak ak máte zložitú alebo vnorenú štruktúru makra a potebujete nájsť direktívu ENDIF. <br />
* '''Make resource string''': Z vybratého reťazca robí zdrojový reťazec (''resource string'') jeho umiestnením v sekcii resourcestrings. Výhodou zdrojových reťazcov je, že môžu byť zmenené bez poteby rekompilácie projektu!<br />
* '''Diff''': Umožňuje porovnanie dvoch súborov (alebo dvoch verzií rovnakého súboru) a nájdenie rozdielov. Poskytuje voľby na ignorovanie prázdneho miesta na začiatku alebo konci riadkov alebo rôznych zakončení riadkov (CR+LF a LF). Užitočné na kontrolu, či boli urobené zmeny od poslednej aktualizácie CVS atd.<br />
* '''Check LFM file in editor''': Umožňuje kontrolu súboru LFM, ktorý obsahuje nastavenia aktuálneho formulára.<br />
* '''Convert Delphi unit to Lazarus unit''': Pomáha pri prenose aplikácií Delphi do Lazarus; robí potrebné zmeny v zdrojovom súbore. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] a [[Code Conversion Guide]].<br />
* '''Convert DFM file to LFM''': Pre prenos z Delphi do Lazarus. Konvertuje súbory Form Description z Delphi do Lazarus. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] and [[Code Conversion Guide]].<br />
* '''Build Lazarus''': Spúšťa znovuzostavenie Lazarus z naposledy stiahnutých alebo aktualizovaných súborov CVS (proces môžete sledovať v okne '''Messages''').<br />
* '''Configure "Build Lazarus"''': Umožňuje určiť, ktoré časti Lazarus budú znova zostavené a ako. Napríklad, môžete nastaviť, že bude preložená len LCL alebo všetko okrem príkladov. Môžete nastaviť ktoré rozhranie LCL použiť a môžete nastaviť cieľový operačný systém, či nastaviť iný cieľový adresár. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Environment ====<br />
<div class="floatright"> [[Image:EnvironmentMenu.png]] </div><br />
* '''Environment options''': viacstránkové okno so záložkami pre<br />
** '''Files''' - cesty k predvolenému adresáru, prekladaču, zdrojovému adresáru a dočasnému adresáru pre prekladanie;<br />
** '''Desktop''' - voľby pre jazyk, správanie automatického ukladania, ukladanie vlastností pracovnej plochy, hinty pre paletu komponentov a speed tlačítka;<br />
** '''Windows''' - zadanie veľkosti a správania rôznych okien;<br />
** '''Form Editor''' - výber farieb pre editovanie formulárov;<br />
** '''Object Inspector''' - výber farieb a veľkosti položiek;<br />
** '''Backup''' - udáva ako zálohovať súbory pri úpravách;<br />
** '''Naming''' - udáva príponu názvos súborov Pascalu ('.pp' alebo '.pas'), či sa majú ukladať malými písmenami, či vykonávať automatické mazanie alebo premenovanie.<br />
* '''Editor options''': viacstránkové okno so záložkami pre<br />
** '''General''' - určuje správanie ako automatické odsadenie, zvýrazňovanie zátvoriek, drag-drop upravovanie, posúvanie, zvýrazňovanie syntaxe, zobrazovanie hintov, veľkosť odsadenia bloku a tabulátora, hranicu Undo;<br />
** '''Display''' - voľby pre zobrazovanie čísel riadkov, zobrazovanie guttera, veľkosť a typ fontu editora a okno so zobrazením farieb rôznych typov syntaxe, ako komentáre, značky, direktívy, chyby a ladiace body;<br />
** '''Key Mappings''' - voľby pre výber schémy Lazarus alebo Turbo Pascal;<br />
** '''Color''' - umožňuje nastaviť farebnú schému textu pre viac typov jazyka, ako Object Pascal, C++, Perl, HTML, XML a skripty shellu. Zobrazuje aj ukážkový panel (pre zvolený jazyk); <br />
** '''Code Tools''' - umožňuje výber funkcií ako Identifier Completion, tooltips, zadanie šablón názvov súborov, šablóny pre dokončovanie kódu.<br />
* '''Debugger Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - voľby debugera: bez, GNU debugger (gdb) alebo gdb cez SSH, zadanie vyhľadávacej cesty a volieb pre zvolený debugger;<br />
** '''Event log''' - nastavenie, či zmazať log pri spustení a ktoré správy zobrazovať;<br />
** '''Language Exceptions''' - výber výnimiek, ktoré budú ignorované;<br />
** '''OS Exceptions''' - umožňuje pridať isté signály, ktoré aplikuje na aktuálny operačný systém.<br />
* '''Code Tool Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - zadanie ďalších ciest pre hľadanie zdrojových súborov a určenie metódy Jumping Method;<br />
** '''Code Creation''' - určuje, či je vytváraný kód pridaný pred alebo za určitú funkciu;<br />
** '''Words''' - určuje, či sú kľúčové slová Pascal zadávané malými alebo veľkými písmenami, alebo s veľkými počiatočnými písmenami;<br />
** '''Line Splitting''' - zavádza pravidlá zalamovania riadkov (pred alebo po interpunkčných znamienkach, za kľúčovým slovom atď);<br />
** '''Space''' - určuje či sú medzery automaticky pridané alebo za určité snktaktické črty, ako kľúčové slová, alebo interpunkčné značky. <br />
* '''Code Tools Defines Editor''':<br />
* '''Re-scan FPC Source directory''' Znova prechádza adresár. Lazarus používa zdrojové kódy FreePascal na generovanie správnych obslúh udalostí a pri hľadaní deklarácií. Ak niekto zmení adresár v nastavení prostredia, potom je tento adresár znova prehľadaný, aby bolo zaistené, že Lazarus používa verziu uchovanú v danom umiestnení. Ale ak bol tento adresár zmenený a Lazarus nebol o tom informovaný, potom sa môžu objaviť chyby pri navrhovaní formulárov alebo vykonaním "Find declaration". Ak sa stretnete s touto chybou, môžete urobiť dve veci:<br />
*# skontrolovať nastavenie zdrojového adresára vo voľbách prostredia.<br />
*# znova prehľadať zdrojový adresár FreePascal.<br />
<br />
==== Menu Windows ====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Obsahuje zoznam aktuálne otvorených súborov a dostupných okien, ako '''Source Editor''', '''Object Inspector''', či '''Project Inspector'''. Kliknutím na názov jedného z okien je okno vyvolané do popredia a získava zameranie.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Help ====<br />
* '''Online Help''' otvorí okno prehliadača so súborom c:/lazarus/docs/index.html, ktoré obsahuje obrázok bežiacej cheetah a niekoľko odkazov nafew links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' umožňuje nastaviť prehliadač a databázy, z ktorých budú čítané informácie nápovedy. Tieto voľby dovoľujú užívateľovi zadať jeden z on-line dokumentov na webovej stránke Lazarus-CCR, niektoré ďalšie webové stránky obsahujúce dokumenty, alebo lokálne umiestnenie dokumentácie. Predvolene, ak umiestnite kurzor nad kľúčové slovo FCL alebo RunTime Library (ale nie LCL) a potom stlačíte <<F1>> dostanete sa na príslušnú stránku.<br />
* '''About Lazarus''' Zobrazí pop-up box s informáciami o Lazarus. <br />
<br />
Časom tu bude úplný on-line Help, s informáciami o syntaxe Pascalu, o použití IDE, o používaní, úpravách a tvorbe komponentov a tipy ako urobiť niektoré úlohy. Táto časť sekcie Dokumentácia (to čo teraz čítate) predstavuje začiatok procesu. '''Potrebujeme spolupracovníkov, ktorí sú ochotní pomôcť: Editácia WiKi je veľmo jednoduchá.'''<br />
<br />
== Paleta komponentov ==<br />
Panel 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).<br />
<br />
Ak 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.<br />
<br />
V 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.<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
: ''Najčastejšie používané komponenty''<br />
<center>[[Image:Component_Palette_Standart.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tmainmenu.html TMainMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tpopupmenu.html TPopupMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tbutton.html TButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlabel.html TLabel], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tedit.html TEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tmemo.html TMemo], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/ttogglebox.html TToggleBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcheckbox.html TCheckBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tradiobutton.html TRadioButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlistbox.html TListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcombobox.html TComboBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tscrollbar.html TScrollBar], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tgroupbox.html TGroupBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tstatictext.html TStaticText], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tradiogroup.html TRadioGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tcheckgroup.html TCheckGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpanel.html TPanel], [http://lazarus-ccr.sourceforge.net/docs/lcl/actnlist/tactionlist.html TActionList]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
''Ďalšie často používané komponenty:''<br />
<center>[[Image:Component_Palette_Additional.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tbitbtn.html TBitBtn], [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tspeedbutton.html TSpeedButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/timage.html TImage], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tshape.html TShape], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tbevel.html TBevel], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpaintbox.html TPaintBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tnotebook.html TNotebook], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tlabelededit.html TLabeledEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tsplitter.html TSplitter], [http://lazarus-ccr.sourceforge.net/docs/lcl/maskedit/tmaskedit.html TMaskEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/checklst/tchecklistbox.html TCheckListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tscrollbox.html TScrollBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tapplicationproperties.html TApplicationProperties], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tstringgrid.html TStringGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tdrawgrid.html TDrawGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/pairsplitter/tpairsplitter.html TPairSplitter]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[Image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[Image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Niektoré užitočné '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples dialógové]''' procedúry alebo funkcie nenájdete na palete, ale je ľahšie ich volať priamo zo zdrojového kódu.<br />
<br />
Niekoľ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.<br />
<br />
Niektoré 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.<br />
<br />
Vyskúš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!<br />
<br />
* '''Misc'''<br />
<center>[[Image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox<br />
<br />
* '''Data Controls'''<br />
''Komponenty Data-aware, ktoré do zančnej miery replikujú skupiny Standard a Additional, ale sú použiteľné s databázami:''<br />
<center>[[Image:Component_Palette_DataControls.png]]</center><br />
: TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
<br />
* '''Data Access'''<br />
<center>[[Image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
<br />
* '''System'''<br />
<center>[[Image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TTimer TTimer], TIdleTimer, [[doc:fcl/process/tprocess.html|TProcess]]<br />
<br />
* '''SynEdit'''<br />
: ''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 [http://synedit.sourceforge.net synedit na sourceforge].<br />
<br />
<center>[[Image:Component_Palette_SynEdit.png]]</center><br />
: TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pre 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.<br />
<br />
Ak 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.<br />
<br />
== Ako používať základné (Standard), spoločné (Common) a rozšírené komponenty ==<br />
<p>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</p><br />
<p>Veľ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.</p><br />
<p>Pokiaľ 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.</p><br />
<p>Ak však vytvoríte komponentu samy v kóde, je nutné nezabudnúť ju uvoľniť, keď už nie je ďalej potrebná</p><br />
<p>Pokiaľ umiestnite komponentu na Form Designer a pozriete sa na okno Object Inspector, môžete preskúmať a meniť vlastnosti tejto komponenty.</p><br />
<p>Napr. 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.</p><br />
<p>Na 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.</p><br />
<p>Takisto môžete explicitne nastaviť niektoré vlastnosti objektu v kóde (v príslučnej Implementation časti v okne Source Editor), napr.</p><br />
<syntaxhighlight><br />
Form1.Button1.Height := 48;<br />
</syntaxhighlight><br />
<p>Pokiaľ 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</p><br />
<p>Zhrnúť by sa to dalo tak, že obvykle existujú 3 spôsoby, ako nastaviť každú vlastnosť objektu:</p><br />
* použitím myši<br />
* nastavením hodnoty v Object Inspektore<br />
* explicitne napísaním kódu<br />
<p>Komponenty 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.</p><br />
<p>Dodatoč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.</p><br />
<br />
== Ako používať menu ==<br />
V tejto kapitole sa dočítate o vytváraní Menu položiek do formulárov.<br />
<br />
''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.<br />
<br />
''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í.<br />
<br />
Pre 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.<br />
<br />
Zobrazí 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.<br />
<br />
Všetky položky typu ''MenuItems'', ktoré ste vytvorili cez Edit box môžete nastavovať pomocou okna Object Inspector.<br />
<br />
Kaž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.<br />
<br />
Pri 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.<br />
<br />
== Debugger ==<br />
: ''Už len napísať''.<br />
<br />
== Súbory Lazarus ==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridino, [[User:Kirkpatc]] and Tom Lisjac)<br />
<br />
Pri ukladaní projektu budete vyzvaný na zadanie mena pre dva súbory: <br />
'''xxx.pas''' a '''yyy.lpr'''<br />
(Uložených bude viac súborov). Súbor projektu (lpr) a súbor jednotky (pas) 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.<br />
<br />
Tak, ak uložíte projekt pod menom '''again''', pokus uložiť '''again.pas''' a '''again.lpr''' 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, tak by to prekladač interpretoval ako odkaz sám na seba. <br />
<br />
Tak toto bude výsledok:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Nezabudnite, že adresár môže obsahovať veľa ďalších súborov, ktoré ste už uložili predtým.<br />
<br />
Poznámky o každom súbore:<br />
<br />
'''again.exe:'''<br />
Základný binárny program. Win32 pridáva príponu "exe". Linux niee. Tento súbor bude na Linux obrovský, pretože obsahuje symboly ladenia. Spusťte utilitu "strip" na ich odstránenie a skrátite veľkosť súboru.<br />
<br />
'''again.lpi:'''<br />
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.<br />
<br />
'''again.lpr:'''<br />
Základný zdrojový súbor programu. Napriek špeciálnej prípone Lazarus ide v skutočnosti o kladický 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á robnaké meno programu ako je meno súboru.<br />
<br />
'''againu.lfm:'''<br />
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.<br />
<br />
'''again.lrs:'''<br />
Vygenerovaný resource súbor. Všimnite si, že to nie je súbor Windows resource .<br />
<br />
'''againu.pas:'''<br />
Jednotka, obsahujúce kód formulára.<br />
<br />
'''again.ppu:'''<br />
Preložená jednotka.<br />
<br />
'''ppas.bat:'''<br />
Jednoduchý skript, ktorý linkuje program na produkciu exe. Ak je preklad úspešný, je zmazaný prekladačom.<br />
<br />
== Spolupracovníci a zmeny ==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* 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]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* 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]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* 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]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]<br />
* Preklad z anglického originálu [[Lazarus Tutorial]] a doplnenie obrázkov Palety komponentov. 25.marca 2005 [[User:Slavko]]<br />
* Aktualizácia slovenské preklady z anglického originálu [[Lazarus Tutorial]]. 24.decembra 2008 [[User:Adamm]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/sk&diff=98177Lazarus Tutorial/sk2015-12-09T12:17:36Z<p>Trsek: /* Menu Search */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
== Úvod ==<br />
Lazarus je free a open source vývojový nástroj pre prekladač FreePascal (Object Pascal), ktorý je tiež free a open source. [http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg IDE Lazarus] 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.<br />
<br />
== Začnite - Váš prvý program Lazarus! ==<br />
<br />
(Vďaka [[User:Kirkpatc]])<br />
<br />
Zí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.<br />
<br />
Na 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'.<br />
<br />
Teraz 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:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
</syntaxhighlight><br />
<br />
Stlač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:<br />
<syntaxhighlight><br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
</syntaxhighlight><br />
<br />
Opäť 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.<br />
<br />
Objavia 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.<br />
<br />
Skú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'!!<br />
<br />
Teraz 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.<br />
<br />
Svoju prácu môžete teraz uložiť (a často!!) zvolením Project > Save As > vyše_zvolené_meno_súboru.pas.<br />
<br />
=== Druhá časť ===<br />
Znova 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.<br />
<br />
Upravte svoj kód, aby vyzeral takto:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag =0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
</syntaxhighlight><br />
<br />
Uložte svoju prácu, preložte a spusťte. Ľavé tlačítko bude teraz prepínať medzi dvoma alternatívnymi návestiami.<br />
<br />
Zvyšok je na vás!<br />
<br />
Ak 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]].<br />
<br />
== Editor ==<br />
Pri prvom spustení IDE Lazarus sa na vašej pracovnej ploche objaví niekoľko samostatných, nespojených alebo plávajúcich okien.<br />
<br />
Prvé 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.<br />
<br />
<center>[[Image:LazMain_GTK2.png]]</center><br />
<br />
V 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.<br />
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).<br />
<br />
Pod základným oknom IDE Lazarus sa ešte vľavo obajví okno '''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg Object Inspector]''' a vedľa neho okno '''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg Editora zdrojového kódu]''' (Lazarus Source Editor). Môže sa objaviť ešte jedno menšie okno, nazvané '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', 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.<br />
<br />
Keď 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.<br />
<br />
Počas práce môžu byť zobrazené i ďalšie okná, ako: the '''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg Project Inspector]''', 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.<br />
<br />
=== Základné menu ===<br />
(Main Menu)<br />
<br />
Riadok základného menu obsahuje nasledujúce položky:<br />
<br />
<u>F</u>ile <u>E</u>dit <u>S</u>earch <u>V</u>iew <u>P</u>roject <u>R</u>un <u>C</u>omponents <u>T</u>ools E<u>n</u>vironment <u>W</u>indows <u>H</u>elp<br />
<br />
Ako je zvykom, položky môžu bať vybraté umiestnením myši nad položku menu a kliknutím ľavým tlačítkom myši alebo stlačením Alt-F na klávesnici (základné okno musí mať fokus, ak ho nemá stláčajte opakovane TAB na prepínanie fokusu medzi oknami, kým nie je titulkový pruh uíkladného okna zvýraznený farbou).<br />
<br />
==== Menu File ====<br />
<div class="floatright"> [[Image:FileMenu.png]] </div><br />
* '''New Unit''': Vytvorí nový súbor jednotky (zdrojový kód Pascal).<br />
* '''New Form''': Vytvorí nový formulár: vrátane pripojeného zdrojového súboru Pascal. <br />
* '''New ...''': Poskytuje ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg pop-up menu box]) s rôznymi typmi nových dokumentov.<br />
* '''Open''': Otvorí dialóg pre otvorenie existujúceho súboru. <br />
* '''Revert''': Ruší vykonané editácie a obnovuje súbor do pôvodného stavu. <br />
* '''Open Recent''': Zoznam naposledy otvorených súborov. <br />
* '''Save''': Uloží aktuálny súbor. Ak súbor ešte nemá meno, správa sa ako Save As.<br />
* '''Save As''': Umožňuje vybrať adresár a meno pre uloženie aktuálneho súboru.<br />
* '''Save ALL''': <br />
* '''Close''': Zatvorí aktuálny súbor, spýtajúc sa na uloženie vykonaných úprav.<br />
* '''Close all editor files''': Zatvorí všetky aktuálne otvorené súbory, spýtajúc sa na uloženie úprav.<br />
* '''Clean directory''': Otvorí dialóg s nastaviteľnými filtrami, pre odstránenie súborov z aktuálneho adresára. Užitočné pre odstránenie súborov .bak a zvyškov projektov Delphi.<br />
* '''Print''': Vytlačí zvolený súbor na tlačiarni systému. Táto položka menu sa predvolene neobjavuje, ale najprv je potrebné nainštalovať $Lazdir/components/printers/design/printers4lazide.pas a opäť preložiť IDE.<br />
* '''Restart''': <br />
* '''Quit''': Zatvorí Lazarus, spýtajúc sa na uloženie vykonaných úprav. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Edit ====<br />
<div class="floatright"> [[Image:EditMenu.png]] </div><br />
* '''Undo''': Vrátenie poslednej editovanej akcie, ponechajúc Editor v stave tesne pred ňou.<br />
* '''Redo''': Opakovanie poslednej akcie, ktorá bola vrátená pomocou Undo.<br />
* '''Cut''': Vystrihne vybraný text a uiestni ho do schránky.<br />
* '''Copy''': Prekopíruje vybratý text do schránky. <br />
* '''Paste''': Vloží obsah schránky na pozíciu kurzora. Ak bol vybratý text, prepíše ho.<br />
* '''Indent selection''': Posúva odsadenie vybratého textu doprava o rozsah zadaný v nastavení Environment -> Editor options -> General -> Block indent. Funkciaje užitočná pre formátovanie zdrojovéhokódu a vyvorenie blokovej štruktúry.<br />
* '''Unindent selection''': Odstraňuje jednu úroveň odsadenia, posunúc text doľava o rozsah zadaný v nastavení Editora Block indent. <br />
* '''Enclose selection''': Otvára pop-up menu s voľbami pre logické zakončenie vybratého textu (begin ... end; try ... except; try ... finally; repeat ... until; { ... } atď).<br />
* '''Uppercase selection''': Konvertuje vybratý text na veľké písmená.<br />
* '''Lowercase selection''': Konvertuje vybratý text na malé písmená.<br />
* '''Tabs to spaces in selection''': Konveruje všetky tabulátory vybratého textu na medzery, podľa nastavenia Environment -> Editor options -> General -> Tab widths. Počet medzier nemá fixnú veľkosť, ale je to potrebný počet medzier na zaplnenie potrebnej šírky tabelátora medzerami.<br />
* '''Break lines in selection''': Zalomí riadok vybratého textu, ktorý presahuje 80 znakov alebo počet zadaný v nastavení Environment -> Editor options -> Display -> Right Margin, riadok je zalomený na hranici slova a pokračuje na nasledujúcom riadku.<br />
* '''Comment selection''': Vloží značky komentára // na každý riadok vybratého textu.<br />
* '''Uncomment selection''': Odstráni značky komentára.<br />
* '''Sort selection''': Zoradí riadky (alebo slová v odstavci) podľa abecedy; voľby pre smer radenia, citlivosť na veľkosť písmen. Uprostred zrojového kódu, samozrejme, to neprichádza do úvahy, ale ak máte zoznam, ktorý treba zoradiť, oceníte tento trik.<br />
* '''Select''': Umožní výber blokov textu. Voľby zahŕňajú Vybrať všetko, vybrať po brace, vybrať odstavec alebo riadok, atď.<br />
* '''Insert from character map''': Umožní vloženie symbolu, ktorý nie je na klávesnici, vybratý z pop-up mapy znakov.<br />
* '''Insert text''': Zobrazí pop-up menu pre vloženie štandartných textov, ako kľúčové slová CVS (Author, Date, Header atď), či poznámku GPL, meno užívateľa, dátum a čas.<br />
* '''Complete code''': Dokončí kód pod kurzorom. Závisí od kontextu a šetrí mnoho času. Napríklad dokončuje triedy, pridaním súkromných premenných, prístupové metódy Get a Set vlastností a pridaním tela metód. Na priradeniach premenných (tj. i:=3;) pridáva deklaráciu premennej. Pri forward deklarovaných procedúrach pridáva telá procedúr. Pri priradení udalostí (OnClick:=) pridáva definíciu a telo metódy. Viď [[Lazarus IDE Tools/sk | Nástroje IDE Lazarus]].<br />
* '''Extract procedure''': Použije vybratý text (príkaz alebo sériu príkazov) na vytvorenie novej procedúry.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Search ====<br />
<div class="floatright"> [[Image:SearchMenu.png]] </div><br />
* '''Find''': Obdoba vlastnosti skoro všetkých grafických editorov: pop-up dialógový box pre zadanie hľadaného textu a volieb hľadania, ako citlivosť na veľkosť písmen, celé slová, začiatok, oblasť a smer hľadania.<br />
* '''Find Next, Find previous''': Pokračuje v hľadaní predtým zvoleného textu, zadaným smerom.<br />
* '''Find in files''': Hľadá textový reťazec v súboroch: pop-up dialóg s voľbami všetky otvorené súbory, všetky súbory v projekte alebo všetky adresáre; umožňuje i zadanie masky pre výber typu súboru.<br />
* '''Replace''': Podobné ako '''Find'''; zobrazí pop-up dialóg s miestom pre zadanie hľadaného reťazca a nahradzujúceho textu a volieb pre citlivosť na veľkosť písmen, smer atď.<br />
* '''Incremental find''': Hľadanie reťazca kým zadávate hľadaný reťazec. Príklad: stlačíte "l" a je zvýraznené prvé "l", ak potom stlačíte "a", editor nájde nasledujúce "la" atď.<br />
* '''Goto line''': Presunie kurzor na zadaný riadok súboru.<br />
* '''Jump back''': Presunie kurzor späť k nasledujúcej záložke (musíte použiť Add jump point to history). Presúva i na záložky iných súborov otvorených v Editore. <br />
* '''Jump forward''': Presunie kurzor vpred na nasledujúcu záložku.<br />
* '''Add jump point to history''': Pridá do súboru záložky alebo skokové body.<br />
* '''View Jump-History''': Ukáže zoznam záložiek v súbore: '''Zatiaľ neimplementované???'''.<br />
* '''Jump to next error''', '''Jump to previous error''': Skoč na na pozíciu nasledujúcej/predchádzajúcej hlásenej chyby v zdrojovom súbore.<br />
* '''Set a free bookmark''': označ riadok, na ktorom je kurzor, ďalšou dostupnou (voľnou) číslovanou záložkou a pridaj ju do zoznamu záložiek. Pozor, vyskakovacie menu (získané kliknutím pravým tlačítkom myši na príslušný riadok zdrojového súboru) poskytuje väčší rozsah možností záložky, umožňujúc zadať číslo záložky, či skočiť na očíslovanú záložku, nie len na nasledujúcu/predchádzajúcu. <br />
* '''Jump to next bookmark''', '''Jump to previous bookmark''': Skoč na nasledujúcu/predchádzajúcu záložku v číselnom poradí.<br />
* '''Find other end of code block''': Ak je kurzor umiestnený na '''begin''', presunie kurzor na príslušný '''end''' a naopak.<br />
* '''Find code block start''': Presunie kurzor na '''begin''' procedúry alebo funkcie, v tele ktorej je umiestnený.<br />
* '''Find Declaration at cursor''': Presunie kurzor na miesto deklarácie zvoleného identifikátora. Môže to byť v rovnakom súbore alebo v inom. Ak nie je otvorený, otvorí ho v Editore (tak ak je procedúra alebo funkcia deklarovaná napr. v <u>classesh.inc </u>, tento bude otvorený v Editore).<br />
* '''Open filename at cursor''': Otvorí súbor, ktorého meno je vybraté kurzorom. Užitočné na zobrazenie <u>Include </u> súborov alebo súborov obsahujúcich iné <u>Jednotky</u> použité v projekte.<br />
* '''Goto include directive''': Ak je kurzor umiestnený v súbore, ktorý je <u>Included</u> v inom súbore, presunie kurzor na miesto v súbore, odkiaľ bol volaný súbor <u>Include</u>.<br />
* '''Find Identifier References''': Poskytuje zoznam všetkých riadkov aktuálneho súboru, projektu alebo pripojených súborov, na ktorých je spomenutý identifikátor. <br />
* '''Rename Identifier''': Umožňuje vývojárovi premenovať identifikátor. Pomocou vyskakovacie menu možno určiť, či sa má premenovanie vykonať len v aktuálnom súbore, v projekte, vo všetkých otvorených alebo pripojených súboroch atď. Dokoncá je možné premenovať aj identifikátory vyskytujúce sa v komentároch. Túto vlastnosť môžete využiť, napríklad, al prekladač hlási, že identifikátor už existuje, takže môžete potebovať nové meno svojho identifikátora.<br />
* '''Procedure List''': Poskytuje zoznam všetkých procedúr a funkcií v aktuálnom súbore, spolu s číslom riadku, kde sú definované.<br />
'''<div style="clear:both;"></div><br />
<br />
==== Menu View ====<br />
Ovládanie zobrazenia rôznych okien a panelov na obrazovke.<br />
<div class="floatright"> [[Image:ViewMenu.png]] </div><br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/ViewMenuSnapshot.png </div><br />
* '''Object Inspector''': Okno, zvyčajne umiestnené na ľavej strane obrazovky, ktoré zobrazuje funkcie formulára, ktorý je na obrazovke. Kliknutím myšou na ktorýkoľvek komponent formulára, spôsobí, že detaily komponentu budú zobrazené v Object Inspector. Na jeho vrchu je panel, ktorý zobrazuje stromovú štruktúru aktuálneho projektu a komponenty formulára môžu byť vybraté aj z tohoto panela. Základný panel má dve záložky, ktoré umožňujú zobraziť '''Properties''' alebo '''Events'''. Výber '''Properties''' zobrazí vlastnosti zvoleného komponentu v dvoch stĺpcoch, ľavý zobrazuje meno vlastnosti a pravý jej hodnotu. Výber '''Events''' zobrazí tiež dva stĺpce, ľavý s menom udalostí priradených ku komponentu a pravý ukazuje akciu, ktorá je výsledkom udalosti (procedúru udalosti). Ak nie je definovaná akcia, kliknutie na tlačítko <div class="box">...</div> spôsobí zobrazenie Editora zdrojového kódu s kurzorom umiestneným na prázdenj deklarácii procedúry, do ktorej môžete zadať svoj kód udalosti.<br />
* '''Source Editor''': Základné okno pre editovanie zdrojového kódu. Jeho správanie je veľmi podobné iným grafickým editorom textu, takže môžete myšou presúvať kurzor nad zobrazeným textom a stlačenie ľavého tlačítka myši počas posúvania vyberie a označí text. Pravým kliknutím zobrazíte kontextové menu, ale ak ste zvyknutý na editory Windows, Gnome alebo KDE, budete márne hľadať zvyčajné funkcie, ako Vystrihnúť, Kopírovať a Vložiť, ale zahŕňa voľby ako '''Find Declaration''' alebo '''Open File at Cursor'''. Na vrchu okna Editora zdrojového kódu je niekoľko záložiek, reprezentujúcich otvorené súbory; kliknutie na jednu z nich vyvolá daný súbor do popredia, takto môžete jednoducho kopírovať zo súboru do súboru a vykonávať bežné editovacie funkcie. Editor zdrojového kódu poskytuje farebné zvýraznenie syntaxe kódu, s rôznymi farbami pre interpunkciu, komentáre, reťazcové konštanty atď. Rovnako zabezpečuje automatické odsadenie riadkov kódu. Funkcie a zhľad Editora zdrojového kódu sú nastaviteľné cez menu Environment -> Editor options a zvolením jednej z viacerých záložiek.<br />
* '''Code Explorer''': Okno, zvyčajne umiestnené na pravej strane pracovnej plochy, ktoré v stromovej forme zobrazuje štruktúru kódu aktuálnej jednotky alebo programu. Ak zmeníte súbor zobrazený v okne Editora zdrojového kódu, musíte zvoliť tlačítko Refresh na zobrazenie novej štruktúry súboru. Okno po otvorení zvyčajne zobrazuje meno jednotky a vetvy pre časti Interface a Implementation, ale kliknutím na <div class="box">+</div> vľavo od vetvy otvoríte podvetvy a vetvičky :-), do úplných detailov samotných konštánt, typov apremenných, ako ja deklarácií procedúr a funkcií.<br />
* '''Units...''': pop-up dialóg so zoznamom súborov jednotiek aktuálneho projektu, ktorý umožní vybrať súbor Zobrazený v Editore zdrojového kódu. Zaškrtnutím voľby Multi select môžete vybrať a otvoriť viac jednotiek naraz, ale len jedna bude zobrazená. Táto položka menu je lepšia ako položka Project -> Project Inspector, ale zobrazuje len zoznam jednotiek a dovoľuje ich otvoriť.<br />
* '''Forms...''': pop-up dialóg so zoznamom formulárov aktuálneho projektu a umožní vybrať jeden alebo viac z nich pre zobrazenie.<br />
* '''View Unit Dependencies''': pop-up dialóg, ktorý zobrazí stromovú štruktúru závislostí aktuálne otvorenej jednotky. Mnoho súborov zobrazených v tomto okne má svoje svoje vlastné <div class="box">+</div>, ktoré umožňujú preskúmať ich vlastné závislosti, často rekurzívnym spôsobom.<br />
* '''View Unit Information''': <br />
* '''Toggle form / unit view F12''': Prepína zobrazenie Formulár/Zdrojový kód formulára. Jednoduchším spôsobom je stlačenie F12 na klávesnici, ale táto položka menu má rovnaký význma.<br />
* '''Messages''': Okno so správami prekladača, zobrazuje postup úspešného prekladu alebo vypisuje nájdené chyby.<br />
* '''Search Results''': Okno s výsledkom hľadania textu v súboroch.<br />
* '''View Anchor Editor''': <br />
* '''View Component Pallete''': <br />
* '''View IDE Speed buttons''': <br />
* '''Debug windows''': pop-up menu s niekoľkými voľbami pre činnosť a konfiguráciu Debuggera. [[#The_Debugger|debugger]] je popísaný ďalej.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Project ====<br />
<div class="floatright"> [[Image:ProjectMenu.png]] </div><br />
* '''New Project''': Vytvorí nový projekt a poskytuje možnosť zvoliť typ projektu.<br />
* '''New Project from file''': Umožní vytvoriť nový projekt z existujúceho súboru.<br />
* '''Open Project''': Otvorí projekt, ktorý už bol vytvorený a uložený. Dialóg ponúkne zoznam súborov Lazarus Project Information (.lpi), z ktorých si môžete vybrať.<br />
* '''Open Recent Project''': Otvorí projekt zo zoznamu naposledy spracovávaných projektov.<br />
* '''Close Project''':<br />
* '''Save Project''': Obdoba File -> Save: uloží všetky súbory aktuálneho projektu; ak ešte neboli uložené, ponúkne dialóg na zadanie mena (ako Save Project As...).<br />
* '''Save Project As...''': Požiada meno súboru pre uloženie projektu. Ponúkne prednastavené meno súboru Project1.lpi, ale môžete si zvoliť vlastné. Lazarus nedovoľuje použiť rovnaké meno súboru pre súbor projektu a súbor jednotky. Viz [[Lazarus Tutorial/sk#Súbory_Lazarus| nižšie]]).<br />
* '''Publish Project''': Vytvorí kópiu celého projektu. Bežný adresár projektu obsahuje veľa informácií, ktoré nie je potrebné publikovať (informácie o session, súbory .ppu, .o, .exe. Publish Project vytvorí súbor .lpi obsahujúci len základné informácie a do kópie presunie len zdrojové kódy, zo všetkych podadresárov. V dialógu môžete nastaviť filter exclude/include a spôsob kompresie výstupného archívu. Viz [[Lazarus IDE Tools/sk| Nástroje IDE Lazarus]]<br />
* '''Project Inspector''': pop-up dialóg so stromovou štruktúrou súborov aktuálneho projektu. Dovoľuje pridať, odstrániť alebo otvoriť zvolené súbory alebo zmeniť vlastnosti projektu.<br />
* '''Project Options...''': pop-up dialóg s voľbami nastavenia projektu (titulok, meno cieľového súboru), Forms (dovoľuje výber z dostupných formulárov, a ich nastavenie Auto-create) a Info (určuje, či editačné informácie majú byť uložené pre zatvárané súbory alebo len pre súbory projektu).<br />
* '''Compiler options ...''': Konfigurácia prekladača, zahŕňa záložky: '''Paths''' definícia ciest hľadania jednotiek, include súborov, knižníc... ako aj voľbu pomocného typu formulára (gtk, gnome, win32); '''Parsing''' voľba pravidiel pre syntaktickú analýzu programov, '''Code''' voľby optimalizácie pre rýchlejšie alebo pomalšieprogramy, výber cieľového procesora, veľkosti halsy atď; '''Linking''' voľby použitia ladenia, statických alebo dynamických knižníc atď; '''Messages''' typy správ, generované pri výskyte chyby; '''Other''' určenie predvoleného konfiguračného súboru (fpc.cfg) alebo iného súboru; '''Inherited''' stromový diagram ukazujúci voľby zdedené z už zahrnutých jednotiek; '''Compilation''' dovoľuje zadať príkazy vykonávané pred/po spustení prekladača a použitie súborov Make.<br />
* '''Add editor file to Project''': Do projektu pridá súbor, ktorý je práve upravovaný.<br />
* '''Remove from Project''': pop-up menu na odstránenie súboru z projektu.<br />
* '''View Source''': Bez ohľadu na to, ktorý súbor je práve upravovaný, zobrazí základný programový súbor (.dpr) alebo základný súbor .pas, ak .dpr neexistuje.<br />
<br />
==== Menu Run ====<br />
<div class="floatright"> [[Image:RunMenu.png]] </div><br />
* '''Build''': Prekladá súbory projektu, ktoré boli zmenené od posledného prekladu.<br />
* '''Build all''': Prekladá všetky súbory projektu, bez ohľadu na to, či boli alebo neboli zmenené.<br />
* '''Quick compile''':<br />
* '''Abort build''': Zastaví proces prekladu, ktorý je spustený - či už sa spamätáte, že máte niečo zle a chcete zastaviť preklad, alebo systém pracuje veľmi dlho a niečo je obvykle zle.<br />
* '''Run''': Obvyklý spôsob spustenia prekladača a, ak je preklad úspešný, spustenia aplikácia. Lazarus uloží kópie súborov, potom spustí prekladač a linker, potom začne vykonávať finálny programový súbor (.exe).<br />
* '''Pause''': Preruší vykonávanie aktuálne bežiaceho programu. Tým vám umožní skontrolovať akýkoľvek výstup, ktorý bol generovaný; vykonávanie môže pokračovať opätovným vybratím Run.<br />
* '''Step into''': Used in conjunction with the debugger, causes execution of the program one step at a time up to a bookmarked point in the source.<br />
* '''Step over''': Causes stepwise execution up to the statement marked, then skips the marked statement, and continues execution at normal speed. Useful in trying to isolate a statement that introduces a logical error.<br />
* '''Run to cursor''': Spôsobí vykonávanie programu normálnou rýchlosťou (tj. nie jeden príkaz naraz) pokiaľ nedôjde po príkaz, na ktorom je umiestnený kurzor; potom zastaví. Pokračovanie vykonávania normálnou rýchlosťou dosiahnete zvolením '''Run'''.<br />
* '''Stop''': Spôsobí zastavenie vykonávania bežiaceho programu. Nasledujúce zvolenie '''Run''' nepokračuje vo vykonávaní, ale spustí program od začiatku (ak treba i s prekladom).<br />
* '''Run Parameters''': Otvorí viacstránkové pop-up okno, v ktorom môžete tadať voľby a parametre príkazového riadku pre spustenie programu; výber zobrazenia spusteného programu (tj. môžete použiť vzdialený X terminál terminal v Linuxe); môžete prepísať niektoré systémové premenné.<br />
: Veľmi zaujímavou možnosťou tohoto sub-menu je aktivácia okna terminálu pre zobrazenie vstupu/výstupu konvenčnej konzoly Pascalu. Ak pracujete na konzolovom programe Pascalu, (tj. nepoužijete pre program GUI s formulármi, tlačítkami...), potom môžete zaškrtnúť políčko "Use launching application". Keď to nastavíte prvý krát a skúsite sekvenciu Compile/Run, asi dostanete divoké hlásenie hovoriace<br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied".<br />
: Ak toto nastane, potrebujete zmeniť prístupové práva príslušného súboru; možno to budete musieť urobiť ako root (administrator). Po tomto, sa pri každom spustení programu objaví konzolové okno, v ktorom sa budú obajovať všetky vaše textové vstupy/výstupy (readln, writeln ...).<br />
: Po skončení práce vášho programu sa objaví na obrazovke správa "Press enter". Takto celý výstup generovaný vašim programom ostane na obrazovke, aby ste mali šancu prečítať si ho a okno bude zatvorené až po stlačení 'enter'.<br />
: '''Poznámka:''' keďže v aktuálnej verzii nie je pripravený príkaz konzoly pre používateľov Windows. Zatiať Lazarus team odkazuje, že musí pracovať nasledujúci príkaz (vo WinXP)<br />
C:\Windows\system32\cmd.exe /C ${TargetCmdLine}<br />
* '''Reset debugger''': Obnovuje debugger do jeho pôvodného stavu, všetky ladiace body a hodnoty premenných... sú zabudnuté.<br />
* '''Build file''': Preloží súbor, ktorý je aktuálne otvorený v Editre zdrojového kódu.<br />
* '''Run file''': Preloží, spojí a spustí aktuálne otvorený súbor. <br />
* '''Configure Build + Run File''': Otvorí viacstránkové okno s voľbami, ktoré nastavia preklad práve tohoto súboru pri výbere '''Build Project''', dovolia výber pracovného adresára, použitie rôznych makier... Potom preloží a spustí súbor.<br />
: Tieto posledné tri voľby umožňujú otvoriť (a spravovať) testovací projekt. Použite File -> Open pre otvorenie súboru .lpr a v nasledujúcom dialógu stlačte cancel pre otvorenie tohoto súboru ako "normálneho zdrojového" súboru.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Components ====<br />
* '''Open Package''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png zoznam nainštalovaných balíčkov], s možnosťou [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png otvoriť jeden alebo viac z nich], alebo výber rôznych všeobecných volieb alebo volieb prekladača.<br />
* '''Open Package File''': Otvorí jeden zo súborov vo zvolenom balíčku.<br />
* '''Open package of current unit''': <br />
* '''Open Recent Package''': Ponúkne zoznam naposledy otvorených balíčkov.<br />
* '''Add Active Unit to Package''': Pridá aktuálny súbor (otvorený v editore) do balíčka.<br />
* '''Package Graph''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graf vzťahov] jednotlivých balíčkov, ktoré sú používané (ak nepoužívate žiadny iný balíček, budú zobrazené balíčeky Lazarus, FCL a LCL).<br />
* '''Configure custom components''': táto položka už nie je...<br />
<br />
==== Menu Tools ====<br />
<div class="floatright"> [[Image:ToolsMenu.png]] </div><br />
* '''Configure custom tools''': Umožňuje užívateľovi pridať do nástrojov rôzne externé nástroje (zvyčajne makrá).<br />
* '''Project templates options''': <br />
* '''Quick syntax check''': Vykoná rýchlu kontrolu syntaxe vášho zdrojového kódu bez skutočného prekladu. Základný krok pri vývoji veľkých alebo komplikovaných programov, ak nechcete mrhať čas prekladom chybného kódu. <br />
* '''Guess unclosed block''': Užitočný nástroj, ak máte zložitú alebo vnorenú blokovú štruktúru a chcete niekde nájsť '''end'''.<br />
* '''Guess misplaced IFDEF/ENDIF''': Užitočné, ak ak máte zložitú alebo vnorenú štruktúru makra a potebujete nájsť direktívu ENDIF. <br />
* '''Make resource string''': Z vybratého reťazca robí zdrojový reťazec (''resource string'') jeho umiestnením v sekcii resourcestrings. Výhodou zdrojových reťazcov je, že môžu byť zmenené bez poteby rekompilácie projektu!<br />
* '''Diff''': Umožňuje porovnanie dvoch súborov (alebo dvoch verzií rovnakého súboru) a nájdenie rozdielov. Poskytuje voľby na ignorovanie prázdneho miesta na začiatku alebo konci riadkov alebo rôznych zakončení riadkov (CR+LF a LF). Užitočné na kontrolu, či boli urobené zmeny od poslednej aktualizácie CVS atd.<br />
* '''Check LFM file in editor''': Umožňuje kontrolu súboru LFM, ktorý obsahuje nastavenia aktuálneho formulára.<br />
* '''Convert Delphi unit to Lazarus unit''': Pomáha pri prenose aplikácií Delphi do Lazarus; robí potrebné zmeny v zdrojovom súbore. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] a [[Code Conversion Guide]].<br />
* '''Convert DFM file to LFM''': Pre prenos z Delphi do Lazarus. Konvertuje súbory Form Description z Delphi do Lazarus. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] and [[Code Conversion Guide]].<br />
* '''Build Lazarus''': Spúšťa znovuzostavenie Lazarus z naposledy stiahnutých alebo aktualizovaných súborov CVS (proces môžete sledovať v okne '''Messages''').<br />
* '''Configure "Build Lazarus"''': Umožňuje určiť, ktoré časti Lazarus budú znova zostavené a ako. Napríklad, môžete nastaviť, že bude preložená len LCL alebo všetko okrem príkladov. Môžete nastaviť ktoré rozhranie LCL použiť a môžete nastaviť cieľový operačný systém, či nastaviť iný cieľový adresár. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Environment ====<br />
<div class="floatright"> [[Image:EnvironmentMenu.png]] </div><br />
* '''Environment options''': viacstránkové okno so záložkami pre<br />
** '''Files''' - cesty k predvolenému adresáru, prekladaču, zdrojovému adresáru a dočasnému adresáru pre prekladanie;<br />
** '''Desktop''' - voľby pre jazyk, správanie automatického ukladania, ukladanie vlastností pracovnej plochy, hinty pre paletu komponentov a speed tlačítka;<br />
** '''Windows''' - zadanie veľkosti a správania rôznych okien;<br />
** '''Form Editor''' - výber farieb pre editovanie formulárov;<br />
** '''Object Inspector''' - výber farieb a veľkosti položiek;<br />
** '''Backup''' - udáva ako zálohovať súbory pri úpravách;<br />
** '''Naming''' - udáva príponu názvos súborov Pascalu ('.pp' alebo '.pas'), či sa majú ukladať malými písmenami, či vykonávať automatické mazanie alebo premenovanie.<br />
* '''Editor options''': viacstránkové okno so záložkami pre<br />
** '''General''' - určuje správanie ako automatické odsadenie, zvýrazňovanie zátvoriek, drag-drop upravovanie, posúvanie, zvýrazňovanie syntaxe, zobrazovanie hintov, veľkosť odsadenia bloku a tabulátora, hranicu Undo;<br />
** '''Display''' - voľby pre zobrazovanie čísel riadkov, zobrazovanie guttera, veľkosť a typ fontu editora a okno so zobrazením farieb rôznych typov syntaxe, ako komentáre, značky, direktívy, chyby a ladiace body;<br />
** '''Key Mappings''' - voľby pre výber schémy Lazarus alebo Turbo Pascal;<br />
** '''Color''' - umožňuje nastaviť farebnú schému textu pre viac typov jazyka, ako Object Pascal, C++, Perl, HTML, XML a skripty shellu. Zobrazuje aj ukážkový panel (pre zvolený jazyk); <br />
** '''Code Tools''' - umožňuje výber funkcií ako Identifier Completion, tooltips, zadanie šablón názvov súborov, šablóny pre dokončovanie kódu.<br />
* '''Debugger Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - voľby debugera: bez, GNU debugger (gdb) alebo gdb cez SSH, zadanie vyhľadávacej cesty a volieb pre zvolený debugger;<br />
** '''Event log''' - nastavenie, či zmazať log pri spustení a ktoré správy zobrazovať;<br />
** '''Language Exceptions''' - výber výnimiek, ktoré budú ignorované;<br />
** '''OS Exceptions''' - umožňuje pridať isté signály, ktoré aplikuje na aktuálny operačný systém.<br />
* '''Code Tool Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - zadanie ďalších ciest pre hľadanie zdrojových súborov a určenie metódy Jumping Method;<br />
** '''Code Creation''' - určuje, či je vytváraný kód pridaný pred alebo za určitú funkciu;<br />
** '''Words''' - určuje, či sú kľúčové slová Pascal zadávané malými alebo veľkými písmenami, alebo s veľkými počiatočnými písmenami;<br />
** '''Line Splitting''' - zavádza pravidlá zalamovania riadkov (pred alebo po interpunkčných znamienkach, za kľúčovým slovom atď);<br />
** '''Space''' - určuje či sú medzery automaticky pridané alebo za určité snktaktické črty, ako kľúčové slová, alebo interpunkčné značky. <br />
* '''Code Tools Defines Editor''':<br />
* '''Re-scan FPC Source directory''' Znova prechádza adresár. Lazarus používa zdrojové kódy FreePascal na generovanie správnych obslúh udalostí a pri hľadaní deklarácií. Ak niekto zmení adresár v nastavení prostredia, potom je tento adresár znova prehľadaný, aby bolo zaistené, že Lazarus používa verziu uchovanú v danom umiestnení. Ale ak bol tento adresár zmenený a Lazarus nebol o tom informovaný, potom sa môžu objaviť chyby pri navrhovaní formulárov alebo vykonaním "Find declaration". Ak sa stretnete s touto chybou, môžete urobiť dve veci:<br />
*# skontrolovať nastavenie zdrojového adresára vo voľbách prostredia.<br />
*# znova prehľadať zdrojový adresár FreePascal.<br />
<br />
==== Menu Windows ====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Obsahuje zoznam aktuálne otvorených súborov a dostupných okien, ako '''Source Editor''', '''Object Inspector''', či '''Project Inspector'''. Kliknutím na názov jedného z okien je okno vyvolané do popredia a získava zameranie.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Help ====<br />
* '''Online Help''' otvorí okno prehliadača so súborom c:/lazarus/docs/index.html, ktoré obsahuje obrázok bežiacej cheetah a niekoľko odkazov nafew links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' umožňuje nastaviť prehliadač a databázy, z ktorých budú čítané informácie nápovedy. Tieto voľby dovoľujú užívateľovi zadať jeden z on-line dokumentov na webovej stránke Lazarus-CCR, niektoré ďalšie webové stránky obsahujúce dokumenty, alebo lokálne umiestnenie dokumentácie. Predvolene, ak umiestnite kurzor nad kľúčové slovo FCL alebo RunTime Library (ale nie LCL) a potom stlačíte <<F1>> dostanete sa na príslušnú stránku.<br />
* '''About Lazarus''' Zobrazí pop-up box s informáciami o Lazarus. <br />
<br />
Časom tu bude úplný on-line Help, s informáciami o syntaxe Pascalu, o použití IDE, o používaní, úpravách a tvorbe komponentov a tipy ako urobiť niektoré úlohy. Táto časť sekcie Dokumentácia (to čo teraz čítate) predstavuje začiatok procesu. '''Potrebujeme spolupracovníkov, ktorí sú ochotní pomôcť: Editácia WiKi je veľmo jednoduchá.'''<br />
<br />
== Paleta komponentov ==<br />
Panel 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).<br />
<br />
Ak 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.<br />
<br />
V 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.<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
: ''Najčastejšie používané komponenty''<br />
<center>[[Image:Component_Palette_Standart.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tmainmenu.html TMainMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tpopupmenu.html TPopupMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tbutton.html TButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlabel.html TLabel], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tedit.html TEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tmemo.html TMemo], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/ttogglebox.html TToggleBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcheckbox.html TCheckBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tradiobutton.html TRadioButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlistbox.html TListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcombobox.html TComboBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tscrollbar.html TScrollBar], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tgroupbox.html TGroupBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tstatictext.html TStaticText], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tradiogroup.html TRadioGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tcheckgroup.html TCheckGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpanel.html TPanel], [http://lazarus-ccr.sourceforge.net/docs/lcl/actnlist/tactionlist.html TActionList]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
''Ďalšie často používané komponenty:''<br />
<center>[[Image:Component_Palette_Additional.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tbitbtn.html TBitBtn], [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tspeedbutton.html TSpeedButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/timage.html TImage], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tshape.html TShape], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tbevel.html TBevel], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpaintbox.html TPaintBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tnotebook.html TNotebook], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tlabelededit.html TLabeledEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tsplitter.html TSplitter], [http://lazarus-ccr.sourceforge.net/docs/lcl/maskedit/tmaskedit.html TMaskEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/checklst/tchecklistbox.html TCheckListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tscrollbox.html TScrollBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tapplicationproperties.html TApplicationProperties], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tstringgrid.html TStringGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tdrawgrid.html TDrawGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/pairsplitter/tpairsplitter.html TPairSplitter]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[Image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[Image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Niektoré užitočné '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples dialógové]''' procedúry alebo funkcie nenájdete na palete, ale je ľahšie ich volať priamo zo zdrojového kódu.<br />
<br />
Niekoľ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.<br />
<br />
Niektoré 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.<br />
<br />
Vyskúš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!<br />
<br />
* '''Misc'''<br />
<center>[[Image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox<br />
<br />
* '''Data Controls'''<br />
''Komponenty Data-aware, ktoré do zančnej miery replikujú skupiny Standard a Additional, ale sú použiteľné s databázami:''<br />
<center>[[Image:Component_Palette_DataControls.png]]</center><br />
: TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
<br />
* '''Data Access'''<br />
<center>[[Image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
<br />
* '''System'''<br />
<center>[[Image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TTimer TTimer], TIdleTimer, [[doc:fcl/process/tprocess.html|TProcess]]<br />
<br />
* '''SynEdit'''<br />
: ''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 [http://synedit.sourceforge.net synedit na sourceforge].<br />
<br />
<center>[[Image:Component_Palette_SynEdit.png]]</center><br />
: TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pre 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.<br />
<br />
Ak 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.<br />
<br />
== Ako používať základné (Standard), spoločné (Common) a rozšírené komponenty ==<br />
<p>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</p><br />
<p>Veľ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.</p><br />
<p>Pokiaľ 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.</p><br />
<p>Ak však vytvoríte komponentu samy v kóde, je nutné nezabudnúť ju uvoľniť, keď už nie je ďalej potrebná</p><br />
<p>Pokiaľ umiestnite komponentu na Form Designer a pozriete sa na okno Object Inspector, môžete preskúmať a meniť vlastnosti tejto komponenty.</p><br />
<p>Napr. 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.</p><br />
<p>Na 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.</p><br />
<p>Takisto môžete explicitne nastaviť niektoré vlastnosti objektu v kóde (v príslučnej Implementation časti v okne Source Editor), napr.</p><br />
<syntaxhighlight><br />
Form1.Button1.Height := 48;<br />
</syntaxhighlight><br />
<p>Pokiaľ 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</p><br />
<p>Zhrnúť by sa to dalo tak, že obvykle existujú 3 spôsoby, ako nastaviť každú vlastnosť objektu:</p><br />
* použitím myši<br />
* nastavením hodnoty v Object Inspektore<br />
* explicitne napísaním kódu<br />
<p>Komponenty 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.</p><br />
<p>Dodatoč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.</p><br />
<br />
== Ako používať menu ==<br />
V tejto kapitole sa dočítate o vytváraní Menu položiek do formulárov.<br />
<br />
''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.<br />
<br />
''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í.<br />
<br />
Pre 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.<br />
<br />
Zobrazí 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.<br />
<br />
Všetky položky typu ''MenuItems'', ktoré ste vytvorili cez Edit box môžete nastavovať pomocou okna Object Inspector.<br />
<br />
Kaž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.<br />
<br />
Pri 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.<br />
<br />
== Debugger ==<br />
: ''Už len napísať''.<br />
<br />
== Súbory Lazarus ==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridino, [[User:Kirkpatc]] and Tom Lisjac)<br />
<br />
Pri ukladaní projektu budete vyzvaný na zadanie mena pre dva súbory: <br />
'''xxx.pas''' a '''yyy.lpr'''<br />
(Uložených bude viac súborov). Súbor projektu (lpr) a súbor jednotky (pas) 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.<br />
<br />
Tak, ak uložíte projekt pod menom '''again''', pokus uložiť '''again.pas''' a '''again.lpr''' 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, tak by to prekladač interpretoval ako odkaz sám na seba. <br />
<br />
Tak toto bude výsledok:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Nezabudnite, že adresár môže obsahovať veľa ďalších súborov, ktoré ste už uložili predtým.<br />
<br />
Poznámky o každom súbore:<br />
<br />
'''again.exe:'''<br />
Základný binárny program. Win32 pridáva príponu "exe". Linux niee. Tento súbor bude na Linux obrovský, pretože obsahuje symboly ladenia. Spusťte utilitu "strip" na ich odstránenie a skrátite veľkosť súboru.<br />
<br />
'''again.lpi:'''<br />
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.<br />
<br />
'''again.lpr:'''<br />
Základný zdrojový súbor programu. Napriek špeciálnej prípone Lazarus ide v skutočnosti o kladický 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á robnaké meno programu ako je meno súboru.<br />
<br />
'''againu.lfm:'''<br />
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.<br />
<br />
'''again.lrs:'''<br />
Vygenerovaný resource súbor. Všimnite si, že to nie je súbor Windows resource .<br />
<br />
'''againu.pas:'''<br />
Jednotka, obsahujúce kód formulára.<br />
<br />
'''again.ppu:'''<br />
Preložená jednotka.<br />
<br />
'''ppas.bat:'''<br />
Jednoduchý skript, ktorý linkuje program na produkciu exe. Ak je preklad úspešný, je zmazaný prekladačom.<br />
<br />
== Spolupracovníci a zmeny ==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* 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]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* 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]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* 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]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]<br />
* Preklad z anglického originálu [[Lazarus Tutorial]] a doplnenie obrázkov Palety komponentov. 25.marca 2005 [[User:Slavko]]<br />
* Aktualizácia slovenské preklady z anglického originálu [[Lazarus Tutorial]]. 24.decembra 2008 [[User:Adamm]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/sk&diff=98168Lazarus Tutorial/sk2015-12-08T12:38:49Z<p>Trsek: /* Menu Search */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
== Úvod ==<br />
Lazarus je free a open source vývojový nástroj pre prekladač FreePascal (Object Pascal), ktorý je tiež free a open source. [http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg IDE Lazarus] 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.<br />
<br />
== Začnite - Váš prvý program Lazarus! ==<br />
<br />
(Vďaka [[User:Kirkpatc]])<br />
<br />
Zí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.<br />
<br />
Na 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'.<br />
<br />
Teraz 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:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
</syntaxhighlight><br />
<br />
Stlač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:<br />
<syntaxhighlight><br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
</syntaxhighlight><br />
<br />
Opäť 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.<br />
<br />
Objavia 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.<br />
<br />
Skú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'!!<br />
<br />
Teraz 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.<br />
<br />
Svoju prácu môžete teraz uložiť (a často!!) zvolením Project > Save As > vyše_zvolené_meno_súboru.pas.<br />
<br />
=== Druhá časť ===<br />
Znova 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.<br />
<br />
Upravte svoj kód, aby vyzeral takto:<br />
<syntaxhighlight><br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag =0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
</syntaxhighlight><br />
<br />
Uložte svoju prácu, preložte a spusťte. Ľavé tlačítko bude teraz prepínať medzi dvoma alternatívnymi návestiami.<br />
<br />
Zvyšok je na vás!<br />
<br />
Ak 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]].<br />
<br />
== Editor ==<br />
Pri prvom spustení IDE Lazarus sa na vašej pracovnej ploche objaví niekoľko samostatných, nespojených alebo plávajúcich okien.<br />
<br />
Prvé 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.<br />
<br />
<center>[[Image:LazMain_GTK2.png]]</center><br />
<br />
V 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.<br />
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).<br />
<br />
Pod základným oknom IDE Lazarus sa ešte vľavo obajví okno '''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg Object Inspector]''' a vedľa neho okno '''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg Editora zdrojového kódu]''' (Lazarus Source Editor). Môže sa objaviť ešte jedno menšie okno, nazvané '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', 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.<br />
<br />
Keď 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.<br />
<br />
Počas práce môžu byť zobrazené i ďalšie okná, ako: the '''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg Project Inspector]''', 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.<br />
<br />
=== Základné menu ===<br />
(Main Menu)<br />
<br />
Riadok základného menu obsahuje nasledujúce položky:<br />
<br />
<u>F</u>ile <u>E</u>dit <u>S</u>earch <u>V</u>iew <u>P</u>roject <u>R</u>un <u>C</u>omponents <u>T</u>ools E<u>n</u>vironment <u>W</u>indows <u>H</u>elp<br />
<br />
Ako je zvykom, položky môžu bať vybraté umiestnením myši nad položku menu a kliknutím ľavým tlačítkom myši alebo stlačením Alt-F na klávesnici (základné okno musí mať fokus, ak ho nemá stláčajte opakovane TAB na prepínanie fokusu medzi oknami, kým nie je titulkový pruh uíkladného okna zvýraznený farbou).<br />
<br />
==== Menu File ====<br />
<div class="floatright"> [[Image:FileMenu.png]] </div><br />
* '''New Unit''': Vytvorí nový súbor jednotky (zdrojový kód Pascal).<br />
* '''New Form''': Vytvorí nový formulár: vrátane pripojeného zdrojového súboru Pascal. <br />
* '''New ...''': Poskytuje ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg pop-up menu box]) s rôznymi typmi nových dokumentov.<br />
* '''Open''': Otvorí dialóg pre otvorenie existujúceho súboru. <br />
* '''Revert''': Ruší vykonané editácie a obnovuje súbor do pôvodného stavu. <br />
* '''Open Recent''': Zoznam naposledy otvorených súborov. <br />
* '''Save''': Uloží aktuálny súbor. Ak súbor ešte nemá meno, správa sa ako Save As.<br />
* '''Save As''': Umožňuje vybrať adresár a meno pre uloženie aktuálneho súboru.<br />
* '''Save ALL''': <br />
* '''Close''': Zatvorí aktuálny súbor, spýtajúc sa na uloženie vykonaných úprav.<br />
* '''Close all editor files''': Zatvorí všetky aktuálne otvorené súbory, spýtajúc sa na uloženie úprav.<br />
* '''Clean directory''': Otvorí dialóg s nastaviteľnými filtrami, pre odstránenie súborov z aktuálneho adresára. Užitočné pre odstránenie súborov .bak a zvyškov projektov Delphi.<br />
* '''Print''': Vytlačí zvolený súbor na tlačiarni systému. Táto položka menu sa predvolene neobjavuje, ale najprv je potrebné nainštalovať $Lazdir/components/printers/design/printers4lazide.pas a opäť preložiť IDE.<br />
* '''Restart''': <br />
* '''Quit''': Zatvorí Lazarus, spýtajúc sa na uloženie vykonaných úprav. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Edit ====<br />
<div class="floatright"> [[Image:EditMenu.png]] </div><br />
* '''Undo''': Vrátenie poslednej editovanej akcie, ponechajúc Editor v stave tesne pred ňou.<br />
* '''Redo''': Opakovanie poslednej akcie, ktorá bola vrátená pomocou Undo.<br />
* '''Cut''': Vystrihne vybraný text a uiestni ho do schránky.<br />
* '''Copy''': Prekopíruje vybratý text do schránky. <br />
* '''Paste''': Vloží obsah schránky na pozíciu kurzora. Ak bol vybratý text, prepíše ho.<br />
* '''Indent selection''': Posúva odsadenie vybratého textu doprava o rozsah zadaný v nastavení Environment -> Editor options -> General -> Block indent. Funkciaje užitočná pre formátovanie zdrojovéhokódu a vyvorenie blokovej štruktúry.<br />
* '''Unindent selection''': Odstraňuje jednu úroveň odsadenia, posunúc text doľava o rozsah zadaný v nastavení Editora Block indent. <br />
* '''Enclose selection''': Otvára pop-up menu s voľbami pre logické zakončenie vybratého textu (begin ... end; try ... except; try ... finally; repeat ... until; { ... } atď).<br />
* '''Uppercase selection''': Konvertuje vybratý text na veľké písmená.<br />
* '''Lowercase selection''': Konvertuje vybratý text na malé písmená.<br />
* '''Tabs to spaces in selection''': Konveruje všetky tabulátory vybratého textu na medzery, podľa nastavenia Environment -> Editor options -> General -> Tab widths. Počet medzier nemá fixnú veľkosť, ale je to potrebný počet medzier na zaplnenie potrebnej šírky tabelátora medzerami.<br />
* '''Break lines in selection''': Zalomí riadok vybratého textu, ktorý presahuje 80 znakov alebo počet zadaný v nastavení Environment -> Editor options -> Display -> Right Margin, riadok je zalomený na hranici slova a pokračuje na nasledujúcom riadku.<br />
* '''Comment selection''': Vloží značky komentára // na každý riadok vybratého textu.<br />
* '''Uncomment selection''': Odstráni značky komentára.<br />
* '''Sort selection''': Zoradí riadky (alebo slová v odstavci) podľa abecedy; voľby pre smer radenia, citlivosť na veľkosť písmen. Uprostred zrojového kódu, samozrejme, to neprichádza do úvahy, ale ak máte zoznam, ktorý treba zoradiť, oceníte tento trik.<br />
* '''Select''': Umožní výber blokov textu. Voľby zahŕňajú Vybrať všetko, vybrať po brace, vybrať odstavec alebo riadok, atď.<br />
* '''Insert from character map''': Umožní vloženie symbolu, ktorý nie je na klávesnici, vybratý z pop-up mapy znakov.<br />
* '''Insert text''': Zobrazí pop-up menu pre vloženie štandartných textov, ako kľúčové slová CVS (Author, Date, Header atď), či poznámku GPL, meno užívateľa, dátum a čas.<br />
* '''Complete code''': Dokončí kód pod kurzorom. Závisí od kontextu a šetrí mnoho času. Napríklad dokončuje triedy, pridaním súkromných premenných, prístupové metódy Get a Set vlastností a pridaním tela metód. Na priradeniach premenných (tj. i:=3;) pridáva deklaráciu premennej. Pri forward deklarovaných procedúrach pridáva telá procedúr. Pri priradení udalostí (OnClick:=) pridáva definíciu a telo metódy. Viď [[Lazarus IDE Tools/sk | Nástroje IDE Lazarus]].<br />
* '''Extract procedure''': Použije vybratý text (príkaz alebo sériu príkazov) na vytvorenie novej procedúry.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Search ====<br />
<div class="floatright"> [[Image:SearchMenu.png]] </div><br />
* '''Find''': Obdoba vlastnosti skoro všetkých grafických editorov: pop-up dialógový box pre zadanie hľadaného textu a volieb hľadania, ako citlivosť na veľkosť písmen, celé slová, začiatok, oblasť a smer hľadania.<br />
* '''Find Next, Find previous''': Pokračuje v hľadaní predtým zvoleného textu, zadaným smerom.<br />
* '''Find in files''': Hľadá textový reťazec v súboroch: pop-up dialóg s voľbami všetky otvorené súbory, všetky súbory v projekte alebo všetky adresáre; umožňuje i zadanie masky pre výber typu súboru.<br />
* '''Replace''': Podobné ako '''Find'''; zobrazí pop-up dialóg s miestom pre zadanie hľadaného reťazca a nahradzujúceho textu a volieb pre citlivosť na veľkosť písmen, smer atď.<br />
* '''Incremental find''': Hľadanie reťazca kým zadávate hľadaný reťazec. Príklad: stlačíte "l" a je zvýraznené prvé "l", ak potom stlačíte "a", editor nájde nasledujúce "la" atď.<br />
* '''Goto line''': Presunie kurzor na zadaný riadok súboru.<br />
* '''Jump back''': Presunie kurzor späť k nasledujúcej záložke (musíte použiť Add jump point to history). Presúva i na záložky iných súborov otvorených v Editore. <br />
* '''Jump forward''': Presunie kurzor vpred na nasledujúcu záložku.<br />
* '''Add jump point to history''': Pridá do súboru záložky alebo skokové body.<br />
* '''View Jump-History''': Ukáže zoznam záložiek v súbore: '''Zatiaľ neimplementované???'''.<br />
* '''Jump to next error''', '''Jump to previous error''': Skoč na na pozíciu nasledujúcej/predchádzajúcej hlásenej chyby v zdrojovom súbore.<br />
* '''Set a free bookmark''': označ riadok, na ktorom je kurzor, ďalšou dostupnou (voľnou) číslovanou záložkou a pridaj ju do zoznamu záložiek. Pozor, vyskakovacie menu (získané kliknutím pravým tlačítkom myši na príslušný riadok zdrojového súboru) poskytuje väčší rozsah možností záložky, umožňujúc zadať číslo záložky, či skočiť na očíslovanú záložku, nie len na nasledujúcu/predchádzajúcu. <br />
* '''Jump to next bookmark''', '''Jump to previous bookmark''': Skoč na nasledujúcu/predchádzajúcu záložku v číselnom poradí.<br />
* '''Find other end of code block''': Ak je kurzor umiestnený na '''begin''', presunie kurzor na príslušný '''end''' a naopak.<br />
* '''Find code block start''': Presunie kurzor na '''begin''' procedúry alebo funkcie, v tele ktorej je umiestnený.<br />
* '''Find Declaration at cursor''': Presunie kurzor na miesto deklarácie zvoleného identifikátora. Môže to byť v rovnakom súbore alebo v inom. Ak nie je otvorený, otvorí ho v Editore (tak ak je procedúra alebo funkcia deklarovaná napr. v <u>classesh.inc </u>, tento bude otvorený v Editore).<br />
* '''Open filename at cursor''': Otovorí súbor, ktorého meno je vybraté kurzorom. Užitočné na zobrazenie <u>Include </u> súborov alebo súborov obsahujúcich iné <u>Jednotky</u> použité v projekte.<br />
* '''Goto include directive''': Ak je kurzor umiestnený v súbore, ktorý je <u>Included</u> v inom súbore, presunie kurzor na miesto v súbore, odkiaľ bol volaný súbor <u>Include</u>.<br />
* '''Find Identifier References''': Poskytuje zoznam všetkých riadkov aktuálneho súboru, projektu alebo pripojených súborov, na ktorých je spomenutý identifikátor. <br />
* '''Rename Identifier''': Umožňuje vývojárovi premenovať identifikátor. Pomocou vyskakovacie menu možno určiť, či sa má premenovanie vykonať len v aktuálnom súbore, v projekte, vo všetkých otvorených alebo pripojených súboroch atď. Dokoncá je možné premenovať aj identifikátory vyskytujúce sa v komentároch. Túto vlastnosť môžete využiť, napríklad, al prekladač hlási, že identifikátor už existuje, takže môžete potebovať nové meno svojho identifikátora.<br />
* '''Procedure List''': Poskytuje zoznam všetkých procedúr a funkcií v aktuálnom súbore, spolu s číslom riadku, kde sú definované.<br />
'''<div style="clear:both;"></div><br />
<br />
==== Menu View ====<br />
Ovládanie zobrazenia rôznych okien a panelov na obrazovke.<br />
<div class="floatright"> [[Image:ViewMenu.png]] </div><br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/ViewMenuSnapshot.png </div><br />
* '''Object Inspector''': Okno, zvyčajne umiestnené na ľavej strane obrazovky, ktoré zobrazuje funkcie formulára, ktorý je na obrazovke. Kliknutím myšou na ktorýkoľvek komponent formulára, spôsobí, že detaily komponentu budú zobrazené v Object Inspector. Na jeho vrchu je panel, ktorý zobrazuje stromovú štruktúru aktuálneho projektu a komponenty formulára môžu byť vybraté aj z tohoto panela. Základný panel má dve záložky, ktoré umožňujú zobraziť '''Properties''' alebo '''Events'''. Výber '''Properties''' zobrazí vlastnosti zvoleného komponentu v dvoch stĺpcoch, ľavý zobrazuje meno vlastnosti a pravý jej hodnotu. Výber '''Events''' zobrazí tiež dva stĺpce, ľavý s menom udalostí priradených ku komponentu a pravý ukazuje akciu, ktorá je výsledkom udalosti (procedúru udalosti). Ak nie je definovaná akcia, kliknutie na tlačítko <div class="box">...</div> spôsobí zobrazenie Editora zdrojového kódu s kurzorom umiestneným na prázdenj deklarácii procedúry, do ktorej môžete zadať svoj kód udalosti.<br />
* '''Source Editor''': Základné okno pre editovanie zdrojového kódu. Jeho správanie je veľmi podobné iným grafickým editorom textu, takže môžete myšou presúvať kurzor nad zobrazeným textom a stlačenie ľavého tlačítka myši počas posúvania vyberie a označí text. Pravým kliknutím zobrazíte kontextové menu, ale ak ste zvyknutý na editory Windows, Gnome alebo KDE, budete márne hľadať zvyčajné funkcie, ako Vystrihnúť, Kopírovať a Vložiť, ale zahŕňa voľby ako '''Find Declaration''' alebo '''Open File at Cursor'''. Na vrchu okna Editora zdrojového kódu je niekoľko záložiek, reprezentujúcich otvorené súbory; kliknutie na jednu z nich vyvolá daný súbor do popredia, takto môžete jednoducho kopírovať zo súboru do súboru a vykonávať bežné editovacie funkcie. Editor zdrojového kódu poskytuje farebné zvýraznenie syntaxe kódu, s rôznymi farbami pre interpunkciu, komentáre, reťazcové konštanty atď. Rovnako zabezpečuje automatické odsadenie riadkov kódu. Funkcie a zhľad Editora zdrojového kódu sú nastaviteľné cez menu Environment -> Editor options a zvolením jednej z viacerých záložiek.<br />
* '''Code Explorer''': Okno, zvyčajne umiestnené na pravej strane pracovnej plochy, ktoré v stromovej forme zobrazuje štruktúru kódu aktuálnej jednotky alebo programu. Ak zmeníte súbor zobrazený v okne Editora zdrojového kódu, musíte zvoliť tlačítko Refresh na zobrazenie novej štruktúry súboru. Okno po otvorení zvyčajne zobrazuje meno jednotky a vetvy pre časti Interface a Implementation, ale kliknutím na <div class="box">+</div> vľavo od vetvy otvoríte podvetvy a vetvičky :-), do úplných detailov samotných konštánt, typov apremenných, ako ja deklarácií procedúr a funkcií.<br />
* '''Units...''': pop-up dialóg so zoznamom súborov jednotiek aktuálneho projektu, ktorý umožní vybrať súbor Zobrazený v Editore zdrojového kódu. Zaškrtnutím voľby Multi select môžete vybrať a otvoriť viac jednotiek naraz, ale len jedna bude zobrazená. Táto položka menu je lepšia ako položka Project -> Project Inspector, ale zobrazuje len zoznam jednotiek a dovoľuje ich otvoriť.<br />
* '''Forms...''': pop-up dialóg so zoznamom formulárov aktuálneho projektu a umožní vybrať jeden alebo viac z nich pre zobrazenie.<br />
* '''View Unit Dependencies''': pop-up dialóg, ktorý zobrazí stromovú štruktúru závislostí aktuálne otvorenej jednotky. Mnoho súborov zobrazených v tomto okne má svoje svoje vlastné <div class="box">+</div>, ktoré umožňujú preskúmať ich vlastné závislosti, často rekurzívnym spôsobom.<br />
* '''View Unit Information''': <br />
* '''Toggle form / unit view F12''': Prepína zobrazenie Formulár/Zdrojový kód formulára. Jednoduchším spôsobom je stlačenie F12 na klávesnici, ale táto položka menu má rovnaký význma.<br />
* '''Messages''': Okno so správami prekladača, zobrazuje postup úspešného prekladu alebo vypisuje nájdené chyby.<br />
* '''Search Results''': Okno s výsledkom hľadania textu v súboroch.<br />
* '''View Anchor Editor''': <br />
* '''View Component Pallete''': <br />
* '''View IDE Speed buttons''': <br />
* '''Debug windows''': pop-up menu s niekoľkými voľbami pre činnosť a konfiguráciu Debuggera. [[#The_Debugger|debugger]] je popísaný ďalej.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Project ====<br />
<div class="floatright"> [[Image:ProjectMenu.png]] </div><br />
* '''New Project''': Vytvorí nový projekt a poskytuje možnosť zvoliť typ projektu.<br />
* '''New Project from file''': Umožní vytvoriť nový projekt z existujúceho súboru.<br />
* '''Open Project''': Otvorí projekt, ktorý už bol vytvorený a uložený. Dialóg ponúkne zoznam súborov Lazarus Project Information (.lpi), z ktorých si môžete vybrať.<br />
* '''Open Recent Project''': Otvorí projekt zo zoznamu naposledy spracovávaných projektov.<br />
* '''Close Project''':<br />
* '''Save Project''': Obdoba File -> Save: uloží všetky súbory aktuálneho projektu; ak ešte neboli uložené, ponúkne dialóg na zadanie mena (ako Save Project As...).<br />
* '''Save Project As...''': Požiada meno súboru pre uloženie projektu. Ponúkne prednastavené meno súboru Project1.lpi, ale môžete si zvoliť vlastné. Lazarus nedovoľuje použiť rovnaké meno súboru pre súbor projektu a súbor jednotky. Viz [[Lazarus Tutorial/sk#Súbory_Lazarus| nižšie]]).<br />
* '''Publish Project''': Vytvorí kópiu celého projektu. Bežný adresár projektu obsahuje veľa informácií, ktoré nie je potrebné publikovať (informácie o session, súbory .ppu, .o, .exe. Publish Project vytvorí súbor .lpi obsahujúci len základné informácie a do kópie presunie len zdrojové kódy, zo všetkych podadresárov. V dialógu môžete nastaviť filter exclude/include a spôsob kompresie výstupného archívu. Viz [[Lazarus IDE Tools/sk| Nástroje IDE Lazarus]]<br />
* '''Project Inspector''': pop-up dialóg so stromovou štruktúrou súborov aktuálneho projektu. Dovoľuje pridať, odstrániť alebo otvoriť zvolené súbory alebo zmeniť vlastnosti projektu.<br />
* '''Project Options...''': pop-up dialóg s voľbami nastavenia projektu (titulok, meno cieľového súboru), Forms (dovoľuje výber z dostupných formulárov, a ich nastavenie Auto-create) a Info (určuje, či editačné informácie majú byť uložené pre zatvárané súbory alebo len pre súbory projektu).<br />
* '''Compiler options ...''': Konfigurácia prekladača, zahŕňa záložky: '''Paths''' definícia ciest hľadania jednotiek, include súborov, knižníc... ako aj voľbu pomocného typu formulára (gtk, gnome, win32); '''Parsing''' voľba pravidiel pre syntaktickú analýzu programov, '''Code''' voľby optimalizácie pre rýchlejšie alebo pomalšieprogramy, výber cieľového procesora, veľkosti halsy atď; '''Linking''' voľby použitia ladenia, statických alebo dynamických knižníc atď; '''Messages''' typy správ, generované pri výskyte chyby; '''Other''' určenie predvoleného konfiguračného súboru (fpc.cfg) alebo iného súboru; '''Inherited''' stromový diagram ukazujúci voľby zdedené z už zahrnutých jednotiek; '''Compilation''' dovoľuje zadať príkazy vykonávané pred/po spustení prekladača a použitie súborov Make.<br />
* '''Add editor file to Project''': Do projektu pridá súbor, ktorý je práve upravovaný.<br />
* '''Remove from Project''': pop-up menu na odstránenie súboru z projektu.<br />
* '''View Source''': Bez ohľadu na to, ktorý súbor je práve upravovaný, zobrazí základný programový súbor (.dpr) alebo základný súbor .pas, ak .dpr neexistuje.<br />
<br />
==== Menu Run ====<br />
<div class="floatright"> [[Image:RunMenu.png]] </div><br />
* '''Build''': Prekladá súbory projektu, ktoré boli zmenené od posledného prekladu.<br />
* '''Build all''': Prekladá všetky súbory projektu, bez ohľadu na to, či boli alebo neboli zmenené.<br />
* '''Quick compile''':<br />
* '''Abort build''': Zastaví proces prekladu, ktorý je spustený - či už sa spamätáte, že máte niečo zle a chcete zastaviť preklad, alebo systém pracuje veľmi dlho a niečo je obvykle zle.<br />
* '''Run''': Obvyklý spôsob spustenia prekladača a, ak je preklad úspešný, spustenia aplikácia. Lazarus uloží kópie súborov, potom spustí prekladač a linker, potom začne vykonávať finálny programový súbor (.exe).<br />
* '''Pause''': Preruší vykonávanie aktuálne bežiaceho programu. Tým vám umožní skontrolovať akýkoľvek výstup, ktorý bol generovaný; vykonávanie môže pokračovať opätovným vybratím Run.<br />
* '''Step into''': Used in conjunction with the debugger, causes execution of the program one step at a time up to a bookmarked point in the source.<br />
* '''Step over''': Causes stepwise execution up to the statement marked, then skips the marked statement, and continues execution at normal speed. Useful in trying to isolate a statement that introduces a logical error.<br />
* '''Run to cursor''': Spôsobí vykonávanie programu normálnou rýchlosťou (tj. nie jeden príkaz naraz) pokiaľ nedôjde po príkaz, na ktorom je umiestnený kurzor; potom zastaví. Pokračovanie vykonávania normálnou rýchlosťou dosiahnete zvolením '''Run'''.<br />
* '''Stop''': Spôsobí zastavenie vykonávania bežiaceho programu. Nasledujúce zvolenie '''Run''' nepokračuje vo vykonávaní, ale spustí program od začiatku (ak treba i s prekladom).<br />
* '''Run Parameters''': Otvorí viacstránkové pop-up okno, v ktorom môžete tadať voľby a parametre príkazového riadku pre spustenie programu; výber zobrazenia spusteného programu (tj. môžete použiť vzdialený X terminál terminal v Linuxe); môžete prepísať niektoré systémové premenné.<br />
: Veľmi zaujímavou možnosťou tohoto sub-menu je aktivácia okna terminálu pre zobrazenie vstupu/výstupu konvenčnej konzoly Pascalu. Ak pracujete na konzolovom programe Pascalu, (tj. nepoužijete pre program GUI s formulármi, tlačítkami...), potom môžete zaškrtnúť políčko "Use launching application". Keď to nastavíte prvý krát a skúsite sekvenciu Compile/Run, asi dostanete divoké hlásenie hovoriace<br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied".<br />
: Ak toto nastane, potrebujete zmeniť prístupové práva príslušného súboru; možno to budete musieť urobiť ako root (administrator). Po tomto, sa pri každom spustení programu objaví konzolové okno, v ktorom sa budú obajovať všetky vaše textové vstupy/výstupy (readln, writeln ...).<br />
: Po skončení práce vášho programu sa objaví na obrazovke správa "Press enter". Takto celý výstup generovaný vašim programom ostane na obrazovke, aby ste mali šancu prečítať si ho a okno bude zatvorené až po stlačení 'enter'.<br />
: '''Poznámka:''' keďže v aktuálnej verzii nie je pripravený príkaz konzoly pre používateľov Windows. Zatiať Lazarus team odkazuje, že musí pracovať nasledujúci príkaz (vo WinXP)<br />
C:\Windows\system32\cmd.exe /C ${TargetCmdLine}<br />
* '''Reset debugger''': Obnovuje debugger do jeho pôvodného stavu, všetky ladiace body a hodnoty premenných... sú zabudnuté.<br />
* '''Build file''': Preloží súbor, ktorý je aktuálne otvorený v Editre zdrojového kódu.<br />
* '''Run file''': Preloží, spojí a spustí aktuálne otvorený súbor. <br />
* '''Configure Build + Run File''': Otvorí viacstránkové okno s voľbami, ktoré nastavia preklad práve tohoto súboru pri výbere '''Build Project''', dovolia výber pracovného adresára, použitie rôznych makier... Potom preloží a spustí súbor.<br />
: Tieto posledné tri voľby umožňujú otvoriť (a spravovať) testovací projekt. Použite File -> Open pre otvorenie súboru .lpr a v nasledujúcom dialógu stlačte cancel pre otvorenie tohoto súboru ako "normálneho zdrojového" súboru.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Components ====<br />
* '''Open Package''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png zoznam nainštalovaných balíčkov], s možnosťou [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png otvoriť jeden alebo viac z nich], alebo výber rôznych všeobecných volieb alebo volieb prekladača.<br />
* '''Open Package File''': Otvorí jeden zo súborov vo zvolenom balíčku.<br />
* '''Open package of current unit''': <br />
* '''Open Recent Package''': Ponúkne zoznam naposledy otvorených balíčkov.<br />
* '''Add Active Unit to Package''': Pridá aktuálny súbor (otvorený v editore) do balíčka.<br />
* '''Package Graph''': Zobrazí [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graf vzťahov] jednotlivých balíčkov, ktoré sú používané (ak nepoužívate žiadny iný balíček, budú zobrazené balíčeky Lazarus, FCL a LCL).<br />
* '''Configure custom components''': táto položka už nie je...<br />
<br />
==== Menu Tools ====<br />
<div class="floatright"> [[Image:ToolsMenu.png]] </div><br />
* '''Configure custom tools''': Umožňuje užívateľovi pridať do nástrojov rôzne externé nástroje (zvyčajne makrá).<br />
* '''Project templates options''': <br />
* '''Quick syntax check''': Vykoná rýchlu kontrolu syntaxe vášho zdrojového kódu bez skutočného prekladu. Základný krok pri vývoji veľkých alebo komplikovaných programov, ak nechcete mrhať čas prekladom chybného kódu. <br />
* '''Guess unclosed block''': Užitočný nástroj, ak máte zložitú alebo vnorenú blokovú štruktúru a chcete niekde nájsť '''end'''.<br />
* '''Guess misplaced IFDEF/ENDIF''': Užitočné, ak ak máte zložitú alebo vnorenú štruktúru makra a potebujete nájsť direktívu ENDIF. <br />
* '''Make resource string''': Z vybratého reťazca robí zdrojový reťazec (''resource string'') jeho umiestnením v sekcii resourcestrings. Výhodou zdrojových reťazcov je, že môžu byť zmenené bez poteby rekompilácie projektu!<br />
* '''Diff''': Umožňuje porovnanie dvoch súborov (alebo dvoch verzií rovnakého súboru) a nájdenie rozdielov. Poskytuje voľby na ignorovanie prázdneho miesta na začiatku alebo konci riadkov alebo rôznych zakončení riadkov (CR+LF a LF). Užitočné na kontrolu, či boli urobené zmeny od poslednej aktualizácie CVS atd.<br />
* '''Check LFM file in editor''': Umožňuje kontrolu súboru LFM, ktorý obsahuje nastavenia aktuálneho formulára.<br />
* '''Convert Delphi unit to Lazarus unit''': Pomáha pri prenose aplikácií Delphi do Lazarus; robí potrebné zmeny v zdrojovom súbore. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] a [[Code Conversion Guide]].<br />
* '''Convert DFM file to LFM''': Pre prenos z Delphi do Lazarus. Konvertuje súbory Form Description z Delphi do Lazarus. Viz [[Lazarus For Delphi Users/sk | Prechod z Delphi na Lazarus]] and [[Code Conversion Guide]].<br />
* '''Build Lazarus''': Spúšťa znovuzostavenie Lazarus z naposledy stiahnutých alebo aktualizovaných súborov CVS (proces môžete sledovať v okne '''Messages''').<br />
* '''Configure "Build Lazarus"''': Umožňuje určiť, ktoré časti Lazarus budú znova zostavené a ako. Napríklad, môžete nastaviť, že bude preložená len LCL alebo všetko okrem príkladov. Môžete nastaviť ktoré rozhranie LCL použiť a môžete nastaviť cieľový operačný systém, či nastaviť iný cieľový adresár. <br />
<div style="clear:both;"></div><br />
<br />
==== Menu Environment ====<br />
<div class="floatright"> [[Image:EnvironmentMenu.png]] </div><br />
* '''Environment options''': viacstránkové okno so záložkami pre<br />
** '''Files''' - cesty k predvolenému adresáru, prekladaču, zdrojovému adresáru a dočasnému adresáru pre prekladanie;<br />
** '''Desktop''' - voľby pre jazyk, správanie automatického ukladania, ukladanie vlastností pracovnej plochy, hinty pre paletu komponentov a speed tlačítka;<br />
** '''Windows''' - zadanie veľkosti a správania rôznych okien;<br />
** '''Form Editor''' - výber farieb pre editovanie formulárov;<br />
** '''Object Inspector''' - výber farieb a veľkosti položiek;<br />
** '''Backup''' - udáva ako zálohovať súbory pri úpravách;<br />
** '''Naming''' - udáva príponu názvos súborov Pascalu ('.pp' alebo '.pas'), či sa majú ukladať malými písmenami, či vykonávať automatické mazanie alebo premenovanie.<br />
* '''Editor options''': viacstránkové okno so záložkami pre<br />
** '''General''' - určuje správanie ako automatické odsadenie, zvýrazňovanie zátvoriek, drag-drop upravovanie, posúvanie, zvýrazňovanie syntaxe, zobrazovanie hintov, veľkosť odsadenia bloku a tabulátora, hranicu Undo;<br />
** '''Display''' - voľby pre zobrazovanie čísel riadkov, zobrazovanie guttera, veľkosť a typ fontu editora a okno so zobrazením farieb rôznych typov syntaxe, ako komentáre, značky, direktívy, chyby a ladiace body;<br />
** '''Key Mappings''' - voľby pre výber schémy Lazarus alebo Turbo Pascal;<br />
** '''Color''' - umožňuje nastaviť farebnú schému textu pre viac typov jazyka, ako Object Pascal, C++, Perl, HTML, XML a skripty shellu. Zobrazuje aj ukážkový panel (pre zvolený jazyk); <br />
** '''Code Tools''' - umožňuje výber funkcií ako Identifier Completion, tooltips, zadanie šablón názvov súborov, šablóny pre dokončovanie kódu.<br />
* '''Debugger Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - voľby debugera: bez, GNU debugger (gdb) alebo gdb cez SSH, zadanie vyhľadávacej cesty a volieb pre zvolený debugger;<br />
** '''Event log''' - nastavenie, či zmazať log pri spustení a ktoré správy zobrazovať;<br />
** '''Language Exceptions''' - výber výnimiek, ktoré budú ignorované;<br />
** '''OS Exceptions''' - umožňuje pridať isté signály, ktoré aplikuje na aktuálny operačný systém.<br />
* '''Code Tool Options''': viacstránkové okno so záložkami pre<br />
** '''General''' - zadanie ďalších ciest pre hľadanie zdrojových súborov a určenie metódy Jumping Method;<br />
** '''Code Creation''' - určuje, či je vytváraný kód pridaný pred alebo za určitú funkciu;<br />
** '''Words''' - určuje, či sú kľúčové slová Pascal zadávané malými alebo veľkými písmenami, alebo s veľkými počiatočnými písmenami;<br />
** '''Line Splitting''' - zavádza pravidlá zalamovania riadkov (pred alebo po interpunkčných znamienkach, za kľúčovým slovom atď);<br />
** '''Space''' - určuje či sú medzery automaticky pridané alebo za určité snktaktické črty, ako kľúčové slová, alebo interpunkčné značky. <br />
* '''Code Tools Defines Editor''':<br />
* '''Re-scan FPC Source directory''' Znova prechádza adresár. Lazarus používa zdrojové kódy FreePascal na generovanie správnych obslúh udalostí a pri hľadaní deklarácií. Ak niekto zmení adresár v nastavení prostredia, potom je tento adresár znova prehľadaný, aby bolo zaistené, že Lazarus používa verziu uchovanú v danom umiestnení. Ale ak bol tento adresár zmenený a Lazarus nebol o tom informovaný, potom sa môžu objaviť chyby pri navrhovaní formulárov alebo vykonaním "Find declaration". Ak sa stretnete s touto chybou, môžete urobiť dve veci:<br />
*# skontrolovať nastavenie zdrojového adresára vo voľbách prostredia.<br />
*# znova prehľadať zdrojový adresár FreePascal.<br />
<br />
==== Menu Windows ====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Obsahuje zoznam aktuálne otvorených súborov a dostupných okien, ako '''Source Editor''', '''Object Inspector''', či '''Project Inspector'''. Kliknutím na názov jedného z okien je okno vyvolané do popredia a získava zameranie.<br />
<div style="clear:both;"></div><br />
<br />
==== Menu Help ====<br />
* '''Online Help''' otvorí okno prehliadača so súborom c:/lazarus/docs/index.html, ktoré obsahuje obrázok bežiacej cheetah a niekoľko odkazov nafew links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' umožňuje nastaviť prehliadač a databázy, z ktorých budú čítané informácie nápovedy. Tieto voľby dovoľujú užívateľovi zadať jeden z on-line dokumentov na webovej stránke Lazarus-CCR, niektoré ďalšie webové stránky obsahujúce dokumenty, alebo lokálne umiestnenie dokumentácie. Predvolene, ak umiestnite kurzor nad kľúčové slovo FCL alebo RunTime Library (ale nie LCL) a potom stlačíte <<F1>> dostanete sa na príslušnú stránku.<br />
* '''About Lazarus''' Zobrazí pop-up box s informáciami o Lazarus. <br />
<br />
Časom tu bude úplný on-line Help, s informáciami o syntaxe Pascalu, o použití IDE, o používaní, úpravách a tvorbe komponentov a tipy ako urobiť niektoré úlohy. Táto časť sekcie Dokumentácia (to čo teraz čítate) predstavuje začiatok procesu. '''Potrebujeme spolupracovníkov, ktorí sú ochotní pomôcť: Editácia WiKi je veľmo jednoduchá.'''<br />
<br />
== Paleta komponentov ==<br />
Panel 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).<br />
<br />
Ak 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.<br />
<br />
V 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.<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
: ''Najčastejšie používané komponenty''<br />
<center>[[Image:Component_Palette_Standart.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tmainmenu.html TMainMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/menus/tpopupmenu.html TPopupMenu], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tbutton.html TButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlabel.html TLabel], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tedit.html TEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tmemo.html TMemo], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/ttogglebox.html TToggleBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcheckbox.html TCheckBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tradiobutton.html TRadioButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tlistbox.html TListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tcombobox.html TComboBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tscrollbar.html TScrollBar], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tgroupbox.html TGroupBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tstatictext.html TStaticText], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tradiogroup.html TRadioGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tcheckgroup.html TCheckGroup], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpanel.html TPanel], [http://lazarus-ccr.sourceforge.net/docs/lcl/actnlist/tactionlist.html TActionList]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
''Ďalšie často používané komponenty:''<br />
<center>[[Image:Component_Palette_Additional.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tbitbtn.html TBitBtn], [http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tspeedbutton.html TSpeedButton], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/timage.html TImage], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tshape.html TShape], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tbevel.html TBevel], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpaintbox.html TPaintBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tnotebook.html TNotebook], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tlabelededit.html TLabeledEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tsplitter.html TSplitter], [http://lazarus-ccr.sourceforge.net/docs/lcl/maskedit/tmaskedit.html TMaskEdit], [http://lazarus-ccr.sourceforge.net/docs/lcl/checklst/tchecklistbox.html TCheckListBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tscrollbox.html TScrollBox], [http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tapplicationproperties.html TApplicationProperties], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tstringgrid.html TStringGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tdrawgrid.html TDrawGrid], [http://lazarus-ccr.sourceforge.net/docs/lcl/pairsplitter/tpairsplitter.html TPairSplitter]<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[Image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[Image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Niektoré užitočné '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples dialógové]''' procedúry alebo funkcie nenájdete na palete, ale je ľahšie ich volať priamo zo zdrojového kódu.<br />
<br />
Niekoľ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.<br />
<br />
Niektoré 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.<br />
<br />
Vyskúš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!<br />
<br />
* '''Misc'''<br />
<center>[[Image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox<br />
<br />
* '''Data Controls'''<br />
''Komponenty Data-aware, ktoré do zančnej miery replikujú skupiny Standard a Additional, ale sú použiteľné s databázami:''<br />
<center>[[Image:Component_Palette_DataControls.png]]</center><br />
: TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
<br />
* '''Data Access'''<br />
<center>[[Image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
<br />
* '''System'''<br />
<center>[[Image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TTimer TTimer], TIdleTimer, [[doc:fcl/process/tprocess.html|TProcess]]<br />
<br />
* '''SynEdit'''<br />
: ''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 [http://synedit.sourceforge.net synedit na sourceforge].<br />
<br />
<center>[[Image:Component_Palette_SynEdit.png]]</center><br />
: TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pre 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.<br />
<br />
Ak 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.<br />
<br />
== Ako používať základné (Standard), spoločné (Common) a rozšírené komponenty ==<br />
<p>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</p><br />
<p>Veľ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.</p><br />
<p>Pokiaľ 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.</p><br />
<p>Ak však vytvoríte komponentu samy v kóde, je nutné nezabudnúť ju uvoľniť, keď už nie je ďalej potrebná</p><br />
<p>Pokiaľ umiestnite komponentu na Form Designer a pozriete sa na okno Object Inspector, môžete preskúmať a meniť vlastnosti tejto komponenty.</p><br />
<p>Napr. 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.</p><br />
<p>Na 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.</p><br />
<p>Takisto môžete explicitne nastaviť niektoré vlastnosti objektu v kóde (v príslučnej Implementation časti v okne Source Editor), napr.</p><br />
<syntaxhighlight><br />
Form1.Button1.Height := 48;<br />
</syntaxhighlight><br />
<p>Pokiaľ 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</p><br />
<p>Zhrnúť by sa to dalo tak, že obvykle existujú 3 spôsoby, ako nastaviť každú vlastnosť objektu:</p><br />
* použitím myši<br />
* nastavením hodnoty v Object Inspektore<br />
* explicitne napísaním kódu<br />
<p>Komponenty 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.</p><br />
<p>Dodatoč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.</p><br />
<br />
== Ako používať menu ==<br />
V tejto kapitole sa dočítate o vytváraní Menu položiek do formulárov.<br />
<br />
''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.<br />
<br />
''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í.<br />
<br />
Pre 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.<br />
<br />
Zobrazí 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.<br />
<br />
Všetky položky typu ''MenuItems'', ktoré ste vytvorili cez Edit box môžete nastavovať pomocou okna Object Inspector.<br />
<br />
Kaž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.<br />
<br />
Pri 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.<br />
<br />
== Debugger ==<br />
: ''Už len napísať''.<br />
<br />
== Súbory Lazarus ==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridino, [[User:Kirkpatc]] and Tom Lisjac)<br />
<br />
Pri ukladaní projektu budete vyzvaný na zadanie mena pre dva súbory: <br />
'''xxx.pas''' a '''yyy.lpr'''<br />
(Uložených bude viac súborov). Súbor projektu (lpr) a súbor jednotky (pas) 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.<br />
<br />
Tak, ak uložíte projekt pod menom '''again''', pokus uložiť '''again.pas''' a '''again.lpr''' 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, tak by to prekladač interpretoval ako odkaz sám na seba. <br />
<br />
Tak toto bude výsledok:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Nezabudnite, že adresár môže obsahovať veľa ďalších súborov, ktoré ste už uložili predtým.<br />
<br />
Poznámky o každom súbore:<br />
<br />
'''again.exe:'''<br />
Základný binárny program. Win32 pridáva príponu "exe". Linux niee. Tento súbor bude na Linux obrovský, pretože obsahuje symboly ladenia. Spusťte utilitu "strip" na ich odstránenie a skrátite veľkosť súboru.<br />
<br />
'''again.lpi:'''<br />
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.<br />
<br />
'''again.lpr:'''<br />
Základný zdrojový súbor programu. Napriek špeciálnej prípone Lazarus ide v skutočnosti o kladický 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á robnaké meno programu ako je meno súboru.<br />
<br />
'''againu.lfm:'''<br />
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.<br />
<br />
'''again.lrs:'''<br />
Vygenerovaný resource súbor. Všimnite si, že to nie je súbor Windows resource .<br />
<br />
'''againu.pas:'''<br />
Jednotka, obsahujúce kód formulára.<br />
<br />
'''again.ppu:'''<br />
Preložená jednotka.<br />
<br />
'''ppas.bat:'''<br />
Jednoduchý skript, ktorý linkuje program na produkciu exe. Ak je preklad úspešný, je zmazaný prekladačom.<br />
<br />
== Spolupracovníci a zmeny ==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* 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]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* 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]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* 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]]<br />
* 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]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]<br />
* Preklad z anglického originálu [[Lazarus Tutorial]] a doplnenie obrázkov Palety komponentov. 25.marca 2005 [[User:Slavko]]<br />
* Aktualizácia slovenské preklady z anglického originálu [[Lazarus Tutorial]]. 24.decembra 2008 [[User:Adamm]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_IDE_Tools/sk&diff=97926Lazarus IDE Tools/sk2015-11-25T08:32:31Z<p>Trsek: /* Dokončovanie kódu */</p>
<hr />
<div>{{Lazarus IDE Tools}}<br />
<br />
==Úvod==<br />
IDE používa knižnicu analýzy zdrojového kódu Pascal a editačných nástrojov, zvanú "codetools". Tieto nástroje poskytujú funkcie ako hľadanie deklarácie (find declaration), dokončovanie kódu (code completion), odstraňovanie, presúvanie, vkladanie a formátovanie zdrojového kódu Pascal. Tieto funkcie šetria množstvo času a duplicitných úloh. Sú nastaviteľné a každá funkcia je dostupná pomocou klávesovej skratky (viď Editor Options).<br />
<br />
Pretože ich práca záleží na zdrojovom kóde a pochopení FreePascal, Delphi a Kylix kódu, nevyžadujú preložené jednotky ani nainštalovaný prekladač Borland. Môžete naraz upravovať kód Delphi aj FreePascal. Môžete dokonca pracovať s rôznymi verziami Delphi a FreePascal súčasne. Tým sa stáva prenos Delphi kódu ešte jednoduchší.<br />
<br />
==Zhrnutie klávesových skratiek IDE==<br />
{|<br />
|-<br />
| [[Lazarus IDE Tools/sk#Hľadanie_deklarácie | Hľadanie deklarácie]] (Declaration Jumping) || '''Ctrl+Click''' alebo '''Alt+Up'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Prepínanie_metód | Prepínanie metód]] (Method Jumping) || '''Ctrl+Shift+Up''' a '''Ctrl+Shift+Down'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Šablóny_kódu | Šablóny kódu]] (Code Templates) || '''Ctrl+J'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Dokončovanie_kódu | Dokončovanie kódu]] (Code/Class Completion) || '''Ctrl+Shift+C'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Dokončovanie_identifikátorov | Dokončovanie identifikátorov]] (Identifier Completion) || '''Ctrl+Medzerník'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Dokončovanie_slov | Dokončovanie slov]] (Word Completion) || '''Ctrl+W'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Pomoc_s_parametrami |Pomoc s parametrami]] (Parameter Hints) || '''Ctrl+Shift+Space'''<br />
|}<br />
<br />
==Prepínanie metód==<br />
(''Method Jumping'')<br />
<br />
Na prepínanie medzi telom procedúry (begin..end) a jej definíciou (procedure Name;) použite Ctrl+Shift+Up.<br />
<br />
Príklad:<br />
<syntaxhighlight> interface<br />
<br />
procedure DoSomething; // procedure definition<br />
<br />
implementation<br />
<br />
procedure DoSomething; // procedure body <br />
begin<br />
end;</syntaxhighlight><br />
<br />
Ak je kurzor v tele provedúry a stlačíte Ctrl+Shift+Up, kurzor skočí na definíciu. Ak znova stlačíte Ctrl+Shift+Up preskočí do tela procedúry, za 'begin'. Funkcia pracuje aj s metódami (procedúrami v triedach).<br />
<br />
Tipy:<br />
'Method Jumping' presúva kurzor na rovnakú procedúru s rovnakým menom i zoznamom parametrov. Ak presná procedúra neexistuje, skočí na najpodobnejšiu a umiestni kurzor na prvý rozdiel. V Delphi táto funkcia neexistuje.<br />
<br />
Príklad procedúry s rôznymi typmi parametrov:<br />
<syntaxhighlight> interface<br />
<br />
procedure DoSomething(p: char); // procedure definition<br />
<br />
implementation<br />
<br />
procedure DoSomething(p: string); // procedure body<br />
begin<br />
end;</syntaxhighlight><br />
<br />
Preskočenie z definície do tela umiestni kurzor na kľúčové slovo 'string'. Túto vlastnosť môžete využiť na premenovanie metódy a/alebo zmenu jej parametrov.<br />
<br />
Príklad:<br />
Premenovali sme 'DoSomething' na 'MakeIt':<br />
<syntaxhighlight> interface<br />
<br />
procedure MakeIt; // procedure definition<br />
<br />
implementation<br />
<br />
procedure DoSomething; // procedure body<br />
begin<br />
end;</syntaxhighlight><br />
<br />
Potom urobte skok z definície MakeIt do tela. IDE hľadá vhodné telo, nenájde žiadne, preto začne hľadať kandidátov. Keďže ste premenovali len jednu procedúru, tak je len jedno telo bez definície (DoSomething) a tak skočí do DoSomething a umiestni kurzor vpravo od 'DoSomething'. Potomm ju môžete jednoducho premenovať tiež. Toto rovnako funguje aj s parametrami.<br />
<br />
==Include súbory==<br />
(''Include Files'')<br />
<br />
Include súbory sú súbory vložené do zdrojového kódu pomocou direktív prekladača {$I filename} alebo {$INCLUDE filename}. Lazarus a FreePascal používajú veľa takýchto vecí na redukciu nadbytočnosti a vyhnutie sa nečitateľnosti konštrukcií {$IFDEF} pri podpore rôznych platforiem.<br />
<br />
Narozdiel od Delphi, IDE Lazarus plne podporuje include súbory. Napríklad môžete skočiť z metódy v súbore .pas do tela metódy v include súbore. Všetky nástroje kódu, ako dokončovanie kódu, považuje include súbory za špeciálne hranice.<br />
<br />
Napríklad: keď dokončovanie kódu pridáva telo novej metódy za telom inej metódy, ponechá ich obe v rovnakom súbore. Týmto spôsobom môžete vložiť celú implementáciu triedy do include súborov, ako to robí LCL pre skoro všetky prvky.<br />
<br />
Ale je tu začiatočnícka chyba: Ak najprv otvoríte include súbor a skúsite prepínanie metód alebo hľadanie deklarácie, dostanete chybu. IDE nevie do ktorej jednotky include súbor patrí. Najprv musíte otvoriť jednotku.<br />
<br />
Hneď ako IDE zanalyzuje jednotku, zachytí v nej include direktívy a IDE si bude pamätať tento vzťah. Tieto informácie IDE ukladá pri skončení a pri uložení projektu do ~/.lazarus/includelinks.xml. Keď nabudúce otvoríte súbor include a urobíte skok do neho alebo hľadanie deklarácie, IDE interne otvorí jednotku a skoky budú fungovať.<br />
<br />
Tento mechanizmus má samozrejme obmedzenia, niektoré include súbory sú zahrnuté dva i viackrát. Napríklad: lcl/include/winapih.inc.<br />
Skákanie z definície procedúry/metódy v tomto include súbore do tela závisí na poslednej akcii. Ak ste pracovali v lcl/lclintf.pp, IDE skočí do winapi.inc. Ak ste pracovali v lcl/interfacebase.pp, potom skočíte do lcl/include/interfacebase.inc (alebo do jedného z ďalších include súborov). Ak pracujete s obomi, potom môže nastať zmätok. ;)<br />
<br />
==Šablóny kódu==<br />
(''Code Templates'')<br />
<br />
Šablóny kódu konvertujú identifikátor v texte alebo fragmente kódu. Šablóny kódu majú prednastavenú klávesovú skratku Ctrl+J. Môžete napísať identifikátor, stlačiť Ctrl+J a identifikátor je nahradený textom definovaným pre identifikátor. Šablóny kódu môžete definovať v Tools -> Options -> CodeTools.<br />
<br />
Príklad:<br />
Napíšte identifikátor 'classf', ponechajte kurzor vpravo za 'f' a stlačte Ctrl+J. Identifikátor 'classf' bude nahradený týmto:<br />
<syntaxhighlight> T = class(T)<br />
private<br />
<br />
public<br />
constructor Create;<br />
destructor Destroy; override;<br />
end;</syntaxhighlight><br />
<br />
a kurzor bude za 'T'.<br />
Zoznam šablón získate tak, že kurzor ponecháte na medzere (nie ne identifikátore) a stlačíte Ctrl+J. Pomocou kurzorových klávesov alebon apísania niekoľkých znakov vyberte jeden. Enter vytvorí zvolenú šablónu a Esc zatvorí zoznam.<br />
<br />
==Pomoc s parametrami==<br />
(''Parameter Hints'')<br />
Pomoc s parametrami ukazuje pomocné okno s deklaráciami parametrov aktuálneho zoznamu parametrov.<br />
<br />
Napríklad<br />
<syntaxhighlight> Canvas.FillRect(|);</syntaxhighlight><br />
<br />
Umiestnite kurzor do zátvoriek a stlačte Ctrl+Shift+Space. Objaví sa pomocné okno, ukazujúce parametre FillRect.<br />
<br />
==Dokončovanie kódu==<br />
(''Code Completion'')<br />
<br />
Dokončovanie kódu nájdete v menu IDE Edit -> Complete Code a má štandartnú klávesovú skratku Ctrl+Shift+C.<br />
V Delphi je dokončovaním kódu volaná funkcia zobrazujúca zoznam identifikátorov na aktuálnej pozícii v zdrojovom kóde (Ctrl+Space). V Lazarus je toto nazývané dokončovanie identifikátorov (Identifier completion). Dokončovanie kódu v sebe združuje niekoľko užitočných funkcií:<br />
<br />
* '''Dokončovanie tried''' (Class Completion): dokončuje vlastnosti, pridáva telá metód, pridáva súkromné premenné a súkromné metódy;<br />
* '''Dokončovanie forward procedúr''' (Forward Procedure Completion): pridáva telá forward procedúr;<br />
* '''Dokončovanie priradenia udalostí''' (Event Assignment Completion): * dokončuje pridelenie udalostí a pridávanie tiel a definícií metód;<br />
* '''Dokončovanie lokálnych premenných''' (Local Variable Completion): pridáva definície lokálnych premenných.<br />
Ktorá funkcia je použitá, závisí na pozícii kurzora v editore zdrojového kódu.<br />
<br />
===Dokončovanie tried===<br />
(''Class Completion'')<br />
<br />
Veľmi výkonnou funkciou dokončovania kódu je "Dokončovanie tried". Vy píšete triedu, pridáte metódy a vlastnosti, a dokončovanie kódu pridá telá metód, metódy prístupu k vlastnostiam a súkromným premenným. <br />
<br />
Príklad:<br />
Vytvorte triedu (viz [[Lazarus IDE Tools/sk#Šablóny_kódu | Šablóny kódu]], aby ste ušetrili rovnakú prácu):<br />
<syntaxhighlight> TExample = class(TObject)<br />
public<br />
constructor Create;<br />
destructor Destroy; override;<br />
end;</syntaxhighlight><br />
<br />
Umiestnite kurzor niekde v definícii triedy a stlačte '''Ctrl+Shift+C'''. Tým budú vytvorené chýbajúce telá metód a kurzor bude presunutý na prvé vytvorené telo, takže môžete rovno začať písať kód triedy:<br />
<syntaxhighlight> { TExample }<br />
<br />
constructor TExample.Create;<br />
begin<br />
|<br />
end;<br />
<br />
destructor TExample.Destroy;<br />
begin<br />
inherited Destroy;<br />
end;</syntaxhighlight><br />
<br />
:'''Poznámka''': Značka '|' nie je pridaná, len ukazuje umiestnenie kurzora.<br />
<br />
Tip: Prepínať medzi telom a definíciou metódy môžete pomocou Ctrl+Shift+Up.<br />
<br />
Všimnite si, že IDE tiež pridáva volanie deštruktora základnej triedy (inherited Destroy). Toto je urobené, ak v definícii treidy použijete kľúčové slovo '''override'''.<br />
<br />
Teraz pridajte metódu '''DoSomething''':<br />
<syntaxhighlight> TExample = class(TObject)<br />
public<br />
constructor Create;<br />
procedure DoSomething(i: integer);<br />
destructor Destroy; override;<br />
end;</syntaxhighlight><br />
<br />
Potom stlačte '''Ctrl+Shift+C''' a IDE pridá:<br />
<syntaxhighlight> procedure TExample.DoSomething(i: integer);<br />
begin<br />
|<br />
end;</syntaxhighlight><br />
<br />
Ako môžete vidieť, nové telo metódy je vložené medzi Create a Destroy, presne ako je to v definícii. Týmto sú telá metód uchovávané v rovnakom logickom poradí, ako v definícii. Spôsob vkladania môžete definovať pomocou Prostredie > Voľby Codetools -> Tvorenie kódu.<br />
<br />
===Dokončovanie vlastností===<br />
Pridajte vlastnosť '''AnInteger''':<br />
<syntaxhighlight> TExample = class(TObject)<br />
public<br />
constructor Create;<br />
procedure DoSomething(i: integer);<br />
destructor Destroy; override;<br />
property AnInteger;<br />
end;</syntaxhighlight><br />
<br />
Stlačte Ctrl+Shift+C a dostanete:<br />
<syntaxhighlight> procedure TExample.SetAnInteger(const AValue: integer);<br />
begin<br />
|if FAnInteger=AValue then exit;<br />
FAnInteger:=AValue;<br />
end;</syntaxhighlight><br />
<br />
Dokončovanie kódu pridalo metódu pre prístup k zápisu do vlastnosti a nejaký základný kód.<br />
<br />
Preskočte do triedy pomocou '''Ctrl+Shift+C''' a uvidíte, že v triede pribudlo:<br />
<syntaxhighlight> TExample = class(TObject)<br />
private<br />
FAnInteger: integer;<br />
procedure SetAnInteger(const AValue: integer);<br />
public<br />
constructor Create;<br />
procedure DoSomething(i: integer);<br />
destructor Destroy; override;<br />
property AnInteger: integer read FAnInteger write SetAnInteger;<br />
end;</syntaxhighlight><br />
<br />
Vlastnosť bola rozšírená pridaním kľúčových slov '''Read''' a '''Write'''. V triede je nová sekcia '''private''' s premennou '''FAnInteger''' a metódou '''SetAnInteger'''. Pridanie '''F''' na začiatok privátnej premennej je bežnou notáciou Delphi, rovnako ako označenie prístupovej metódy pomocou '''Set'''. Ak to nechcete, môžete to zmeniť ponmocou Prostredie > Voľby Codetools -> Tvorenie kódu.<br />
<br />
Vytvorenie vlastnosti len na čítanie:<br />
<syntaxhighlight> property PropName: PropType read;</syntaxhighlight><br />
<br />
Bude rozšírené na:<br />
<syntaxhighlight> property PropName: PropType read FPropName;</syntaxhighlight><br />
<br />
Vytvorenie vlastnosti len pre zápis:<br />
<syntaxhighlight> property PropName: PropType write;</syntaxhighlight><br />
<br />
Bude rozšírené na:<br />
<syntaxhighlight> property PropName: PropType write SetPropName;</syntaxhighlight><br />
<br />
Vytvorenie read only vlastnosti s metódou na čítanie:<br />
<syntaxhighlight> property PropName: PropType read GetPropName;</syntaxhighlight><br />
<br />
Deklarácia ostane nezmenená, ale bude pridaná funkcia '''GetPropName''':<br />
<syntaxhighlight> function GetpropName: PropType;</syntaxhighlight><br />
<br />
Vytvorenie vlastnosti s direktívou '''stored''':<br />
<syntaxhighlight> property PropName: PropType stored;</syntaxhighlight><br />
<br />
Bude rozšírené na:<br />
<syntaxhighlight> property PropName: PropType read FPropName write SetPropName stored PropNameIsStored;</syntaxhighlight><br />
<br />
Pretože direktíva '''stored''' je používaná pre streamovanie čítania a zápisu, sú pridané aj kľúčové slová '''read''' a '''write'''.<br />
<br />
Tip:<br />
Dokončovanie identifikátorov tiež rozpoznáva nekompletné vlastnosti a navrhne predvolené mená. Napríklad:<br />
<syntaxhighlight> property PropName: PropType read |;</syntaxhighlight><br />
<br />
Umiestnite kurzor za medzeru za kľúčovým slovom '''read''' a stlačte Ctrl+Space pre dokončovanie identifikátorov. To vám ponúkne premennú '''FPropName''' a procedúru '''SetPropName'''.<br />
<br />
===Dokončovanie procedúr===<br />
(''Forward Procedure Completion'')<br />
<br />
Dokončovanie dopredných deklarácií procedúr je časťou dokončovania kódu a pridáva telá chýbajúcich procedúr, ktoré sú definované. Je vyvolané, ak je kurzor na pripravenej definícii procedúry, pomocou klávesovej skratky '''Ctrl+Shift+C'''.<br />
<br />
Napríklad:<br />
Pridajte novú procedúru do časti '''interface''':<br />
<syntaxhighlight> procedure DoSomething;</syntaxhighlight><br />
<br />
Umiestnite kurzor na ňu a stlačte '''Ctrl+Shift+C''' pre dokončovanie kódu. V časti '''implementation''' bude doplnené:<br />
<syntaxhighlight> procedure DoSomething;<br />
begin<br />
|<br />
end;</syntaxhighlight><br />
<br />
:Tip: Pomocou '''Ctrl+Shift+Up''' môžete prepínať medzi definíciou a telom procedúry.<br />
<br />
Telo novej procedúry bude pridané pred metódy tried. Ak už sú v časti '''interface''' nejaké definície procedúr, IDE sa pokúsi zachovať ich poradie, napríklad:<br />
<syntaxhighlight> procedure Proc1;<br />
procedure Proc2; // nová procedúra<br />
procedure Proc3;</syntaxhighlight><br />
<br />
Ak telá '''Proc1''' a '''Proc3''' už existujú, potom bude telo '''Proc2''' vložené medzi telá procedúr '''Proc1''' a '''Proc3'''. Toto správanie môže byť zmené pomocou '''Prostredie > Voľby Codetools -> Tvorenie kódu'''.<br />
<br />
Viacero procedúr:<br />
<syntaxhighlight> procedure Proc1_Old; // telo existuje<br />
procedure Proc2_New; // telo neexistuje<br />
procedure Proc3_New; // "<br />
procedure Proc4_New; // "<br />
procedure Proc5_Old; // telo existuje</syntaxhighlight><br />
<br />
Dokončovanie kódu pridá 3 telá procedúr (Proc2_New, Proc3_New, Proc4_New).<br />
<br />
Tento nástroj nepracuje len s procedúrami definovanými v časti '''interface''', ale aj s procedúrami, ktoré sú definované pomocou kľúčového slova '''forward'''.<br />
<br />
===Dokončovanie priradenia udalostí===<br />
(''Event Assignment Completion'')<br />
<br />
Dokončovanie priradenia udalostí je čsťou Dokončovania kódu a dokončuje jeden príkaz Event:=|. Nastáva, keď je kurzor umiestnený za príkazom priradenia udalosti a stlačíte '''Ctrl+Shift+C'''.<br />
<br />
;Napríklad:<br />
V metóde, povedzme udalosti FormCreate, pridajte riadok: 'OnPaint:=':<br />
<syntaxhighlight> procedure TForm1.Form1Create(Sender: TObject);<br />
begin<br />
OnPaint:=|<br />
end;</syntaxhighlight><br />
<br />
Značka '|' je umiestnenie kurzora a netreba ju zadávať.<br />
<br />
Potom stlačte '''Ctrl+Shift+C''' pre dokončovanie kódu. Príkaz priradenia udalosti bude doplnený takto:<br />
<syntaxhighlight> OnPaint:=@Form1Paint;</syntaxhighlight><br />
<br />
Do triedy '''TForm1''' bude pridaná nová metóda '''Form1Paint'''. Potom je spustené dokončovanie tried a dostanete:<br />
<syntaxhighlight> procedure TForm1.Form1Paint(Sender: TObject);<br />
begin<br />
|<br />
end;</syntaxhighlight><br />
<br />
Pracuje presne ako pridávanie metód v '''Inšpektore objektov'''.<br />
<br />
:'''Poznámka''': Kurzor musíte umiestniť za operátor priradenia ':='. Ak ho umiestnite na identifikátor (tj. '''OnPaint'''), dokončovanie kódu spustí Dokončovanie lokálnych premenných, ktoré zlyhá, pretože '''OnPaint''' je už definovaná.<br />
<br />
Tip:<br />
Môžete definovať meno novej metódi aj sami, a to jej zadaním do priradenia, napríklad:<br />
<syntaxhighlight> OnPaint:=@ThePaintMethod;</syntaxhighlight><br />
<br />
===Dokončovanie deklarácie premenných===<br />
(''Variable Declaration Completion'')<br />
<br />
Dokončovanie deklarácie premenných je časťou '''Dokončovania kódu''' a pridáva definíciu lokálnej premennej pre príkaz Identifier:=Term;. Dokončovanie deklarácie premenných je vyvolané, keď je kurzor umiestnený na identifikátore v priradení.<br />
<br />
Napríklad:<br />
<syntaxhighlight> procedure TForm1.Form1Create(Sender: TObject);<br />
begin<br />
i:=3;<br />
end;</syntaxhighlight><br />
<br />
Umiestnite kurzor na 'i' alebo tesne za neho, potom stlačte Ctrl+Shift+C pre dokončovanie kódu a dostanete:<br />
<syntaxhighlight> procedure TForm1.Form1Create(Sender: TObject);<br />
var<br />
i: Integer;<br />
begin<br />
i:=3;<br />
end;</syntaxhighlight><br />
<br />
Nástroj dokončovania kódu najprv skontroluje, či identifikátor 'i' už nie je definovaný a ak nie, pridá deklaráciu 'var i: integer;'. Typ identifikátora je odhadovaný podľa pravej strany príkazu priradenia. Čísla ako 3 sú identifikované ako Integer.<br />
<br />
Iný príklad:<br />
<syntaxhighlight> type<br />
TWhere = (Behind, Middle, InFront);<br />
<br />
procedure TForm1.Form1Create(Sender: TObject);<br />
var<br />
a: array[TWhere] of char;<br />
begin<br />
for Where:=Low(a) to High(a) do writeln(a[Where]);<br />
end;</syntaxhighlight><br />
<br />
Umiestnite kurzor na 'Where' a stlačte Ctrl+Shift+C pre dokončenie kódu. Dostanete:<br />
<syntaxhighlight> procedure TForm1.Form1Create(Sender: TObject);<br />
var<br />
a: array[TWhere] of char;<br />
Where: TWhere;<br />
begin<br />
for Where:=Low(a) to High(a) do writeln(a[Where]);<br />
end;</syntaxhighlight><br />
<br />
===Spätné dokončovanie triedy===<br />
(''Reversed Class Completion'')<br />
Spätné dokončovanie triedy je časťou '''Dokončovania kódu''' a pridáva deklarácie súkromných metód pre aktuálne telo metódy. Je vyvolané, keď je kurzor v tele metódy, zatiaľ nie je definované pre triedy.<br />
<br />
Táto vlastnosť je dostupná od 0.9.21.<br />
<br />
Napríklad:<br />
<syntaxhighlight> procedure TForm1.DoSomething(Sender: TObject);<br />
begin<br />
end;</syntaxhighlight><br />
<br />
Metóda DoSomething zatiaľ nie je v TForm1 deklarovaná. Stlačte Ctrl+Shift+C a IDE pridá "procedure DoSomething(Sender: TObject);" k súkromným metódam triedy TForm1.<br />
<br />
Pre Delphianov:<br />
Dokončovanie tried pracuje pod Lazarus vždy jednym spôsobom:<br />
*Z rozhrania triedy do jej implementácie alebo naopak z implementácie triedy do jej rozhrania. Delphi vždy vyvoláva oba smery. Poszup v Delphi má nevýhodu, že ak dôjde k preklepu, ľahko vytvoríte bez upozornenia zvyšok novej metódy.<br />
<br />
===Komentáre a dokončovanie kódu===<br />
(''Comments and Code Completion'')<br />
<br />
Dokončovanie kódu sa pokúša uchovávať komentáre tam, kde sú. <br />
Príklad:<br />
<syntaxhighlight> FList: TList; // zoznam prvkov TComponent<br />
FInt: integer;</syntaxhighlight><br />
<br />
Pri vkladaní novej premennej medzi FList a FInt, je komentár ponechaný na riadku spolu s FList. To platí i pre:<br />
<syntaxhighlight> FList: TList; { zoznam prvkov TComponent<br />
Toto je komentár na niekoľkých riadkoch, začínajúci<br />
na riadku s FList, tak nástroj dokončenia kódu predpokladá že patrí <br />
k riadku s FList a nepreruší tento vzťah.<br />
Kód bude vložený za komentár. }<br />
FInt: integer;</syntaxhighlight><br />
<br />
Ak komentár začína na ďalšom riadku:<br />
<syntaxhighlight> FList: TList; // zoznam prvkov TComponent<br />
{ Tento komentár patrí k nasledujúcemu riadku. <br />
Nový kód je vložený pred tentokomentár a <br />
za komentár na riadku s FList. }<br />
FInt: integer;</syntaxhighlight><br />
<br />
==Refactoring==<br />
<br />
===Otočenie priradení===<br />
(''Invert Assignments'')<br />
<br />
Otočenie priradení pracuje s vybratými príkazmi Pascalu a obracia všetky priradenia z tohoto výberu. Tento nástroj je užitočný pre transformáciu "save" kódu na "load" a naopak.<br />
<br />
Príklad:<br />
<syntaxhighlight> procedure DoSomething;<br />
begin<br />
AValueStudio:= BValueStudio;<br />
AValueAppartment :=BValueAppartment;<br />
AValueHouse:=BValueHouse;<br />
end;</syntaxhighlight><br />
<br />
Vyberte riadky s priradeniami (medzi begin a end) a urobte Otočenie priradenia, všetky priradenia budú otočené a automaticky odsadené. Výsledok:<br />
<syntaxhighlight> procedure DoSomething;<br />
begin<br />
BValueStudio := AValueStudio;<br />
BValueAppartment := AValueAppartment;<br />
BValueHouse := AValueHouse;<br />
end;</syntaxhighlight><br />
<br />
=== Uzavrieť výber ===<br />
<br />
Vyberte nejaký text a vyvolajte nástroj. Zobrazí sa dialóg, kde si môžete vybrať či má výber uzatvorený medzi '''try..finally''' ale do mnoho iných blokov.<br />
<br />
=== Premenovať identifikátor ===<br />
<br />
Umiestnite kurzor na identifikátor a vyvolajte tento nástroj, obaví sa dialóg, v ktorom môžete nastaviť rozsah hľadania a nové meno identifikátora. <br />
* premenované budú všetky výskyty a len tie, ktoré momentálne používajú túto deklaráciu, čiže edklarácie s rovnakým menom nebudú premenované. <br />
* najprv bude vykonaná kontrola konfliktov mena. <br />
* Obmedzenia: Pracuje len so zdrojovými kódmi Pascalu, zatiaľ nepremenúva súbory ani neupravuje súbory lfm/lrs, či súbory lazdoc.<br />
<br />
=== Nájdi odkazy na identifikátor ===<br />
<br />
Umiestnite kurzor na identifikátor a vyvolajte nástroj. Objaví sa dialóg, v ktorom môžete nastaviť rozsah hľadania. IDE bude hľadať všetky výskyty a len tie, ktoré používajú aktuálnu deklaráciu. Čiže iné deklarácia s rovnakým menom, nebudú zobrazené.<br />
<br />
=== Zobraziť abstraktné metódy ===<br />
<br />
Táto funkcia vypisuje a automaticky kompletuje virtuálne, abstraktné metódy, ktoré je majú byť implementované.<br />
<br />
Umiestnite kurzor na deklaráciu triedu a vyvolajte nástroj. Ak existujú nejaké chýbajúce abstraktné metódy, nude zobrazený dialóg s ich zoznamom. Zvoľte metódy pre implementovanie a IDE vytvorí základy metód.<br />
<br />
=== Vytiahnuť procedúru ===<br />
Viz [[IDE_Window:_Extract_Procedure/sk|Extract Procedure]]<br />
<br />
==Hľadanie deklarácie==<br />
(''Find Declaration'')<br />
<br />
Umiestnite kurzor na identifikátor a urobte Hľadanie deklarácie, tým bude nájdená deklarácia tohoto identifikátora, prípadne otvorený príslušný súbor a kurzor bude premiestnený na miesto deklarácie.<br />
<br />
Každé hľadanie deklarácie nastavuje bod skoku. Tzn. po skoku na nájdenú deklaráciu môžete jednoduchos skočiť naspäť pomocou Search -> Jump back.<br />
<br />
Oproti Delphi má nástroj isté rozdiely:<br />
Nástroj pracuje so zdrojovým kódom na základe pravidiel Pascalu, a nie s výsledkom prekladača. The compiler returns the final type. Nástroj prezerá zdrojové kódy a všetky kroky medzi. Napríklad:<br />
<br />
: Vlastnosť 'Visible' je najprv definovaná v TControl (controls.pp), potom je predefinovaná v TCustomForm a nakoniec predefinovaná aj v TForm. Spustenie hľadania deklarácie vlastnosti Visible vás najprv presunie na Visible v TForm. Potom môžete spustiť hľadanie deklarácie znova a skočíte na Visible v TCustomForm a znova pre skočenie na Visible v TControl.<br />
<br />
Obdobne je to s TColor.<br />
Pre prekladač je to jednoducho 'longint', ale v zdrojovom kóde je to definované ako:<br />
<syntaxhighlight> TGraphicsColor = -$7FFFFFFF-1..$7FFFFFFF;<br />
TColor = TGraphicsColor;</syntaxhighlight><br />
<br />
Obdobné je to aj s forward definovanými triedami:<br />
Napríklad v TControl je priávtna premenná<br />
<syntaxhighlight> FHostDockSite: TWinControl;</syntaxhighlight><br />
<br />
Hľadanie deklarácie pre TWinControl skočí na forward definíciu:<br />
<syntaxhighlight> TWinControl = class;</syntaxhighlight><br />
<br />
A opätovné spustenie hľadania deklarácie skočí na skutočnú implementáciu:<br />
<syntaxhighlight> TWinControl = class(TControl)</syntaxhighlight><br />
<br />
Týmto spôsobom môžete stopovať každý identifikátor a nájsť každé predefinovanie, či preťaženie.<br />
<br />
==Dokončovanie identifikátorov==<br />
(''Identifier Completion'')<br />
<br />
Dokončovanie identifikátorov je vyvolané pomocou Ctrl+Space a zobrazuje všetky vyhovujúce identifikátory. <br />
<br />
Napríklad:<br />
<syntaxhighlight> procedure TForm1.FormCreate(Sender: TObject);<br />
begin<br />
|<br />
end;</syntaxhighlight><br />
<br />
Umiestnite kurzor medzi ''begin'' a ''end'' a stlačte Ctrl+Space. Nástroj IDE spracuje celý dosiahnuteľný kód a zobrazí zoznam všetkých nájdených identifikátorov. CodeTools kešuje výsledok, takže druhý krát bude oveľa rýchlejší.<br />
<br />
'''Poznámka pre Delphianov:''' Delphi to volá ''Dokončovanie kódu''.<br />
<br />
Niektoré identifikátory, ako 'Write', 'ReadLn', 'Low', 'SetLength', 'Self', 'Result', 'Copy' sú zabudované v prekladači a teda nie sú definované nikde v zdrojovom kóde, al Dokončovanie identifikátorov má veľa z nich tež zabudovaných. Ak nájdete nejaký chýbajúci, jednoducho vytvorte požiadadvku na vlastnosť v sledovači chýb (''bug tracker'').<br />
<br />
Dokončovanie identifikátorov nedokončuje kľúčové slová, takže ho nemožno použiť na dokončenie proc' na 'procedure'. Na toto je určené Ctrl+W [[#Dokončovanie_slov|Dokončovanie slov]] alebo Ctrl+J [[#Šablóny_kódu|Šablóny kódu]].<br />
<br />
Dokončovanie identifikátorov nezobrazuje len tie identifikátory, ktoré nie sú kompatibilné.<br />
<br />
===Predpona===<br />
Môžete začať dokončovanie identifikátorov v existujúcom slove. Potom budú písmená vľavo od kurzora brané ako predpona. <br />
<br />
Napríklad:<br />
<syntaxhighlight> procedure TForm1.FormCreate(Sender: TObject);<br />
begin<br />
Ca|ption<br />
end;</syntaxhighlight><br />
<br />
Okno bude zobrazovať len identifikátory začínajúce sa na 'Ca'.<br />
<br />
===Klávesy===<br />
<br />
* Písmená/čísla: pridávajú znak do editora zdrojového kódu a aktuálnej predpony, čo zároveň aktualizuje zoznam.<br />
* Backspace: odstraňuje posledný znak z editora zdrojového kódu a aktuálnej predpony, čo zároveň aktualizuje zoznam.<br />
* Return: nahradzuje celé slovo na kurzore zvoleným identifikátorom a zatvára vyskakovacie okno.<br />
* Shift+Return: as ''Return'', but replaces only the prefix (left part) of the word at the cursor.<br />
* Hore/Dole: presúva výber.<br />
* Esc: zatvára vyskakovacie okno bez zmeny.<br />
* Tab: dokončuje predponu na ďalšiu voľbu. Napríklad: aktuálna predpona je 'But' a dokončovanie identifikátora zobrazuje len 'Button1' a 'Button1Click', potom stlačenie ''Tab'' dokončí predponu na 'Button1'.<br />
* Else: ako ''Return'' a pridá znak do editora zdrojového kódu.<br />
<br />
==Dokončovanie slov==<br />
(''Word Completion'')<br />
<br />
Dokončovanie slov je vyvolané stlačením Ctrl+W a zobrazuje všetky slová všetkých aktuálne otvorených editorov. Inak pracuje presne ako Dokončovanie identifikátorov.<br />
<br />
==Prejdi do direktívy include==<br />
(''Goto Include Directive'')<br />
<br />
Tento príkaz v menu Searchskočí do príkazu (direktívy) {$I filename}, v ktorej je použitý aktuálny súbor.<br />
<br />
==Publikuj Projekt==<br />
Vytvára kópiu celého projektu. Ak chcete niekomu poslať len zdrojové kódy a nastavenia prekladača pre svoj kód, budete kamarátis touto funkciou.<br />
<br />
Bežný adresár projektu obsahuje množstvo informácií. Väčšinu z nich publikovať netreba. Súbor '''.lpi''' obsahuje informácie o relácii (ako pozíciu caret a záložiek zatvorených jednotiek) a adresár projektu obsahuje mnoho súborov '''.ppu''' a '''.o''', a tiež .exe. A práve príkaz Publikuj projekt vytvorí súbor '''.lpi''' len so základnými informáciami a všetky zdrojové kódy, so všetkých podadresárov.<br />
<br />
V ponúknutom dialógu môžete nastaviť filter pre zahrnutie/vynechanie, či pre kompresiu výstupu do jediného archívu.<br />
<br />
==Spolupracovníci==<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusIdeTools version].<br />
* Created page and initial template - 4/6/2004 [[User:Tom Lisjac| VlxAdmin]]<br />
* Initial content posted - 4/10/2004 MattiasG<br />
* Small wiki and formatting fixes - 4/11/2004 [[User:Tom Lisjac| VlxAdmin]]<br />
* Added a summary table for IdeTools shortcuts - 12 July 2004 [[User:Kirkpatc]]<br />
* Preložené z originálu [[Lazarus IDE Tools]] - [[User:Slavko|Slavko]] 13:51, 25 Mar 2005 (PST)</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_IDE_Tools/sk&diff=97772Lazarus IDE Tools/sk2015-11-10T10:43:26Z<p>Trsek: /* Prepínanie metód */</p>
<hr />
<div>{{Lazarus IDE Tools}}<br />
<br />
==Úvod==<br />
IDE používa knižnicu analýzy zdrojového kódu Pascal a editačných nástrojov, zvanú "codetools". Tieto nástroje poskytujú funkcie ako hľadanie deklarácie (find declaration), dokončovanie kódu (code completion), odstraňovanie, presúvanie, vkladanie a formátovanie zdrojového kódu Pascal. Tieto funkcie šetria množstvo času a duplicitných úloh. Sú nastaviteľné a každá funkcia je dostupná pomocou klávesovej skratky (viď Editor Options).<br />
<br />
Pretože ich práca záleží na zdrojovom kóde a pochopení FreePascal, Delphi a Kylix kódu, nevyžadujú preložené jednotky ani nainštalovaný prekladač Borland. Môžete naraz upravovať kód Delphi aj FreePascal. Môžete dokonca pracovať s rôznymi verziami Delphi a FreePascal súčasne. Tým sa stáva prenos Delphi kódu ešte jednoduchší.<br />
<br />
==Zhrnutie klávesových skratiek IDE==<br />
{|<br />
|-<br />
| [[Lazarus IDE Tools/sk#Hľadanie_deklarácie | Hľadanie deklarácie]] (Declaration Jumping) || '''Ctrl+Click''' alebo '''Alt+Up'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Prepínanie_metód | Prepínanie metód]] (Method Jumping) || '''Ctrl+Shift+Up''' a '''Ctrl+Shift+Down'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Šablóny_kódu | Šablóny kódu]] (Code Templates) || '''Ctrl+J'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Dokončovanie_kódu | Dokončovanie kódu]] (Code/Class Completion) || '''Ctrl+Shift+C'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Dokončovanie_identifikátorov | Dokončovanie identifikátorov]] (Identifier Completion) || '''Ctrl+Medzerník'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Dokončovanie_slov | Dokončovanie slov]] (Word Completion) || '''Ctrl+W'''<br />
|-<br />
| [[Lazarus IDE Tools/sk#Pomoc_s_parametrami |Pomoc s parametrami]] (Parameter Hints) || '''Ctrl+Shift+Space'''<br />
|}<br />
<br />
==Prepínanie metód==<br />
(''Method Jumping'')<br />
<br />
Na prepínanie medzi telom procedúry (begin..end) a jej definíciou (procedure Name;) použite Ctrl+Shift+Up.<br />
<br />
Príklad:<br />
<syntaxhighlight> interface<br />
<br />
procedure DoSomething; // procedure definition<br />
<br />
implementation<br />
<br />
procedure DoSomething; // procedure body <br />
begin<br />
end;</syntaxhighlight><br />
<br />
Ak je kurzor v tele provedúry a stlačíte Ctrl+Shift+Up, kurzor skočí na definíciu. Ak znova stlačíte Ctrl+Shift+Up preskočí do tela procedúry, za 'begin'. Funkcia pracuje aj s metódami (procedúrami v triedach).<br />
<br />
Tipy:<br />
'Method Jumping' presúva kurzor na rovnakú procedúru s rovnakým menom i zoznamom parametrov. Ak presná procedúra neexistuje, skočí na najpodobnejšiu a umiestni kurzor na prvý rozdiel. V Delphi táto funkcia neexistuje.<br />
<br />
Príklad procedúry s rôznymi typmi parametrov:<br />
<syntaxhighlight> interface<br />
<br />
procedure DoSomething(p: char); // procedure definition<br />
<br />
implementation<br />
<br />
procedure DoSomething(p: string); // procedure body<br />
begin<br />
end;</syntaxhighlight><br />
<br />
Preskočenie z definície do tela umiestni kurzor na kľúčové slovo 'string'. Túto vlastnosť môžete využiť na premenovanie metódy a/alebo zmenu jej parametrov.<br />
<br />
Príklad:<br />
Premenovali sme 'DoSomething' na 'MakeIt':<br />
<syntaxhighlight> interface<br />
<br />
procedure MakeIt; // procedure definition<br />
<br />
implementation<br />
<br />
procedure DoSomething; // procedure body<br />
begin<br />
end;</syntaxhighlight><br />
<br />
Potom urobte skok z definície MakeIt do tela. IDE hľadá vhodné telo, nenájde žiadne, preto začne hľadať kandidátov. Keďže ste premenovali len jednu procedúru, tak je len jedno telo bez definície (DoSomething) a tak skočí do DoSomething a umiestni kurzor vpravo od 'DoSomething'. Potomm ju môžete jednoducho premenovať tiež. Toto rovnako funguje aj s parametrami.<br />
<br />
==Include súbory==<br />
(''Include Files'')<br />
<br />
Include súbory sú súbory vložené do zdrojového kódu pomocou direktív prekladača {$I filename} alebo {$INCLUDE filename}. Lazarus a FreePascal používajú veľa takýchto vecí na redukciu nadbytočnosti a vyhnutie sa nečitateľnosti konštrukcií {$IFDEF} pri podpore rôznych platforiem.<br />
<br />
Narozdiel od Delphi, IDE Lazarus plne podporuje include súbory. Napríklad môžete skočiť z metódy v súbore .pas do tela metódy v include súbore. Všetky nástroje kódu, ako dokončovanie kódu, považuje include súbory za špeciálne hranice.<br />
<br />
Napríklad: keď dokončovanie kódu pridáva telo novej metódy za telom inej metódy, ponechá ich obe v rovnakom súbore. Týmto spôsobom môžete vložiť celú implementáciu triedy do include súborov, ako to robí LCL pre skoro všetky prvky.<br />
<br />
Ale je tu začiatočnícka chyba: Ak najprv otvoríte include súbor a skúsite prepínanie metód alebo hľadanie deklarácie, dostanete chybu. IDE nevie do ktorej jednotky include súbor patrí. Najprv musíte otvoriť jednotku.<br />
<br />
Hneď ako IDE zanalyzuje jednotku, zachytí v nej include direktívy a IDE si bude pamätať tento vzťah. Tieto informácie IDE ukladá pri skončení a pri uložení projektu do ~/.lazarus/includelinks.xml. Keď nabudúce otvoríte súbor include a urobíte skok do neho alebo hľadanie deklarácie, IDE interne otvorí jednotku a skoky budú fungovať.<br />
<br />
Tento mechanizmus má samozrejme obmedzenia, niektoré include súbory sú zahrnuté dva i viackrát. Napríklad: lcl/include/winapih.inc.<br />
Skákanie z definície procedúry/metódy v tomto include súbore do tela závisí na poslednej akcii. Ak ste pracovali v lcl/lclintf.pp, IDE skočí do winapi.inc. Ak ste pracovali v lcl/interfacebase.pp, potom skočíte do lcl/include/interfacebase.inc (alebo do jedného z ďalších include súborov). Ak pracujete s obomi, potom môže nastať zmätok. ;)<br />
<br />
==Šablóny kódu==<br />
(''Code Templates'')<br />
<br />
Šablóny kódu konvertujú identifikátor v texte alebo fragmente kódu. Šablóny kódu majú prednastavenú klávesovú skratku Ctrl+J. Môžete napísať identifikátor, stlačiť Ctrl+J a identifikátor je nahradený textom definovaným pre identifikátor. Šablóny kódu môžete definovať v Tools -> Options -> CodeTools.<br />
<br />
Príklad:<br />
Napíšte identifikátor 'classf', ponechajte kurzor vpravo za 'f' a stlačte Ctrl+J. Identifikátor 'classf' bude nahradený týmto:<br />
<syntaxhighlight> T = class(T)<br />
private<br />
<br />
public<br />
constructor Create;<br />
destructor Destroy; override;<br />
end;</syntaxhighlight><br />
<br />
a kurzor bude za 'T'.<br />
Zoznam šablón získate tak, že kurzor ponecháte na medzere (nie ne identifikátore) a stlačíte Ctrl+J. Pomocou kurzorových klávesov alebon apísania niekoľkých znakov vyberte jeden. Enter vytvorí zvolenú šablónu a Esc zatvorí zoznam.<br />
<br />
==Pomoc s parametrami==<br />
(''Parameter Hints'')<br />
Pomoc s parametrami ukazuje pomocné okno s deklaráciami parametrov aktuálneho zoznamu parametrov.<br />
<br />
Napríklad<br />
<syntaxhighlight> Canvas.FillRect(|);</syntaxhighlight><br />
<br />
Umiestnite kurzor do zátvoriek a stlačte Ctrl+Shift+Space. Objaví sa pomocné okno, ukazujúce parametre FillRect.<br />
<br />
==Dokončovanie kódu==<br />
(''Code Completion'')<br />
<br />
Dokončovanie kódu nájdete v menu IDE Edit -> Complete Code a má štandartnú klávespvú skratku Ctrl+Shift+C.<br />
V Delphi je dokončovaním kódu volaná funkcia zobrazujúca zoznam identifikátorov na aktuálnej pozícii v zdrojovom kóde (Ctrl+Space). V Lazarus je toto nazývané dokončovanie identifikátorov (Identifier completion). Dokončovanie kódu v sebe združuje niekoľko užitočných funkcií:<br />
<br />
* '''Dokončovanie tried''' (Class Completion): dokončuje vlastnosti, pridáva telá metód, pridáva súkromné premenné a súkromné metódy;<br />
* '''Dokončovanie forward procedúr''' (Forward Procedure Completion): pridáva telá forward procedúr;<br />
* '''Dokončovanie priradenia udalostí''' (Event Assignment Completion): * dokončuje pridelenie udalostí a pridávanie tiel a definícií metód;<br />
* '''Dokončovanie lokálnych premenných''' (Local Variable Completion): pridáva definície lokálnych premenných.<br />
Ktorá funkcia je použitá, závisí na pozícii kurzora v editore zdrojového kódu.<br />
<br />
===Dokončovanie tried===<br />
(''Class Completion'')<br />
<br />
Veľmi výkonnou funkciou dokončovania kódu je "Dokončovanie tried". Vy píšete triedu, pridáte metódy a vlastnosti, a dokončovanie kódu pridá telá metód, metódy prístupu k vlastnostiam a súkromným premenným. <br />
<br />
Príklad:<br />
Vytvorte triedu (viz [[Lazarus IDE Tools/sk#Šablóny_kódu | Šablóny kódu]], aby ste ušetrili rovnakú prácu):<br />
<syntaxhighlight> TExample = class(TObject)<br />
public<br />
constructor Create;<br />
destructor Destroy; override;<br />
end;</syntaxhighlight><br />
<br />
Umiestnite kurzor niekde v definícii triedy a stlačte '''Ctrl+Shift+C'''. Tým budú vytvorené chýbajúce telá metód a kurzor bude presunutý na prvé vytvorené telo, takže môžete rovno začať písať kód triedy:<br />
<syntaxhighlight> { TExample }<br />
<br />
constructor TExample.Create;<br />
begin<br />
|<br />
end;<br />
<br />
destructor TExample.Destroy;<br />
begin<br />
inherited Destroy;<br />
end;</syntaxhighlight><br />
<br />
:'''Poznámka''': Značka '|' nie je pridaná, len ukazuje umiestnenie kurzora.<br />
<br />
Tip: Prepínať medzi telom a definíciou metódy môžete pomocou Ctrl+Shift+Up.<br />
<br />
Všimnite si, že IDE tiež pridáva volanie deštruktora základnej triedy (inherited Destroy). Toto je urobené, ak v definícii treidy použijete kľúčové slovo '''override'''.<br />
<br />
Teraz pridajte metódu '''DoSomething''':<br />
<syntaxhighlight> TExample = class(TObject)<br />
public<br />
constructor Create;<br />
procedure DoSomething(i: integer);<br />
destructor Destroy; override;<br />
end;</syntaxhighlight><br />
<br />
Potom stlačte '''Ctrl+Shift+C''' a IDE pridá:<br />
<syntaxhighlight> procedure TExample.DoSomething(i: integer);<br />
begin<br />
|<br />
end;</syntaxhighlight><br />
<br />
Ako môžete vidieť, nové telo metódy je vložené medzi Create a Destroy, presne ako je to v definícii. Týmto sú telá metód uchovávané v rovnakom logickom poradí, ako v definícii. Spôsob vkladania môžete definovať pomocou Prostredie > Voľby Codetools -> Tvorenie kódu.<br />
<br />
===Dokončovanie vlastností===<br />
Pridajte vlastnosť '''AnInteger''':<br />
<syntaxhighlight> TExample = class(TObject)<br />
public<br />
constructor Create;<br />
procedure DoSomething(i: integer);<br />
destructor Destroy; override;<br />
property AnInteger;<br />
end;</syntaxhighlight><br />
<br />
Stlačte Ctrl+Shift+C a dostanete:<br />
<syntaxhighlight> procedure TExample.SetAnInteger(const AValue: integer);<br />
begin<br />
|if FAnInteger=AValue then exit;<br />
FAnInteger:=AValue;<br />
end;</syntaxhighlight><br />
<br />
Dokončovanie kódu pridalo metódu pre prístup k zápisu do vlastnosti a nejaký základný kód.<br />
<br />
Preskočte do triedy pomocou '''Ctrl+Shift+C''' a uvidíte, že v triede pribudlo:<br />
<syntaxhighlight> TExample = class(TObject)<br />
private<br />
FAnInteger: integer;<br />
procedure SetAnInteger(const AValue: integer);<br />
public<br />
constructor Create;<br />
procedure DoSomething(i: integer);<br />
destructor Destroy; override;<br />
property AnInteger: integer read FAnInteger write SetAnInteger;<br />
end;</syntaxhighlight><br />
<br />
Vlastnosť bola rozšírená pridaním kľúčových slov '''Read''' a '''Write'''. V triede je nová sekcia '''private''' s premennou '''FAnInteger''' a metódou '''SetAnInteger'''. Pridanie '''F''' na začiatok privátnej premennej je bežnou notáciou Delphi, rovnako ako označenie prístupovej metódy pomocou '''Set'''. Ak to nechcete, môžete to zmeniť ponmocou Prostredie > Voľby Codetools -> Tvorenie kódu.<br />
<br />
Vytvorenie vlastnosti len na čítanie:<br />
<syntaxhighlight> property PropName: PropType read;</syntaxhighlight><br />
<br />
Bude rozšírené na:<br />
<syntaxhighlight> property PropName: PropType read FPropName;</syntaxhighlight><br />
<br />
Vytvorenie vlastnosti len pre zápis:<br />
<syntaxhighlight> property PropName: PropType write;</syntaxhighlight><br />
<br />
Bude rozšírené na:<br />
<syntaxhighlight> property PropName: PropType write SetPropName;</syntaxhighlight><br />
<br />
Vytvorenie read only vlastnosti s metódou na čítanie:<br />
<syntaxhighlight> property PropName: PropType read GetPropName;</syntaxhighlight><br />
<br />
Deklarácia ostane nezmenená, ale bude pridaná funkcia '''GetPropName''':<br />
<syntaxhighlight> function GetpropName: PropType;</syntaxhighlight><br />
<br />
Vytvorenie vlastnosti s direktívou '''stored''':<br />
<syntaxhighlight> property PropName: PropType stored;</syntaxhighlight><br />
<br />
Bude rozšírené na:<br />
<syntaxhighlight> property PropName: PropType read FPropName write SetPropName stored PropNameIsStored;</syntaxhighlight><br />
<br />
Pretože direktíva '''stored''' je používaná pre streamovanie čítania a zápisu, sú pridané aj kľúčové slová '''read''' a '''write'''.<br />
<br />
Tip:<br />
Dokončovanie identifikátorov tiež rozpoznáva nekompletné vlastnosti a navrhne predvolené mená. Napríklad:<br />
<syntaxhighlight> property PropName: PropType read |;</syntaxhighlight><br />
<br />
Umiestnite kurzor za medzeru za kľúčovým slovom '''read''' a stlačte Ctrl+Space pre dokončovanie identifikátorov. To vám ponúkne premennú '''FPropName''' a procedúru '''SetPropName'''.<br />
<br />
===Dokončovanie procedúr===<br />
(''Forward Procedure Completion'')<br />
<br />
Dokončovanie dopredných deklarácií procedúr je časťou dokončovania kódu a pridáva telá chýbajúcich procedúr, ktoré sú definované. Je vyvolané, ak je kurzor na pripravenej definícii procedúry, pomocou klávesovej skratky '''Ctrl+Shift+C'''.<br />
<br />
Napríklad:<br />
Pridajte novú procedúru do časti '''interface''':<br />
<syntaxhighlight> procedure DoSomething;</syntaxhighlight><br />
<br />
Umiestnite kurzor na ňu a stlačte '''Ctrl+Shift+C''' pre dokončovanie kódu. V časti '''implementation''' bude doplnené:<br />
<syntaxhighlight> procedure DoSomething;<br />
begin<br />
|<br />
end;</syntaxhighlight><br />
<br />
:Tip: Pomocou '''Ctrl+Shift+Up''' môžete prepínať medzi definíciou a telom procedúry.<br />
<br />
Telo novej procedúry bude pridané pred metódy tried. Ak už sú v časti '''interface''' nejaké definície procedúr, IDE sa pokúsi zachovať ich poradie, napríklad:<br />
<syntaxhighlight> procedure Proc1;<br />
procedure Proc2; // nová procedúra<br />
procedure Proc3;</syntaxhighlight><br />
<br />
Ak telá '''Proc1''' a '''Proc3''' už existujú, potom bude telo '''Proc2''' vložené medzi telá procedúr '''Proc1''' a '''Proc3'''. Toto správanie môže byť zmené pomocou '''Prostredie > Voľby Codetools -> Tvorenie kódu'''.<br />
<br />
Viacero procedúr:<br />
<syntaxhighlight> procedure Proc1_Old; // telo existuje<br />
procedure Proc2_New; // telo neexistuje<br />
procedure Proc3_New; // "<br />
procedure Proc4_New; // "<br />
procedure Proc5_Old; // telo existuje</syntaxhighlight><br />
<br />
Dokončovanie kódu pridá 3 telá procedúr (Proc2_New, Proc3_New, Proc4_New).<br />
<br />
Tento nástroj nepracuje len s procedúrami definovanými v časti '''interface''', ale aj s procedúrami, ktoré sú definované pomocou kľúčového slova '''forward'''.<br />
<br />
===Dokončovanie priradenia udalostí===<br />
(''Event Assignment Completion'')<br />
<br />
Dokončovanie priradenia udalostí je čsťou Dokončovania kódu a dokončuje jeden príkaz Event:=|. Nastáva, keď je kurzor umiestnený za príkazom priradenia udalosti a stlačíte '''Ctrl+Shift+C'''.<br />
<br />
;Napríklad:<br />
V metóde, povedzme udalosti FormCreate, pridajte riadok: 'OnPaint:=':<br />
<syntaxhighlight> procedure TForm1.Form1Create(Sender: TObject);<br />
begin<br />
OnPaint:=|<br />
end;</syntaxhighlight><br />
<br />
Značka '|' je umiestnenie kurzora a netreba ju zadávať.<br />
<br />
Potom stlačte '''Ctrl+Shift+C''' pre dokončovanie kódu. Príkaz priradenia udalosti bude doplnený takto:<br />
<syntaxhighlight> OnPaint:=@Form1Paint;</syntaxhighlight><br />
<br />
Do triedy '''TForm1''' bude pridaná nová metóda '''Form1Paint'''. Potom je spustené dokončovanie tried a dostanete:<br />
<syntaxhighlight> procedure TForm1.Form1Paint(Sender: TObject);<br />
begin<br />
|<br />
end;</syntaxhighlight><br />
<br />
Pracuje presne ako pridávanie metód v '''Inšpektore objektov'''.<br />
<br />
:'''Poznámka''': Kurzor musíte umiestniť za operátor priradenia ':='. Ak ho umiestnite na identifikátor (tj. '''OnPaint'''), dokončovanie kódu spustí Dokončovanie lokálnych premenných, ktoré zlyhá, pretože '''OnPaint''' je už definovaná.<br />
<br />
Tip:<br />
Môžete definovať meno novej metódi aj sami, a to jej zadaním do priradenia, napríklad:<br />
<syntaxhighlight> OnPaint:=@ThePaintMethod;</syntaxhighlight><br />
<br />
===Dokončovanie deklarácie premenných===<br />
(''Variable Declaration Completion'')<br />
<br />
Dokončovanie deklarácie premenných je časťou '''Dokončovania kódu''' a pridáva definíciu lokálnej premennej pre príkaz Identifier:=Term;. Dokončovanie deklarácie premenných je vyvolané, keď je kurzor umiestnený na identifikátore v priradení.<br />
<br />
Napríklad:<br />
<syntaxhighlight> procedure TForm1.Form1Create(Sender: TObject);<br />
begin<br />
i:=3;<br />
end;</syntaxhighlight><br />
<br />
Umiestnite kurzor na 'i' alebo tesne za neho, potom stlačte Ctrl+Shift+C pre dokončovanie kódu a dostanete:<br />
<syntaxhighlight> procedure TForm1.Form1Create(Sender: TObject);<br />
var<br />
i: Integer;<br />
begin<br />
i:=3;<br />
end;</syntaxhighlight><br />
<br />
Nástroj dokončovania kódu najprv skontroluje, či identifikátor 'i' už nie je definovaný a ak nie, pridá deklaráciu 'var i: integer;'. Typ identifikátora je odhadovaný podľa pravej strany príkazu priradenia. Čísla ako 3 sú identifikované ako Integer.<br />
<br />
Iný príklad:<br />
<syntaxhighlight> type<br />
TWhere = (Behind, Middle, InFront);<br />
<br />
procedure TForm1.Form1Create(Sender: TObject);<br />
var<br />
a: array[TWhere] of char;<br />
begin<br />
for Where:=Low(a) to High(a) do writeln(a[Where]);<br />
end;</syntaxhighlight><br />
<br />
Umiestnite kurzor na 'Where' a stlačte Ctrl+Shift+C pre dokončenie kódu. Dostanete:<br />
<syntaxhighlight> procedure TForm1.Form1Create(Sender: TObject);<br />
var<br />
a: array[TWhere] of char;<br />
Where: TWhere;<br />
begin<br />
for Where:=Low(a) to High(a) do writeln(a[Where]);<br />
end;</syntaxhighlight><br />
<br />
===Spätné dokončovanie triedy===<br />
(''Reversed Class Completion'')<br />
Spätné dokončovanie triedy je časťou '''Dokončovania kódu''' a pridáva deklarácie súkromných metód pre aktuálne telo metódy. Je vyvolané, keď je kurzor v tele metódy, zatiaľ nie je definované pre triedy.<br />
<br />
Táto vlastnosť je dostupná od 0.9.21.<br />
<br />
Napríklad:<br />
<syntaxhighlight> procedure TForm1.DoSomething(Sender: TObject);<br />
begin<br />
end;</syntaxhighlight><br />
<br />
Metóda DoSomething zatiaľ nie je v TForm1 deklarovaná. Stlačte Ctrl+Shift+C a IDE pridá "procedure DoSomething(Sender: TObject);" k súkromným metódam triedy TForm1.<br />
<br />
Pre Delphianov:<br />
Dokončovanie tried pracuje pod Lazarus vždy jednym spôsobom:<br />
*Z rozhrania triedy do jej implementácie alebo naopak z implementácie triedy do jej rozhrania. Delphi vždy vyvoláva oba smery. Poszup v Delphi má nevýhodu, že ak dôjde k preklepu, ľahko vytvoríte bez upozornenia zvyšok novej metódy.<br />
<br />
===Komentáre a dokončovanie kódu===<br />
(''Comments and Code Completion'')<br />
<br />
Dokončovanie kódu sa pokúša uchovávať komentáre tam, kde sú. <br />
Príklad:<br />
<syntaxhighlight> FList: TList; // zoznam prvkov TComponent<br />
FInt: integer;</syntaxhighlight><br />
<br />
Pri vkladaní novej premennej medzi FList a FInt, je komentár ponechaný na riadku spolu s FList. To platí i pre:<br />
<syntaxhighlight> FList: TList; { zoznam prvkov TComponent<br />
Toto je komentár na niekoľkých riadkoch, začínajúci<br />
na riadku s FList, tak nástroj dokončenia kódu predpokladá že patrí <br />
k riadku s FList a nepreruší tento vzťah.<br />
Kód bude vložený za komentár. }<br />
FInt: integer;</syntaxhighlight><br />
<br />
Ak komentár začína na ďalšom riadku:<br />
<syntaxhighlight> FList: TList; // zoznam prvkov TComponent<br />
{ Tento komentár patrí k nasledujúcemu riadku. <br />
Nový kód je vložený pred tentokomentár a <br />
za komentár na riadku s FList. }<br />
FInt: integer;</syntaxhighlight><br />
<br />
==Refactoring==<br />
<br />
===Otočenie priradení===<br />
(''Invert Assignments'')<br />
<br />
Otočenie priradení pracuje s vybratými príkazmi Pascalu a obracia všetky priradenia z tohoto výberu. Tento nástroj je užitočný pre transformáciu "save" kódu na "load" a naopak.<br />
<br />
Príklad:<br />
<syntaxhighlight> procedure DoSomething;<br />
begin<br />
AValueStudio:= BValueStudio;<br />
AValueAppartment :=BValueAppartment;<br />
AValueHouse:=BValueHouse;<br />
end;</syntaxhighlight><br />
<br />
Vyberte riadky s priradeniami (medzi begin a end) a urobte Otočenie priradenia, všetky priradenia budú otočené a automaticky odsadené. Výsledok:<br />
<syntaxhighlight> procedure DoSomething;<br />
begin<br />
BValueStudio := AValueStudio;<br />
BValueAppartment := AValueAppartment;<br />
BValueHouse := AValueHouse;<br />
end;</syntaxhighlight><br />
<br />
=== Uzavrieť výber ===<br />
<br />
Vyberte nejaký text a vyvolajte nástroj. Zobrazí sa dialóg, kde si môžete vybrať či má výber uzatvorený medzi '''try..finally''' ale do mnoho iných blokov.<br />
<br />
=== Premenovať identifikátor ===<br />
<br />
Umiestnite kurzor na identifikátor a vyvolajte tento nástroj, obaví sa dialóg, v ktorom môžete nastaviť rozsah hľadania a nové meno identifikátora. <br />
* premenované budú všetky výskyty a len tie, ktoré momentálne používajú túto deklaráciu, čiže edklarácie s rovnakým menom nebudú premenované. <br />
* najprv bude vykonaná kontrola konfliktov mena. <br />
* Obmedzenia: Pracuje len so zdrojovými kódmi Pascalu, zatiaľ nepremenúva súbory ani neupravuje súbory lfm/lrs, či súbory lazdoc.<br />
<br />
=== Nájdi odkazy na identifikátor ===<br />
<br />
Umiestnite kurzor na identifikátor a vyvolajte nástroj. Objaví sa dialóg, v ktorom môžete nastaviť rozsah hľadania. IDE bude hľadať všetky výskyty a len tie, ktoré používajú aktuálnu deklaráciu. Čiže iné deklarácia s rovnakým menom, nebudú zobrazené.<br />
<br />
=== Zobraziť abstraktné metódy ===<br />
<br />
Táto funkcia vypisuje a automaticky kompletuje virtuálne, abstraktné metódy, ktoré je majú byť implementované.<br />
<br />
Umiestnite kurzor na deklaráciu triedu a vyvolajte nástroj. Ak existujú nejaké chýbajúce abstraktné metódy, nude zobrazený dialóg s ich zoznamom. Zvoľte metódy pre implementovanie a IDE vytvorí základy metód.<br />
<br />
=== Vytiahnuť procedúru ===<br />
Viz [[IDE_Window:_Extract_Procedure/sk|Extract Procedure]]<br />
<br />
==Hľadanie deklarácie==<br />
(''Find Declaration'')<br />
<br />
Umiestnite kurzor na identifikátor a urobte Hľadanie deklarácie, tým bude nájdená deklarácia tohoto identifikátora, prípadne otvorený príslušný súbor a kurzor bude premiestnený na miesto deklarácie.<br />
<br />
Každé hľadanie deklarácie nastavuje bod skoku. Tzn. po skoku na nájdenú deklaráciu môžete jednoduchos skočiť naspäť pomocou Search -> Jump back.<br />
<br />
Oproti Delphi má nástroj isté rozdiely:<br />
Nástroj pracuje so zdrojovým kódom na základe pravidiel Pascalu, a nie s výsledkom prekladača. The compiler returns the final type. Nástroj prezerá zdrojové kódy a všetky kroky medzi. Napríklad:<br />
<br />
: Vlastnosť 'Visible' je najprv definovaná v TControl (controls.pp), potom je predefinovaná v TCustomForm a nakoniec predefinovaná aj v TForm. Spustenie hľadania deklarácie vlastnosti Visible vás najprv presunie na Visible v TForm. Potom môžete spustiť hľadanie deklarácie znova a skočíte na Visible v TCustomForm a znova pre skočenie na Visible v TControl.<br />
<br />
Obdobne je to s TColor.<br />
Pre prekladač je to jednoducho 'longint', ale v zdrojovom kóde je to definované ako:<br />
<syntaxhighlight> TGraphicsColor = -$7FFFFFFF-1..$7FFFFFFF;<br />
TColor = TGraphicsColor;</syntaxhighlight><br />
<br />
Obdobné je to aj s forward definovanými triedami:<br />
Napríklad v TControl je priávtna premenná<br />
<syntaxhighlight> FHostDockSite: TWinControl;</syntaxhighlight><br />
<br />
Hľadanie deklarácie pre TWinControl skočí na forward definíciu:<br />
<syntaxhighlight> TWinControl = class;</syntaxhighlight><br />
<br />
A opätovné spustenie hľadania deklarácie skočí na skutočnú implementáciu:<br />
<syntaxhighlight> TWinControl = class(TControl)</syntaxhighlight><br />
<br />
Týmto spôsobom môžete stopovať každý identifikátor a nájsť každé predefinovanie, či preťaženie.<br />
<br />
==Dokončovanie identifikátorov==<br />
(''Identifier Completion'')<br />
<br />
Dokončovanie identifikátorov je vyvolané pomocou Ctrl+Space a zobrazuje všetky vyhovujúce identifikátory. <br />
<br />
Napríklad:<br />
<syntaxhighlight> procedure TForm1.FormCreate(Sender: TObject);<br />
begin<br />
|<br />
end;</syntaxhighlight><br />
<br />
Umiestnite kurzor medzi ''begin'' a ''end'' a stlačte Ctrl+Space. Nástroj IDE spracuje celý dosiahnuteľný kód a zobrazí zoznam všetkých nájdených identifikátorov. CodeTools kešuje výsledok, takže druhý krát bude oveľa rýchlejší.<br />
<br />
'''Poznámka pre Delphianov:''' Delphi to volá ''Dokončovanie kódu''.<br />
<br />
Niektoré identifikátory, ako 'Write', 'ReadLn', 'Low', 'SetLength', 'Self', 'Result', 'Copy' sú zabudované v prekladači a teda nie sú definované nikde v zdrojovom kóde, al Dokončovanie identifikátorov má veľa z nich tež zabudovaných. Ak nájdete nejaký chýbajúci, jednoducho vytvorte požiadadvku na vlastnosť v sledovači chýb (''bug tracker'').<br />
<br />
Dokončovanie identifikátorov nedokončuje kľúčové slová, takže ho nemožno použiť na dokončenie proc' na 'procedure'. Na toto je určené Ctrl+W [[#Dokončovanie_slov|Dokončovanie slov]] alebo Ctrl+J [[#Šablóny_kódu|Šablóny kódu]].<br />
<br />
Dokončovanie identifikátorov nezobrazuje len tie identifikátory, ktoré nie sú kompatibilné.<br />
<br />
===Predpona===<br />
Môžete začať dokončovanie identifikátorov v existujúcom slove. Potom budú písmená vľavo od kurzora brané ako predpona. <br />
<br />
Napríklad:<br />
<syntaxhighlight> procedure TForm1.FormCreate(Sender: TObject);<br />
begin<br />
Ca|ption<br />
end;</syntaxhighlight><br />
<br />
Okno bude zobrazovať len identifikátory začínajúce sa na 'Ca'.<br />
<br />
===Klávesy===<br />
<br />
* Písmená/čísla: pridávajú znak do editora zdrojového kódu a aktuálnej predpony, čo zároveň aktualizuje zoznam.<br />
* Backspace: odstraňuje posledný znak z editora zdrojového kódu a aktuálnej predpony, čo zároveň aktualizuje zoznam.<br />
* Return: nahradzuje celé slovo na kurzore zvoleným identifikátorom a zatvára vyskakovacie okno.<br />
* Shift+Return: as ''Return'', but replaces only the prefix (left part) of the word at the cursor.<br />
* Hore/Dole: presúva výber.<br />
* Esc: zatvára vyskakovacie okno bez zmeny.<br />
* Tab: dokončuje predponu na ďalšiu voľbu. Napríklad: aktuálna predpona je 'But' a dokončovanie identifikátora zobrazuje len 'Button1' a 'Button1Click', potom stlačenie ''Tab'' dokončí predponu na 'Button1'.<br />
* Else: ako ''Return'' a pridá znak do editora zdrojového kódu.<br />
<br />
==Dokončovanie slov==<br />
(''Word Completion'')<br />
<br />
Dokončovanie slov je vyvolané stlačením Ctrl+W a zobrazuje všetky slová všetkých aktuálne otvorených editorov. Inak pracuje presne ako Dokončovanie identifikátorov.<br />
<br />
==Prejdi do direktívy include==<br />
(''Goto Include Directive'')<br />
<br />
Tento príkaz v menu Searchskočí do príkazu (direktívy) {$I filename}, v ktorej je použitý aktuálny súbor.<br />
<br />
==Publikuj Projekt==<br />
Vytvára kópiu celého projektu. Ak chcete niekomu poslať len zdrojové kódy a nastavenia prekladača pre svoj kód, budete kamarátis touto funkciou.<br />
<br />
Bežný adresár projektu obsahuje množstvo informácií. Väčšinu z nich publikovať netreba. Súbor '''.lpi''' obsahuje informácie o relácii (ako pozíciu caret a záložiek zatvorených jednotiek) a adresár projektu obsahuje mnoho súborov '''.ppu''' a '''.o''', a tiež .exe. A práve príkaz Publikuj projekt vytvorí súbor '''.lpi''' len so základnými informáciami a všetky zdrojové kódy, so všetkých podadresárov.<br />
<br />
V ponúknutom dialógu môžete nastaviť filter pre zahrnutie/vynechanie, či pre kompresiu výstupu do jediného archívu.<br />
<br />
==Spolupracovníci==<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusIdeTools version].<br />
* Created page and initial template - 4/6/2004 [[User:Tom Lisjac| VlxAdmin]]<br />
* Initial content posted - 4/10/2004 MattiasG<br />
* Small wiki and formatting fixes - 4/11/2004 [[User:Tom Lisjac| VlxAdmin]]<br />
* Added a summary table for IdeTools shortcuts - 12 July 2004 [[User:Kirkpatc]]<br />
* Preložené z originálu [[Lazarus IDE Tools]] - [[User:Slavko|Slavko]] 13:51, 25 Mar 2005 (PST)</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Faq/sk&diff=97771Lazarus Faq/sk2015-11-10T10:14:11Z<p>Trsek: /* Pri linkovaní dostávam chybu, že /usr/bin/ld nemôže nájsť -l */</p>
<hr />
<div>{{Lazarus Faq}}<br />
<br />
Tento FAQ bol zkopírovaný z FAQ na adrese www.freepascal.org, je jednoduchšie sa oň starať a rozširovať ho, keď je vo wiki formáte.<br />
<br />
== Všeobecné otázky ==<br />
<br />
=== Kde môžem nájsť viacero FAQ? ===<br />
<br />
Pozrite sa na [http://www.lazarus.freepascal.org oficiálnu stránku]. Nájdete tam ďalší FAQ.<br />
<br />
===Prečo sú generované binárky také veľké?===<br />
Binárky sú veľké pretože obsahujú množstvo ladiacich informácií potrebných pre gdb (GNu Debugger).<br />
<br />
Prekladač má prepínač na vypnutie lediacich informácií v binárnom súbore (-Xs), ale vďaka chybe v prekladači (verzia 2.0.2 a skoršie), tento nefunguje správne. Chyba bola opravená vo vývojovej verzii prekladača.<br />
<br />
Na odstránenie ladiacich symbolov zo spustiteľného súboru môžete použiť program zvaný "strip", nájdete ho v inštalačnom adresári Lazaraus lazarus\pp\bin\i386-win32\.<br />
<br />
Jednoducho v príkazovom riadku napíšte príkaz "strip --strip-all <váš exe súbor>".<br />
<br />
Ak chcete mať svoj program ešte menší, môžete vyskúšať použiť program [http://upx.sourceforge.net/ UPX]. UPX je veľmi dobrý kompresor pre vykonateľné súbory. Vďaka tomu, že binárku komprimuje priamo ("na mieste"), nemá žiadne problémy s prílišným vyťažením pamäte. Okrem toho má veľmi rýchlo dekompresiu (~10 MB/s na Pentiu 133).<br />
<br />
UPX spustíte zadaním "upx <váš exe súbor>" v príkazovom riadku.<br />
<br />
Po použití programu strip aj upx sa jednoduchá GUI aplikácia v Lazare zmenší na:<br />
* ~ 700kb na Linuxe<br />
* ~ 420kb na Windows<br />
<br />
Detailnejšiu odpoveď na túto otázku môžete [[fpc:Size Matters|nájsť tu]].<br />
<div class="floatright">[[Image:Lazarus_vs_cpp.png]]</div><br />
Je dôležté si uvedomiť, že už program hello world v Lazarus zahŕňa veľké množstvo vlastností:<br />
<br />
* Knižnicu obsluhy XML<br />
* Knižnicu oblsuhy obrázkov pre súbory png, xpm, bmp a ico<br />
* Skoro všetky nástroje z Lazarus Component Library<br />
* Celú Free Pascal Runtime Library<br />
<br />
Takže je veľmi veľký, ale už obsahuje skoro všetko, čo skutočná netriviálna aplikácia bude potrebovať.<br />
<br />
Veľkosť spustiteľných súborov z Lazarus ja na začiatku veľká, ale narastá veľmi pomaly, vďaka spôsobu akým prekladač Free Pascal a fomruláre Lazarus pracuje. Projekt C++ (len príklad, ale aplikovateľný aj na iné jazyky/nástroje) má hello world veľmi malý, ale rýchlo exponencionálne narastá, keď potrebujete vlastnosti pre napísanie netriviálnch aplikácií.<br />
<br />
<br clear=all><br />
=== Prečo je linkovanie vo Windows také pomalé? ===<br />
<br />
Všeobecne povedané, preklad vo Windows zaberie viac času ako na iných platformých, pretože GNU Linker používaný Free Pascalom pracuje na tejto platforme pomaly. Tento problém ovplyvňuje len Windows a len na relatívne starých počítačoch (menej ako 1Ghz) a počítačoch s malou (128MB a menej).<br />
<br />
Rovnako, ak smartlinkujete LCL, bude linkovanie ešte pomalšie. Štúdiu o týchto problémoch môžete nájsť tu: [[File size and smartlinking]]<br />
<br />
Tento problém sa týka iba Windows, a iba na relatívne starších počítačoch (menej ako 1Ghz) a a počítačoch s málo RAM RAM (128MB alebo menej).<br />
<br />
Bol vyvinutý interný linker a je pripravený, ale bude dostupný len po uvoľnení Free Pascal 2.(samozrejme je dostupný cez subversion). Dramaticky skracuje linkovanie.<br />
<br />
:'''Poznámka''': V 2.1.1 Windows používa interný pre win32/64/ce, ktorý proces trochu zrýchľuje. Rekompilácia Lazarus potom zaberie okolo 280MB.<br />
<br />
=== Potrebujem ppc386.cfg alebo fpc.cfg? ===<br />
<br />
Potrebujete iba fpc.cfg. Toto je ten správny spôsob, ako prekladaču oznámiť, kde má hľadať knižnice.<br />
<br />
=== Ako skompilujem lazarus? ===<br />
<br />
Urobte niečo ako toto:<br />
$ cd lazarus<br />
$ make clean all<br />
<br />
=== Ako vytvorím iné projekty založené na LCL? ===<br />
<br />
Pokiaľ nemôžete použiť IDE pre zostavenie vašej aplikácie, pridajte na koniec súboru fpc.cfg nasledujúce riadky: <br />
<br />
# Pridá knižnice<br />
-Fu/your.lazarus.root/lcl/units<br />
-Fu/your.lazarus.root/lcl/units/{váš_toolkit}<br />
-Fu/your.lazarus.root/components/units<br />
-Fu/your.lazarus.root/components/units/{váš_toolkit}<br />
<br />
:Kde {váš_toolkit} môže byť GTK, Gnome alebo Win32 a potom spustite:<br />
::ppc386 vasprojekt.pp<br />
<br />
=== Akú verziu FPC potrebujem? ===<br />
Používajte verzi 2.2.2 pre všetky operačné systémy.<br />
<br />
=== Nemôžem skompilovať Lazarus ===<br />
<br />
# Overte si, či máte prekladač správnej verzie<br />
# Overte si, či sú (fpc) knižnice taktiež z tej istej verzie.<br />
# Overte si, či máte fpc.cfg a nie starý ppc386.cfg<br />
# Taktiež si pozrite FAQ vzťahujúce sa k vášmu OS<br />
<br />
=== Keď sa pokúšam kompilovať projekt, dostanem chybovú hlášku ===<br />
==== "Cannot find Unit interfaces". Ako to vyriešiť?====<br />
Tento skompilovaný unit by sa mal nachádzať v {LazarusDir}/lcl/units/{TargetCPU}-{TargetOS}/{LCLWidgetSet}/interfaces.ppu. <br />
<br />
Uistite sa, že je iba jeden. Ak máte niekoľko verzií interfaces.ppu, tak pravdepodobne máte chybu v konfigurácii (napríklad ste pridali lcl adresár do vašej cesty). Zmažte všetky interfaces.ppu okrem toho vo vyššie definovanom adresári.<br />
<br />
Ak používate iný widgetset, než ten, pre aký ste skompilovali Lazarus, musíte taktiež pre tento widgetset skompilovať aj LCL. <br />
<br />
Ak ste sa dostali sem, ale stále sa zjavuje chybová hláška, tak používate iný prekladač / rtl pre kompilovanie vášho projektu ako ten, ktorý bol použitý pre skompilovanie Lazarus IDE. Môžete urobiť nasledovné:<br />
* urobiť rebuild LCL (alebo Lazara kompletne) s prekladačom, ktorý zvolíte v Environmnent Options. Urobíte to v menu Tools -> Build Lazarus. Avšak predtým si prezrite a prípadne upravte nastavenia pre build v Tools -> Configure Build Lazarus.<br />
* Zmeňte prekladač v Environment Options na ten, ktorý ste použili pre skompilovanie Lazara. Pozorne si prezrite taktiež Environment Options a presvedčte sa, že máte nastavenú správnu cestu pre Lazarus Directory (inštalačný adresár Lazarus) a FPC sources directory (zdrojové adresáre pre fpc unity). Overte si, že v konfiguračnom súbore fpc.cfg máte iba jednu verziu prekladača - na Linuxe a iných unixových systémoch by sa tento súbor mal nachádzať v adresári /etc a na Windows v rovnakom adresári ako fpc prekladač. Kópie starých verzií súboru taktiež ostávajú v systéme, keď updatujete váš prekladač na novšiu verziu a môžu spôsobovať problémy, môžu sa nachádzať vo vašom domovskom adresári, alebo v tom istom adresári, v ktorom ste budovali váš nový prekladač. ZMAŽTE ICH!!<br />
* Môžete tiež skúsiť zmeniť widgeset pre aktuálny projekt. Napr. ukážkový project "objectinspector", ktorý je súčasťou inštalácie Lazara je nastavený na gtk. Kompilovanie tohoto projektu určite skončí v chybe "Can't find unit interfaces" na platforme Windows. Zmenou widgesetu na default(Win32) v Project | Compiler Options ... | LCL Widget Type (various) môže odstrániť tento problém.<br />
<br />
=== Keď sa pokúšam skompilovať Delphi projekt v Lazare, dostanem chybovú hlášku ===<br />
==== at the line :{$R *.DFM} Ako vyriešim tento problém? ====<br />
<br />
Lazarus (alebo lepšie Linux) nepozná resourcy, takže ich nemôžete používať takým spôsobom ako robí Delphi/win32. Lazarus však používa tomuto vcelku kompatibilnú metódu. Pokiaľ sa budete riadiť nasledovným, tak stále môžete používať vaše Delphi layouty (.dfm súbory):<br />
<br />
*Potrebujete textovú verziu .dfm súboru. Delphi5 a vyššie to majú predvolené. Ak máte staršie súbory:: skratkou ALT-F12 si prezriete layout ako text a potom cut&paste. Keď už máte textový .dfm file, proste ho skopírujte do .lfm súboru.<br />
*S pomocou lazres (v lazarus/tools) vytvorte súbor. <br />
lazres vas_formular.lrs vas_formular.lfm<br />
*Pridajte nasledovnú inicializačnú sekciu<br />
<br />
initialization<br />
{$I yourform.lrs}<br />
<br />
Prosím, pamätajte na to, že nie všetky vlastnosti v dfm sú podporované Lazarom, takže vám IDE môže spadnúť.<br />
<br />
==== 'Identifier not found LazarusResources'. ====<br />
<br />
Pri vytváraní formulára Lazarus automaticky pridáva niekoľko extra unitov do uses sekcie vášho formulárového unitu. Počas konverzie z delphi unitu do lazarovho unitu sa toto nedeje. Čiže LResources potrebujete do uses sekcie vášho formulárového unitu pridať ručne.<br />
<br />
=== Pri prístupe k udalostiam objektov objektov, napríklad udalosti onclick pre tlačidlo, dostanem nasledujúcu chybu: ERROR unit not found: stdCtrls ===<br />
<br />
Uistite sa (v Project -> Project Inspector), že váš projekt závisí na balíčkoch LCL a že ste nainštalovali zdrojové súbory FPC.<br />
<br />
Lazarus pozostáva z IDE a z knižnice vizuálnych komponentov LCL.<br />
Všetko ostatné, ako IO, databázy, FCL a RTL sú poskytované FPC.<br />
IDE potrebuje poznať cesty ku všetkým týmto zdrojom.<br />
<br />
Cestu k FPC zdrojom môžete nastaviť cez:<br />
Tools -> Options -> Files -> FPC source path<br />
<br />
===Ako vložím malý súbor do spustitelného súboru? Ako vložím resource?===<br />
<br />
/your/lazarus/path/tools/lazres sound.lrs sound1.wav sound2.wav ...<br />
vytvorí súbor sound.lrs zo súborov sound1.wav a sound2.wav.<br />
<br />
Potom ho môžete includnuť *za* lrs súborom formulára:<br />
<br />
...<br />
initialization<br />
{$i unit1.lrs} // hlavný resource súbor (vždy prvý !)<br />
{$i sound.lrs} // vlastný resource súbor<br />
<br />
end.<br />
V programe potom môžete použiť napr.:<br />
Sound1AsString:=LazarusResources.Find('sound1').Value;<br />
<br />
=== Ako sa dostanem k debug výstupu? ===<br />
<br />
V unite LCLProc sa nachádzajú dve procedúry pre písane do debug výstupu: <br />
* '''DebugLn:''' funguje rovnako ako WriteLn, ale písať sa do nej dajú len textové reťazce (string).<br />
* '''DbgOut:''' funguje rovnako ako Write, ale písať sa do nej dajú len textové reťazce (string).<br />
<br />
Za normálnych okolností sa debug výstup píše do stdout. Pokiaľ stdout nie je otvorený (typ aplikácie je {$AppType Gui} alebo je skompilovaná pod Windows s prepínačom -WG), výstup sa nepíše vôbec.<br />
<br />
Debug výstup sa môže tiež zapisovať do súboru. Inicializačný kód v unite LCLProc skontroluje, či sa v príkazovom riadku nenachádza parameter '--debug-log=<file>'. Pokiaľ sa nachádza, všetok debug výstup sa píše do súboru <file>.<br />
<br />
Pokiaľ sa v príkazovom riadku nenájde parameter '--debug-log', LCLProc skontroluje systémovú premennú xxx_debuglog (xxx je názov programu bez prípony, čiže napr. pre Lazarus hľadá premennú lazarus_debuglog). Pokiaľ takáto systémová premenná existuje, debug výstup sa zapíše do nastaveného súboru. Napr. nastavením:<br />
<br />
set lazarus_debuglog=c:\lazarus\debug.txt<br />
<br />
sa bude debug výstup programu Lazarus zapisovať do súboru c:\lazarus\debug.txt.<br />
<br />
Keďže táto funkcionalita je implementovaná v unite LCLProc, je prístupná pre každú aplikáciu, ktorá túto unitu používa.<br />
<br />
;Debugovanie Lazarusu : Najmä pre používateľov Windows: Pokiaľ chcete, aby Lazarus vypisoval do konzoly, pridajte {$APPTYPE console} do súboru lazarus.pp a prekompilujte Lazarus.<br />
<br />
=== Aký je význam prípon rôznych súborov, ktoré Lazarus používa? ===<br />
<br />
[[Lazarus Tutorial/sk#The Lazarus files]] uvádza niektoré príklady. Tu je stručný zoznam:<br />
<br />
; <code>*.lpi</code> : Lazarus Project Information file - informácie o projekte (uložený v XML; obsahuje nastavania špecifické pre konkrétny projekt)<br />
; <code>*.lpr</code> : Lazarus Program file; obsahuje pascalovský zdrojový kód hlavného programu<br />
; <code>*.lfm</code> : Lazarus Form file; obsahuje vlastnosti všetkých objektov na formulári (uložený v Lazarovskom špeciálnom textovom formáte; akcie sú uložené v Pascale v príslušnom <code>.pas</code> súbore)<br />
; <code>*.pas</code> or <code>*.pp</code> : Programová jednotka (Unit) v Pascale (obvykle zodpovedá nejakému formuláru uloženému v súbore <code>*.lfm</code>)<br />
; <code>*.lrs</code> : Lazarus Resource file (toto je generovaný súbor, nemýľte si ho s resource súbormi Windows). <br />
: Súbor sa dá vytvoriť pomocou pomôcky lazres (v adresári Lazarus/Tools) príkazom: lazres myfile.lrs myfile.lfm<br />
; <code>*.ppu</code> : Compiled unit (skompilovaná unita)<br />
; <code>*.lpk</code> : Lazarus package information file - informácie o balíčku (uložený v XML; obsahuje nastavenia špecifické pre konkrétny balíček)<br />
<br />
=== Opravil som chybu/vylepšil som Lazarus. Ako dostanem moje zmeny do oficiálnych zdrojových kódov? ===<br />
Vytvorte záplatu a pošlite ju vývojarom. Viac detailov v [[Creating A Patch]].<br />
<br />
=== Pokiaľ deklarujem textový súbor ako ''var mytext: text;'', dostanem chybu "Unit1.pas(32,15) Error: Error in type definition". Ako to opraviť? ===<br />
Trieda TControl má vlastnosť [[doc:lcl/controls/tcontrol.text.html|Text]]. V metóde formulára sa teda nepoužije typ [[doc:rtl/system/text.html|Text]] zo systémovej unity. Môžete použiť typ [[doc:rtl/system/textfile.html|TextFile]], ktorý je len aliasom typu Text, alebo môžete pridať meno unitu do definície typu.<br />
var<br />
MyTextFile: TextFile;<br />
MyText: System.Text;<br />
Rovnaký problém s duplicitnými menami nastáva pri priraďovaní (assign) a zatváraní (close) textových súborov. TForm má vlastnosť ''assign'' a metódu [[doc:lcl/forms/tcustomform.close.html|Close]]. Môžete použiť [[doc:rtl/objpas/assignfile.html|AssignFile]] a [[doc:rtl/objpas/closefile.html|CloseFile]] alebo pridať meno unity ''System''.<br />
<br />
=== Dostávam chybu pri tlačení pomocou Printer.BeginDoc ===<br />
Unita Printers musí byť pridaná v uses sekcii.<br />
<br />
Balíček Printer4Lazarus musí byť pridaný do závislostí projektu. Kliknite na: Project | Project Inspektor | Add | New Requirement | Package Name<br />
<br />
Pokiaľ balíček Printer4Lazarus nie je v zozname, musí sa doinštalovať. Balíček je súšasťou inštalácie Lazara a nájdete ho v adresári [adresár kde je lazarus nainštalovaný]\components\printers.<br />
<br />
Tento istý postup funguje aj v prípade chyby, ktorú môžete dostať pri použití Printer.Printers<br />
<br />
=== Prečo je TForm.ClientWidth/ClientHeight rovnaká ako TForm.Width/Height? ===<br />
TForm.Width/Height neobsahujú okraj formulára (narozdiel od napr. Delphi), pretože je nemožné zístiť jeho veľkosť na všetkých platformách.<br />
<br />
V prípade, že sa nájde spolahlivý spôsob, ako zistiť velkosť okraju, toto bude v budúcnosti opravené.<br />
<br />
=== Ako sa môžem stať vývojarom Lazara a získať prístup k menežmentu SVN a bug-trackeru? ===<br />
Tak po prvé: Najprv sa o Lazarovi musíte veľa naučiť a ukázať vaše vedomosti a zručnosti. Začnite čítanim [[Lazarus_Documentation|wiki článkov]], prečítajte si zdrojový kód Lazara, opravte niekoľko chýb a keď si myslíte, že ste pripravení, kontaktujte vývojarov na [http://www.mail-archive.com/lazarus@miraclec.com mailing liste].<br />
<br />
== Kde je definované ... ? ==<br />
<br />
=== Virtual key constants ===<br />
Virtual key constants sú definované v LCLType. Pridajte LCLtype do <b>uses</b> sekcie.<br />
<br />
== Používame IDE ==<br />
<br />
=== Ako sa používa doplňovanie identifikátorov? ===<br />
Doplňovanie identifikátorov vyvoláte stlačením kláves [ctrl][medzera].<br />
V menu ''Environment | Editor Options | Code Tools | Automatic Features'' môžete nastaviť, ako dlho má trvať, kým sa doplňovanie identifikátorov objaví automaticky.<br />
<br />
== Linux ==<br />
<br />
=== Ako môžem pod Linuxom debugovať bez použitia IDE? ===<br />
<br />
Po prvé, potrebujete debugger. gdb je štandardným debuggerom pod linuxom a existuje k nemu veľa grafických frontendov. Najobvyklejším je ddd, ktorý je aj súčasťou väčšiny distribúcii. Na skompilovanie Lazara a LCL s debug-information a jeho spustenie v debug móde použite nasledovné príkazy:<br />
<br />
$ make clean; make OPT=-dDEBUG<br />
$ ddd lazarus<br />
<br />
Avšak pozor, ddd nie je až také konfortné, ako debugger vstavaný do Lazara. Najmä v prípade, keď si chcete nechat zobraziť obsah premennej, nezabúdajte, že ddd/gdb je narozdiel od Pascalu case-sensitívne (rozlišuje veľké a malé písmená). Z tohoto dôvodu, názvy všetkých premenných je nutné zadávať veľkými písmenami. Viac informácií sa dočítate v manuáloch k FPC.<br />
<br />
=== Už viem debugovať, ale ddd nevie nájsť moje zdrojáky alebo vypisuje, že neobsahujú žiaden kód. Prečo? ===<br />
<br />
Toto je problém spôsobený zle nastavenými cestami. Vyhnete sa mu nasledovným spôsobom<br />
<br />
* V ddd menu použite príkaz "Change directory" (Zmeň adresár) a nastavte adresár, kde sa nachádzajú vaše zdrojové kódy. Nevýhodou tohoto riešenia je, že teraz nemôžete debugovať zdrojové kódy programu, s ktorým ste štartovali (napr. lazarus). Preto je niekedy nevyhnutné meniť adresár viac krát.<br />
* V ddd choďte do [Edit] [gdb-settings] a nastavte správne search-path (cesta vyhľadávania)<br />
* Vytvorte súbor $(HOME)/.gdbinit s obsahom:<br />
directory /your/path/to/lazarus<br />
directory /your/path/to/lazarus/lcl<br />
directory /your/path/to/lazarus/lcl/include<br />
<br />
=== Pri linkovaní dostávam chybu, že /usr/bin/ld nemôže nájsť -l<knižnica> ===<br />
<br />
; '''Distribúcie založené na balíčkoch''' : Je nutné nainštalovať balíčky, ktoré obsahujú súbory lib<knižnica>.so alebo lib<knižnica>.a. Dynamické knižnice pod linuxom majú príponu .so, statické príponu .a. V niektorých linuxových distribúciách po nainštalovaní balíčku obsahujúcom knižnicu, je nutné tiež nainštalovať vývojársky balíček (obvykle má názov <baliček>-dev).<br />
: Niektoré distribúcie majú príkazy, ktoré umožni nájsť balíček, ktorý obsahuje nejaký súbor:<br />
: '''Mandriva'''<br />
<br />
[]$ urpmf lib<knižnica>.so<br />
<br />
:vypíše zoznam všetkých balíčkov obsahujúcich súbor lib<knižnica>.so, nainštalovať musíte ten končiaci na -devel<br />
<br />
: '''Debian'''<br />
<br />
[]$ apt-file search lib<knižnica>.so<br />
<br />
:vypíše zoznam všetkých balíčkov obsahujúcich súbor lib<knižnica>.so, nainštalovať musíte ten končiaci na -dev<br />
<br />
<br />
<br />
; '''Distribúcie založené na zdrojových kódoch alebo manuálne kompilované''' : Ubezpečte sa, že súbor lib<knižnica>.a sa nachádza na ceste (systémová premenná PATH), a že je správnej verzie. Aby linker našiel správnu dynamickú knižnicu, vytvorte symlink nazvaný lib<knižnica>.so, do lib<knižnica><verzia>-x,y.so ak je to potrebné.<br />
<br />
; '''FreeBSD''' : Rovnaký postup ako vyššie, a okrem toho skontrolujte, či máte -Fl/usr/local/lib v súbore fpc.cfg. Nezabúdajte, že balíčky pre GTK 1.2 sa vo FreeBSD nazývajú "gtk12".<br />
<br />
[]# cd /usr/local/lib && ln -s libglib-12.so libglib12.so<br />
[]# cd /usr/X11R6/lib && ln -s libgtk-12.so libgtk12.so<br />
[]# cd /usr/X11R6/lib && ln -s libgdk-12.so libgdk12.so<br />
<br />
<br />
; '''NetBSD''' : Rovnaký postup ako pri distribúciach založených na zdrojových kódoch, a okrem toho skontrolujte, či máte Fl/usr/local/lib v súbore fpc.cfg.<br />
<br />
=== Ako skonvertujem projekt z Kylix 2 do Lazara? ===<br />
Prakicky veľmi podobne, ako pri konverzii z Kylixu do Delphi/VCL.<br />
<br />
LCL (Lazarus Component Library) sa snaží byť čo najviac kompatibilná s VCL (Visual Component Library) z Delphi. Kylix CLX sa snaží byť kompatibilný s knižnicami QT.<br />
<br />
Základné tipy:<br />
* Premenujte všetky použité CLX unity (napr. QForms, QControls, QGraphics, ...), do ich VCL podoby: Forms, Controls, Graphics, ...<br />
* Pridajte LResources do každej uses sekcie zdrojáku každého formulára<br />
* Premenujte alebo skopírujte všetky súbory .xfm na .lfm.<br />
* Premenujte alebo skopírujte všetky súbory .dpr na .lpr.<br />
* Pridajte "Interfaces" do uses sekcie .lpr súboru.<br />
* Odstráňte direktívu {$R *.res}<br />
* Odstráňte direktívu {$R *.xfm}<br />
* Pridajte direktívu {$mode objfpc}{$H+} alebo {$mode delphi}{$H+} do všetkých .pas a .lpr súborov<br />
* Pridajte inicializačnú sekciu na koniec každého zdroj. kódu formulára a pridajte include direktívu pre .lrs súbor:<br />
initialization<br />
{$I unit1.lrs}<br />
:.lrs súbor vytvoríte napríklad pomôckou lazres v adresári lazares/tools/lazres.<br />
:Napr: ./lazres unit1.lrs unit1.lfm<br />
* Opravte rozdiely. LCL zatiaľ nepodporuje všetky vlastnosti VCL, a CLX nie je s VCL úplne kompatibilná.<br />
* V záujme čo najväčšej platformovej nezávislosti, odstránte závislosti na unite libc a nahraďte ich FPC unitami ako baseunix/unix. Toto je nevyhnutné, pokiaľ chcete kompilovať pre iné platformy ako linux/x86.<br />
<br />
=== When compiling lazarus the compiler can not find a unit. e.g.: gtkint.pp(17,16) Fatal: Can't find unit GLIB ===<br />
<br />
1. Check a clean rebuild: do a 'make clean all'<br />
<br />
2. Check if the compiler has the correct version (2.0.0 or higher)<br />
<br />
3. Check if the compiler is using the right config file. The normal installation creates /etc/fpc.cfg. But fpc also searches for ~/.ppc386.cfg, ~/.fpc.cfg, /etc/ppc386.cfg and it uses only the first it finds.<br />
<br />
:'''Hint:''' You can see which config file is used with 'ppc386 -vt bogus'<br />
:Remove any ppc386.cfg as it is really obsolete.<br />
<br />
4. Check if the config file (/etc/fpc.cfg) contains the right paths to your fpc libs. There must be three lines like this:<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*<br />
:The first part of these paths (/usr/lib/fpc) depends on your system. On some systems this can be for example /usr/local/lib/fpc/... .<br />
:'''Hint:''' You can see your searchpaths with 'ppc386 -vt bogus'<br />
<br />
5. Check that the config file (/etc/fpc.cfg) does not contain search paths to the lcl source files (.pp, .pas):<br />
forbidden: -Fu(lazarus_source_directory)/lcl<br />
forbidden: -Fu(lazarus_source_directory)/lcl/interfaces/gtk<br />
:If you want to add the lcl for all your fpc projects, make sure that the two paths look like the following and are placed after the above fpc lib paths:<br />
-Fu(lazarus_source_directory)/lcl/units/$fpctarget<br />
-Fu(lazarus_source_directory)/lcl/units/$fpctarget/gtk<br />
<br />
6. Check if the missing unit (glib.ppu) exists in your fpc lib directory. For example the gtk.ppu can be found in /usr/lib/fpc/$version/units/i386-linux/gtk/. If it does not exists, the fpc lib is corrupt and should be reinstalled.<br />
<br />
7. Check if the sources are in a NFS mounted directory. In some cases the NFS updates created files incorrectly. Please, try to move the sources into a non NFS directory and compile there.<br />
<br />
=== I have installed the binary version, but when compiling a simple project, lazarus gives: Fatal: Can't find unit CONTROLS ===<br />
<br />
Probably you are using a newer fpc package, than that used for building the<br />
lazarus binaries. The best solution is to download the sources and compile<br />
lazarus manually. You can download the source snapshot or get the source<br />
via svn:<br />
<br />
$ bash<br />
$ svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
$ cd lazarus<br />
$ make clean all<br />
<br />
Make sure that lazarus get the new source directory:<br />
Environment->General Options->Files->Lazarus Directory Top<br />
<br />
===Lazarus compiles, but linking fails with: libgdk-pixbuf not found===<br />
Either install the gdk-pixbuf library for gtk1.x or disable the use:<br />
<br />
Where to find the gdk-pixbuf library:<br />
<br />
RPMs:<br />
http://rpmfind.net/linux/rpm2html/search.php?query=gdk-pixbuf&submit=Search+...&system=&arch=<br />
<br />
Debian packages:<br />
libgdk-pixbuf-dev<br />
<br />
Sources:<br />
ftp://ftp.gnome.org/pub/gnome/unstable/sources/gdk-pixbuf/<br />
<br />
<br />
How to disable the use in lazarus: In Tools->Configure "Build Lazarus" add the option<br />
'-dNoGdkPixBufLib'<br />
or at command line:<br />
"make clean all OPT=-dNoGdkPixBufLib".<br />
<br />
===I have SuSE and I get /usr/bin/ld: cannot find -lgtk Error: Error while linking===<br />
SuSE installs the gtk devel libs under /opt/gnome/lib (or /opt/gnome/lib64 for 64 bits), which is not in<br />
the standard lib path. Simply add it to your /etc/fpc.cfg.<br />
(-Fl/opt/gnome/lib).<br />
<br />
===Lazarus crashes with runtime error 211 after I installed a component===<br />
After I installed a component, Lazarus crashes with the following message:<br />
Threading has been used before cthreads was initialized.<br />
Make cthreads one of the first units in your uses clause.<br />
Runtime error 211 at $0066E188<br />
How can I fix this?<br />
<br />
Your freshly installed component is using threads. Fpc on *nix doesn't automatically include threading support, but it must be intialized. This initialization is done in the cthreads unit. Every application using the component needs to add this unit to the uses clause of the main program. Lazarus itself is no exception. This can be done in two ways:<br />
<br />
1) Change the source of ide/lazarus.pp: add the cthreads as first unit to the uses clause, so that is looks like this:<br />
uses<br />
//cmem,<br />
cthreads, <br />
{$IFDEF IDE_MEM_CHECK}<br />
...<br />
and rebuild lazarus.<br />
<br />
2) In order to avoid modifying lazarus.pp file, a fpc compiler option could be used. Once package that uses threads has been compiled, open menu Tools->Configure "build Lazarus". Configure "build Lazarus" dialog will be shown, in field "Options:" type -Facthreads and then press "OK" button. The next step is to install the package. Lazarus will be built with option -Facthreads which means that it will treat main program as if unit cthreads where first in uses clause. <br />
<br />
''Hint:'' Maybe your old (non-crashing) lazarus executable is stored as lazarus.old in the same directory as the crashing lazarus executable.<br />
<br />
===When I run a program with threads I get runtime error 232===<br />
The complete error message is:<br />
This binary has no thread support compiled in.<br />
Recompile the application with a thread-driver in the program uses<br />
clause before other units using thread.<br />
Runtime error 232<br />
'''Solution''': Add cthreads as first unit to the uses clause of your main program, usually the .lpr-file.<br />
<br />
===I have Ubuntu Breezy and my fonts in Lazarus IDE look too big===<br />
If Lazarus is compiled with Gtk1.2, the settings in Gnome Preferences/Font don't have any effect as<br />
they are related to Gtk2.<br />
You could try this solution:<br />
Create a file named .gtkrc.mine in your home directory (if it's not already there) and add<br />
these lines to it:<br />
<br />
<pre><br />
style "default-text" {<br />
fontset = "-*-arial-medium-r-normal--*-100-*-*-*-*-iso8859-1,\<br />
-*-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"<br />
}<br />
<br />
class "GtkWidget" style "default-text"<br />
</pre><br />
<br />
===How can I compile a program for Gtk2?===<br />
<br />
At the moment, the Gtk2 compiled IDE is a little unstable, but you can compile software for Gtk2 using the Gtk1 IDE.<br />
<br />
To start with recompile LCL for Gtk2. Go to the menu "Tools"->"Configure Build Lazarus" and set LCL to clean+build and everything else to none.<br />
<br />
Now click Ok and go to the menu "Tools"->"Build Lazarus"<br />
<br />
Now you can compile your software with Gtk2 going on the Compiler options and changing the widgetset to Gtk2.<br />
<br />
== Windows ==<br />
<br />
=== When I cycle the compiler, I get:The name specified is not recognized as an internal or external command, operable program or batch file.>& was unexpected at this time. ===<br />
<br />
In the compiler dir exists an OS2 scriptfile named make.cmd. NT sees this also<br />
as a script file, so remove it since on NT we don't need it.<br />
<br />
=== When I cycle the compiler, I get: make[3]: ./ppc1.exe: Command not found ===<br />
<br />
I don't know why but somehow make has lost its path. Try to cycle with a<br />
basedir set like: make cycle BASEDIR=your_fpc_source_dir_herecompiler<br />
<br />
=== When I try to make Lazarus I get:===<br />
====make.exe: * * * interfaces: No such file or directory (ENOENT). Stop.make.exe: * * * [interfaces_all] Error 2 ====<br />
You need to upgrade your make.<br />
<br />
====makefile:27: *** You need the GNU utils package to use this Makefile. Stop.====<br />
Make sure you didn't install FPC in a path with spaces in the name. The<br />
Makefile doesn't support it.<br />
<br />
<br />
<br />
===Ako nastavím aplikáciu aby vyzerala ako XP ?===<br />
Ak máme program myprogram.exe vytvoríme súbor nazvaný myprogram.exe.manifest a skopírujeme doň nasledujúci text:<br />
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><br />
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><br />
<assemblyIdentity processorArchitecture="*" version="1.0.0.0" type="win32" name="myprogram"/><br />
<description>programom</description><br />
<dependency><br />
<dependentAssembly><br />
<assemblyIdentity<br />
type="win32"<br />
name="Microsoft.Windows.Common-Controls"<br />
version="6.0.0.0"<br />
publicKeyToken="6595b64144ccf1df"<br />
language="*"<br />
processorArchitecture="*" /><br />
</dependentAssembly><br />
</dependency><br />
</assembly><br />
Voila! a máme XP vzhľad.<br />
<br />
===Pokiaľ spustím Windows aplikáciu vytvorenú v Lazarovi, zobrazí sa v DOSovom okne===<br />
Špecifikujte parameter -WG (Windows GUI) v príkazovom riadku compilera alebo v Lazarovi skontrolujte, či je zaškrtnuté políčko Windows GUI v Project menu | Compiler Options | Linking | target OS Specific options.<br />
<br />
== Licencie ==<br />
<br />
=== Možem v Lazarovi vytvárať komerčné aplikácie? ===<br />
Áno, LCL je chránená licenciou LGPL s výnimkou, ktorá vám imožňuje ju staticky linkovať bez nutnosti zverejnovať zdrojový kód vašej aplikácie. Zmeny a vylepšenia v LCL musia byť distribuované so zdrojovým kódom. Lazarus a Lazarus IDE sú chránené licenciou GPL.<br />
<br />
=== Why are some components restricted from usage in commercial application ? ===<br />
<br />
Lazarus comes with additional components, that were developed by third parties. Those are under various other Licenses. If you wish to use them you need to see the License within the source files of those packages.<br />
Most of those 3rd party components are in the directory "components".<br />
<br />
=== How do I know if a Component is part of the LCL ? ===<br />
<br />
All LCL units are in the directory "lcl". A List of units belonging to the LCL can be found here http://lazarus-ccr.sourceforge.net/docs/lcl/ . If you code uses units not listed on this page, you may have used a component that is not part of the LCL.<br />
<br />
=== Môžem vytvárať komerčné rozšírenia (plug-in) pre Lazarus? ===<br />
Áno, časť IDE s názvom IDEIntf je chránená licenciou LGPL s rovnakou výnimkou, čiže nie ste nútený licencovať váš plug-in alebo vývojársky balíček pod GPL. Môžete si tiež vyberať plug-iny pod akoukolvek licenciou, nie-GPL plug-iny sú teda povolené. Pozor ale, nie je dovolené distribuovať predkompilovaného Lazara staticky zlinkovaného s týmito nie-GPL plug-inmi.<br />
<br />
== Contributors and Comments ==<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusFaq version].<br />
<br />
<br />
{{AutoCategory}}<br />
[[Category:Lazarus/sk]]<br />
[[Category:FAQs/sk]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Faq/sk&diff=97770Lazarus Faq/sk2015-11-10T10:10:33Z<p>Trsek: /* Pokiaľ deklarujem textový súbor ako var mytext: text;, dostanem chybu "Unit1.pas(32,15) Error: Error in type definition". Ako to opraviť? */</p>
<hr />
<div>{{Lazarus Faq}}<br />
<br />
Tento FAQ bol zkopírovaný z FAQ na adrese www.freepascal.org, je jednoduchšie sa oň starať a rozširovať ho, keď je vo wiki formáte.<br />
<br />
== Všeobecné otázky ==<br />
<br />
=== Kde môžem nájsť viacero FAQ? ===<br />
<br />
Pozrite sa na [http://www.lazarus.freepascal.org oficiálnu stránku]. Nájdete tam ďalší FAQ.<br />
<br />
===Prečo sú generované binárky také veľké?===<br />
Binárky sú veľké pretože obsahujú množstvo ladiacich informácií potrebných pre gdb (GNu Debugger).<br />
<br />
Prekladač má prepínač na vypnutie lediacich informácií v binárnom súbore (-Xs), ale vďaka chybe v prekladači (verzia 2.0.2 a skoršie), tento nefunguje správne. Chyba bola opravená vo vývojovej verzii prekladača.<br />
<br />
Na odstránenie ladiacich symbolov zo spustiteľného súboru môžete použiť program zvaný "strip", nájdete ho v inštalačnom adresári Lazaraus lazarus\pp\bin\i386-win32\.<br />
<br />
Jednoducho v príkazovom riadku napíšte príkaz "strip --strip-all <váš exe súbor>".<br />
<br />
Ak chcete mať svoj program ešte menší, môžete vyskúšať použiť program [http://upx.sourceforge.net/ UPX]. UPX je veľmi dobrý kompresor pre vykonateľné súbory. Vďaka tomu, že binárku komprimuje priamo ("na mieste"), nemá žiadne problémy s prílišným vyťažením pamäte. Okrem toho má veľmi rýchlo dekompresiu (~10 MB/s na Pentiu 133).<br />
<br />
UPX spustíte zadaním "upx <váš exe súbor>" v príkazovom riadku.<br />
<br />
Po použití programu strip aj upx sa jednoduchá GUI aplikácia v Lazare zmenší na:<br />
* ~ 700kb na Linuxe<br />
* ~ 420kb na Windows<br />
<br />
Detailnejšiu odpoveď na túto otázku môžete [[fpc:Size Matters|nájsť tu]].<br />
<div class="floatright">[[Image:Lazarus_vs_cpp.png]]</div><br />
Je dôležté si uvedomiť, že už program hello world v Lazarus zahŕňa veľké množstvo vlastností:<br />
<br />
* Knižnicu obsluhy XML<br />
* Knižnicu oblsuhy obrázkov pre súbory png, xpm, bmp a ico<br />
* Skoro všetky nástroje z Lazarus Component Library<br />
* Celú Free Pascal Runtime Library<br />
<br />
Takže je veľmi veľký, ale už obsahuje skoro všetko, čo skutočná netriviálna aplikácia bude potrebovať.<br />
<br />
Veľkosť spustiteľných súborov z Lazarus ja na začiatku veľká, ale narastá veľmi pomaly, vďaka spôsobu akým prekladač Free Pascal a fomruláre Lazarus pracuje. Projekt C++ (len príklad, ale aplikovateľný aj na iné jazyky/nástroje) má hello world veľmi malý, ale rýchlo exponencionálne narastá, keď potrebujete vlastnosti pre napísanie netriviálnch aplikácií.<br />
<br />
<br clear=all><br />
=== Prečo je linkovanie vo Windows také pomalé? ===<br />
<br />
Všeobecne povedané, preklad vo Windows zaberie viac času ako na iných platformých, pretože GNU Linker používaný Free Pascalom pracuje na tejto platforme pomaly. Tento problém ovplyvňuje len Windows a len na relatívne starých počítačoch (menej ako 1Ghz) a počítačoch s malou (128MB a menej).<br />
<br />
Rovnako, ak smartlinkujete LCL, bude linkovanie ešte pomalšie. Štúdiu o týchto problémoch môžete nájsť tu: [[File size and smartlinking]]<br />
<br />
Tento problém sa týka iba Windows, a iba na relatívne starších počítačoch (menej ako 1Ghz) a a počítačoch s málo RAM RAM (128MB alebo menej).<br />
<br />
Bol vyvinutý interný linker a je pripravený, ale bude dostupný len po uvoľnení Free Pascal 2.(samozrejme je dostupný cez subversion). Dramaticky skracuje linkovanie.<br />
<br />
:'''Poznámka''': V 2.1.1 Windows používa interný pre win32/64/ce, ktorý proces trochu zrýchľuje. Rekompilácia Lazarus potom zaberie okolo 280MB.<br />
<br />
=== Potrebujem ppc386.cfg alebo fpc.cfg? ===<br />
<br />
Potrebujete iba fpc.cfg. Toto je ten správny spôsob, ako prekladaču oznámiť, kde má hľadať knižnice.<br />
<br />
=== Ako skompilujem lazarus? ===<br />
<br />
Urobte niečo ako toto:<br />
$ cd lazarus<br />
$ make clean all<br />
<br />
=== Ako vytvorím iné projekty založené na LCL? ===<br />
<br />
Pokiaľ nemôžete použiť IDE pre zostavenie vašej aplikácie, pridajte na koniec súboru fpc.cfg nasledujúce riadky: <br />
<br />
# Pridá knižnice<br />
-Fu/your.lazarus.root/lcl/units<br />
-Fu/your.lazarus.root/lcl/units/{váš_toolkit}<br />
-Fu/your.lazarus.root/components/units<br />
-Fu/your.lazarus.root/components/units/{váš_toolkit}<br />
<br />
:Kde {váš_toolkit} môže byť GTK, Gnome alebo Win32 a potom spustite:<br />
::ppc386 vasprojekt.pp<br />
<br />
=== Akú verziu FPC potrebujem? ===<br />
Používajte verzi 2.2.2 pre všetky operačné systémy.<br />
<br />
=== Nemôžem skompilovať Lazarus ===<br />
<br />
# Overte si, či máte prekladač správnej verzie<br />
# Overte si, či sú (fpc) knižnice taktiež z tej istej verzie.<br />
# Overte si, či máte fpc.cfg a nie starý ppc386.cfg<br />
# Taktiež si pozrite FAQ vzťahujúce sa k vášmu OS<br />
<br />
=== Keď sa pokúšam kompilovať projekt, dostanem chybovú hlášku ===<br />
==== "Cannot find Unit interfaces". Ako to vyriešiť?====<br />
Tento skompilovaný unit by sa mal nachádzať v {LazarusDir}/lcl/units/{TargetCPU}-{TargetOS}/{LCLWidgetSet}/interfaces.ppu. <br />
<br />
Uistite sa, že je iba jeden. Ak máte niekoľko verzií interfaces.ppu, tak pravdepodobne máte chybu v konfigurácii (napríklad ste pridali lcl adresár do vašej cesty). Zmažte všetky interfaces.ppu okrem toho vo vyššie definovanom adresári.<br />
<br />
Ak používate iný widgetset, než ten, pre aký ste skompilovali Lazarus, musíte taktiež pre tento widgetset skompilovať aj LCL. <br />
<br />
Ak ste sa dostali sem, ale stále sa zjavuje chybová hláška, tak používate iný prekladač / rtl pre kompilovanie vášho projektu ako ten, ktorý bol použitý pre skompilovanie Lazarus IDE. Môžete urobiť nasledovné:<br />
* urobiť rebuild LCL (alebo Lazara kompletne) s prekladačom, ktorý zvolíte v Environmnent Options. Urobíte to v menu Tools -> Build Lazarus. Avšak predtým si prezrite a prípadne upravte nastavenia pre build v Tools -> Configure Build Lazarus.<br />
* Zmeňte prekladač v Environment Options na ten, ktorý ste použili pre skompilovanie Lazara. Pozorne si prezrite taktiež Environment Options a presvedčte sa, že máte nastavenú správnu cestu pre Lazarus Directory (inštalačný adresár Lazarus) a FPC sources directory (zdrojové adresáre pre fpc unity). Overte si, že v konfiguračnom súbore fpc.cfg máte iba jednu verziu prekladača - na Linuxe a iných unixových systémoch by sa tento súbor mal nachádzať v adresári /etc a na Windows v rovnakom adresári ako fpc prekladač. Kópie starých verzií súboru taktiež ostávajú v systéme, keď updatujete váš prekladač na novšiu verziu a môžu spôsobovať problémy, môžu sa nachádzať vo vašom domovskom adresári, alebo v tom istom adresári, v ktorom ste budovali váš nový prekladač. ZMAŽTE ICH!!<br />
* Môžete tiež skúsiť zmeniť widgeset pre aktuálny projekt. Napr. ukážkový project "objectinspector", ktorý je súčasťou inštalácie Lazara je nastavený na gtk. Kompilovanie tohoto projektu určite skončí v chybe "Can't find unit interfaces" na platforme Windows. Zmenou widgesetu na default(Win32) v Project | Compiler Options ... | LCL Widget Type (various) môže odstrániť tento problém.<br />
<br />
=== Keď sa pokúšam skompilovať Delphi projekt v Lazare, dostanem chybovú hlášku ===<br />
==== at the line :{$R *.DFM} Ako vyriešim tento problém? ====<br />
<br />
Lazarus (alebo lepšie Linux) nepozná resourcy, takže ich nemôžete používať takým spôsobom ako robí Delphi/win32. Lazarus však používa tomuto vcelku kompatibilnú metódu. Pokiaľ sa budete riadiť nasledovným, tak stále môžete používať vaše Delphi layouty (.dfm súbory):<br />
<br />
*Potrebujete textovú verziu .dfm súboru. Delphi5 a vyššie to majú predvolené. Ak máte staršie súbory:: skratkou ALT-F12 si prezriete layout ako text a potom cut&paste. Keď už máte textový .dfm file, proste ho skopírujte do .lfm súboru.<br />
*S pomocou lazres (v lazarus/tools) vytvorte súbor. <br />
lazres vas_formular.lrs vas_formular.lfm<br />
*Pridajte nasledovnú inicializačnú sekciu<br />
<br />
initialization<br />
{$I yourform.lrs}<br />
<br />
Prosím, pamätajte na to, že nie všetky vlastnosti v dfm sú podporované Lazarom, takže vám IDE môže spadnúť.<br />
<br />
==== 'Identifier not found LazarusResources'. ====<br />
<br />
Pri vytváraní formulára Lazarus automaticky pridáva niekoľko extra unitov do uses sekcie vášho formulárového unitu. Počas konverzie z delphi unitu do lazarovho unitu sa toto nedeje. Čiže LResources potrebujete do uses sekcie vášho formulárového unitu pridať ručne.<br />
<br />
=== Pri prístupe k udalostiam objektov objektov, napríklad udalosti onclick pre tlačidlo, dostanem nasledujúcu chybu: ERROR unit not found: stdCtrls ===<br />
<br />
Uistite sa (v Project -> Project Inspector), že váš projekt závisí na balíčkoch LCL a že ste nainštalovali zdrojové súbory FPC.<br />
<br />
Lazarus pozostáva z IDE a z knižnice vizuálnych komponentov LCL.<br />
Všetko ostatné, ako IO, databázy, FCL a RTL sú poskytované FPC.<br />
IDE potrebuje poznať cesty ku všetkým týmto zdrojom.<br />
<br />
Cestu k FPC zdrojom môžete nastaviť cez:<br />
Tools -> Options -> Files -> FPC source path<br />
<br />
===Ako vložím malý súbor do spustitelného súboru? Ako vložím resource?===<br />
<br />
/your/lazarus/path/tools/lazres sound.lrs sound1.wav sound2.wav ...<br />
vytvorí súbor sound.lrs zo súborov sound1.wav a sound2.wav.<br />
<br />
Potom ho môžete includnuť *za* lrs súborom formulára:<br />
<br />
...<br />
initialization<br />
{$i unit1.lrs} // hlavný resource súbor (vždy prvý !)<br />
{$i sound.lrs} // vlastný resource súbor<br />
<br />
end.<br />
V programe potom môžete použiť napr.:<br />
Sound1AsString:=LazarusResources.Find('sound1').Value;<br />
<br />
=== Ako sa dostanem k debug výstupu? ===<br />
<br />
V unite LCLProc sa nachádzajú dve procedúry pre písane do debug výstupu: <br />
* '''DebugLn:''' funguje rovnako ako WriteLn, ale písať sa do nej dajú len textové reťazce (string).<br />
* '''DbgOut:''' funguje rovnako ako Write, ale písať sa do nej dajú len textové reťazce (string).<br />
<br />
Za normálnych okolností sa debug výstup píše do stdout. Pokiaľ stdout nie je otvorený (typ aplikácie je {$AppType Gui} alebo je skompilovaná pod Windows s prepínačom -WG), výstup sa nepíše vôbec.<br />
<br />
Debug výstup sa môže tiež zapisovať do súboru. Inicializačný kód v unite LCLProc skontroluje, či sa v príkazovom riadku nenachádza parameter '--debug-log=<file>'. Pokiaľ sa nachádza, všetok debug výstup sa píše do súboru <file>.<br />
<br />
Pokiaľ sa v príkazovom riadku nenájde parameter '--debug-log', LCLProc skontroluje systémovú premennú xxx_debuglog (xxx je názov programu bez prípony, čiže napr. pre Lazarus hľadá premennú lazarus_debuglog). Pokiaľ takáto systémová premenná existuje, debug výstup sa zapíše do nastaveného súboru. Napr. nastavením:<br />
<br />
set lazarus_debuglog=c:\lazarus\debug.txt<br />
<br />
sa bude debug výstup programu Lazarus zapisovať do súboru c:\lazarus\debug.txt.<br />
<br />
Keďže táto funkcionalita je implementovaná v unite LCLProc, je prístupná pre každú aplikáciu, ktorá túto unitu používa.<br />
<br />
;Debugovanie Lazarusu : Najmä pre používateľov Windows: Pokiaľ chcete, aby Lazarus vypisoval do konzoly, pridajte {$APPTYPE console} do súboru lazarus.pp a prekompilujte Lazarus.<br />
<br />
=== Aký je význam prípon rôznych súborov, ktoré Lazarus používa? ===<br />
<br />
[[Lazarus Tutorial/sk#The Lazarus files]] uvádza niektoré príklady. Tu je stručný zoznam:<br />
<br />
; <code>*.lpi</code> : Lazarus Project Information file - informácie o projekte (uložený v XML; obsahuje nastavania špecifické pre konkrétny projekt)<br />
; <code>*.lpr</code> : Lazarus Program file; obsahuje pascalovský zdrojový kód hlavného programu<br />
; <code>*.lfm</code> : Lazarus Form file; obsahuje vlastnosti všetkých objektov na formulári (uložený v Lazarovskom špeciálnom textovom formáte; akcie sú uložené v Pascale v príslušnom <code>.pas</code> súbore)<br />
; <code>*.pas</code> or <code>*.pp</code> : Programová jednotka (Unit) v Pascale (obvykle zodpovedá nejakému formuláru uloženému v súbore <code>*.lfm</code>)<br />
; <code>*.lrs</code> : Lazarus Resource file (toto je generovaný súbor, nemýľte si ho s resource súbormi Windows). <br />
: Súbor sa dá vytvoriť pomocou pomôcky lazres (v adresári Lazarus/Tools) príkazom: lazres myfile.lrs myfile.lfm<br />
; <code>*.ppu</code> : Compiled unit (skompilovaná unita)<br />
; <code>*.lpk</code> : Lazarus package information file - informácie o balíčku (uložený v XML; obsahuje nastavenia špecifické pre konkrétny balíček)<br />
<br />
=== Opravil som chybu/vylepšil som Lazarus. Ako dostanem moje zmeny do oficiálnych zdrojových kódov? ===<br />
Vytvorte záplatu a pošlite ju vývojarom. Viac detailov v [[Creating A Patch]].<br />
<br />
=== Pokiaľ deklarujem textový súbor ako ''var mytext: text;'', dostanem chybu "Unit1.pas(32,15) Error: Error in type definition". Ako to opraviť? ===<br />
Trieda TControl má vlastnosť [[doc:lcl/controls/tcontrol.text.html|Text]]. V metóde formulára sa teda nepoužije typ [[doc:rtl/system/text.html|Text]] zo systémovej unity. Môžete použiť typ [[doc:rtl/system/textfile.html|TextFile]], ktorý je len aliasom typu Text, alebo môžete pridať meno unitu do definície typu.<br />
var<br />
MyTextFile: TextFile;<br />
MyText: System.Text;<br />
Rovnaký problém s duplicitnými menami nastáva pri priraďovaní (assign) a zatváraní (close) textových súborov. TForm má vlastnosť ''assign'' a metódu [[doc:lcl/forms/tcustomform.close.html|Close]]. Môžete použiť [[doc:rtl/objpas/assignfile.html|AssignFile]] a [[doc:rtl/objpas/closefile.html|CloseFile]] alebo pridať meno unity ''System''.<br />
<br />
=== Dostávam chybu pri tlačení pomocou Printer.BeginDoc ===<br />
Unita Printers musí byť pridaná v uses sekcii.<br />
<br />
Balíček Printer4Lazarus musí byť pridaný do závislostí projektu. Kliknite na: Project | Project Inspektor | Add | New Requirement | Package Name<br />
<br />
Pokiaľ balíček Printer4Lazarus nie je v zozname, musí sa doinštalovať. Balíček je súšasťou inštalácie Lazara a nájdete ho v adresári [adresár kde je lazarus nainštalovaný]\components\printers.<br />
<br />
Tento istý postup funguje aj v prípade chyby, ktorú môžete dostať pri použití Printer.Printers<br />
<br />
=== Prečo je TForm.ClientWidth/ClientHeight rovnaká ako TForm.Width/Height? ===<br />
TForm.Width/Height neobsahujú okraj formulára (narozdiel od napr. Delphi), pretože je nemožné zístiť jeho veľkosť na všetkých platformách.<br />
<br />
V prípade, že sa nájde spolahlivý spôsob, ako zistiť velkosť okraju, toto bude v budúcnosti opravené.<br />
<br />
=== Ako sa môžem stať vývojarom Lazara a získať prístup k menežmentu SVN a bug-trackeru? ===<br />
Tak po prvé: Najprv sa o Lazarovi musíte veľa naučiť a ukázať vaše vedomosti a zručnosti. Začnite čítanim [[Lazarus_Documentation|wiki článkov]], prečítajte si zdrojový kód Lazara, opravte niekoľko chýb a keď si myslíte, že ste pripravení, kontaktujte vývojarov na [http://www.mail-archive.com/lazarus@miraclec.com mailing liste].<br />
<br />
== Kde je definované ... ? ==<br />
<br />
=== Virtual key constants ===<br />
Virtual key constants sú definované v LCLType. Pridajte LCLtype do <b>uses</b> sekcie.<br />
<br />
== Používame IDE ==<br />
<br />
=== Ako sa používa doplňovanie identifikátorov? ===<br />
Doplňovanie identifikátorov vyvoláte stlačením kláves [ctrl][medzera].<br />
V menu ''Environment | Editor Options | Code Tools | Automatic Features'' môžete nastaviť, ako dlho má trvať, kým sa doplňovanie identifikátorov objaví automaticky.<br />
<br />
== Linux ==<br />
<br />
=== Ako môžem pod Linuxom debugovať bez použitia IDE? ===<br />
<br />
Po prvé, potrebujete debugger. gdb je štandardným debuggerom pod linuxom a existuje k nemu veľa grafických frontendov. Najobvyklejším je ddd, ktorý je aj súčasťou väčšiny distribúcii. Na skompilovanie Lazara a LCL s debug-information a jeho spustenie v debug móde použite nasledovné príkazy:<br />
<br />
$ make clean; make OPT=-dDEBUG<br />
$ ddd lazarus<br />
<br />
Avšak pozor, ddd nie je až také konfortné, ako debugger vstavaný do Lazara. Najmä v prípade, keď si chcete nechat zobraziť obsah premennej, nezabúdajte, že ddd/gdb je narozdiel od Pascalu case-sensitívne (rozlišuje veľké a malé písmená). Z tohoto dôvodu, názvy všetkých premenných je nutné zadávať veľkými písmenami. Viac informácií sa dočítate v manuáloch k FPC.<br />
<br />
=== Už viem debugovať, ale ddd nevie nájsť moje zdrojáky alebo vypisuje, že neobsahujú žiaden kód. Prečo? ===<br />
<br />
Toto je problém spôsobený zle nastavenými cestami. Vyhnete sa mu nasledovným spôsobom<br />
<br />
* V ddd menu použite príkaz "Change directory" (Zmeň adresár) a nastavte adresár, kde sa nachádzajú vaše zdrojové kódy. Nevýhodou tohoto riešenia je, že teraz nemôžete debugovať zdrojové kódy programu, s ktorým ste štartovali (napr. lazarus). Preto je niekedy nevyhnutné meniť adresár viac krát.<br />
* V ddd choďte do [Edit] [gdb-settings] a nastavte správne search-path (cesta vyhľadávania)<br />
* Vytvorte súbor $(HOME)/.gdbinit s obsahom:<br />
directory /your/path/to/lazarus<br />
directory /your/path/to/lazarus/lcl<br />
directory /your/path/to/lazarus/lcl/include<br />
<br />
=== Pri linkovaní dostávam chybu, že /usr/bin/ld nemôže nájsť -l<knižnica> ===<br />
<br />
; '''Distribúcie založené na balíčkoch''' : Je nutné nainštalovať balíčky, ktoré obsahujú súbory lib<knižnica>.so alebo lib<knižnica>.a. Dynamické knižnice pod linuxom majú príponu .so, statické príponu .a. V niektorých linuxových distribúciách po nainštalovaní balížku obrahujúcom knižnicu, je nutné tiež nainštalovať vývojársky balíček (obvykle má názov <baliček>-dev).<br />
: Niektoré distribúcie majú príkazy, ktoré umožni nájsť balíček, ktorý obsahuje nejaký súbor:<br />
: '''Mandriva'''<br />
<br />
[]$ urpmf lib<knižnica>.so<br />
<br />
:vypíše zoznam všetkých balíčkov obsahujúcich súbor lib<knižnica>.so, nainštalovať musíte ten končiaci na -devel<br />
<br />
: '''Debian'''<br />
<br />
[]$ apt-file search lib<knižnica>.so<br />
<br />
:vypíše zoznam všetkých balíčkov obsahujúcich súbor lib<knižnica>.so, nainštalovať musíte ten končiaci na -dev<br />
<br />
<br />
<br />
; '''Distribúcie založené na zdrojových kódoch alebo manuálne kompilované''' : Ubezpečte sa, že súbor lib<knižnica>.a sa nachádza na ceste (systémová premenná PATH), a že je správnej verzie. Aby linker našiel správnu dynamickú knižnicu, vytvorte symlink nazvaný lib<knižnica>.so, do lib<knižnica><verzia>-x,y.so ak je to potrebné.<br />
<br />
; '''FreeBSD''' : Rovnaký postup ako vyššie, a okrem toho skontrolujte, či máte -Fl/usr/local/lib v súbore fpc.cfg. Nezabúdajte, že balíčky pre GTK 1.2 sa vo FreeBSD nazývajú "gtk12".<br />
<br />
[]# cd /usr/local/lib && ln -s libglib-12.so libglib12.so<br />
[]# cd /usr/X11R6/lib && ln -s libgtk-12.so libgtk12.so<br />
[]# cd /usr/X11R6/lib && ln -s libgdk-12.so libgdk12.so<br />
<br />
<br />
; '''NetBSD''' : Rovnaký postup ako pri distribúciach založených na zdrojových kódoch, a okrem toho skontrolujte, či máte Fl/usr/local/lib v súbore fpc.cfg.<br />
<br />
=== Ako skonvertujem projekt z Kylix 2 do Lazara? ===<br />
Prakicky veľmi podobne, ako pri konverzii z Kylixu do Delphi/VCL.<br />
<br />
LCL (Lazarus Component Library) sa snaží byť čo najviac kompatibilná s VCL (Visual Component Library) z Delphi. Kylix CLX sa snaží byť kompatibilný s knižnicami QT.<br />
<br />
Základné tipy:<br />
* Premenujte všetky použité CLX unity (napr. QForms, QControls, QGraphics, ...), do ich VCL podoby: Forms, Controls, Graphics, ...<br />
* Pridajte LResources do každej uses sekcie zdrojáku každého formulára<br />
* Premenujte alebo skopírujte všetky súbory .xfm na .lfm.<br />
* Premenujte alebo skopírujte všetky súbory .dpr na .lpr.<br />
* Pridajte "Interfaces" do uses sekcie .lpr súboru.<br />
* Odstráňte direktívu {$R *.res}<br />
* Odstráňte direktívu {$R *.xfm}<br />
* Pridajte direktívu {$mode objfpc}{$H+} alebo {$mode delphi}{$H+} do všetkých .pas a .lpr súborov<br />
* Pridajte inicializačnú sekciu na koniec každého zdroj. kódu formulára a pridajte include direktívu pre .lrs súbor:<br />
initialization<br />
{$I unit1.lrs}<br />
:.lrs súbor vytvoríte napríklad pomôckou lazres v adresári lazares/tools/lazres.<br />
:Napr: ./lazres unit1.lrs unit1.lfm<br />
* Opravte rozdiely. LCL zatiaľ nepodporuje všetky vlastnosti VCL, a CLX nie je s VCL úplne kompatibilná.<br />
* V záujme čo najväčšej platformovej nezávislosti, odstránte závislosti na unite libc a nahraďte ich FPC unitami ako baseunix/unix. Toto je nevyhnutné, pokiaľ chcete kompilovať pre iné platformy ako linux/x86.<br />
<br />
=== When compiling lazarus the compiler can not find a unit. e.g.: gtkint.pp(17,16) Fatal: Can't find unit GLIB ===<br />
<br />
1. Check a clean rebuild: do a 'make clean all'<br />
<br />
2. Check if the compiler has the correct version (2.0.0 or higher)<br />
<br />
3. Check if the compiler is using the right config file. The normal installation creates /etc/fpc.cfg. But fpc also searches for ~/.ppc386.cfg, ~/.fpc.cfg, /etc/ppc386.cfg and it uses only the first it finds.<br />
<br />
:'''Hint:''' You can see which config file is used with 'ppc386 -vt bogus'<br />
:Remove any ppc386.cfg as it is really obsolete.<br />
<br />
4. Check if the config file (/etc/fpc.cfg) contains the right paths to your fpc libs. There must be three lines like this:<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*<br />
:The first part of these paths (/usr/lib/fpc) depends on your system. On some systems this can be for example /usr/local/lib/fpc/... .<br />
:'''Hint:''' You can see your searchpaths with 'ppc386 -vt bogus'<br />
<br />
5. Check that the config file (/etc/fpc.cfg) does not contain search paths to the lcl source files (.pp, .pas):<br />
forbidden: -Fu(lazarus_source_directory)/lcl<br />
forbidden: -Fu(lazarus_source_directory)/lcl/interfaces/gtk<br />
:If you want to add the lcl for all your fpc projects, make sure that the two paths look like the following and are placed after the above fpc lib paths:<br />
-Fu(lazarus_source_directory)/lcl/units/$fpctarget<br />
-Fu(lazarus_source_directory)/lcl/units/$fpctarget/gtk<br />
<br />
6. Check if the missing unit (glib.ppu) exists in your fpc lib directory. For example the gtk.ppu can be found in /usr/lib/fpc/$version/units/i386-linux/gtk/. If it does not exists, the fpc lib is corrupt and should be reinstalled.<br />
<br />
7. Check if the sources are in a NFS mounted directory. In some cases the NFS updates created files incorrectly. Please, try to move the sources into a non NFS directory and compile there.<br />
<br />
=== I have installed the binary version, but when compiling a simple project, lazarus gives: Fatal: Can't find unit CONTROLS ===<br />
<br />
Probably you are using a newer fpc package, than that used for building the<br />
lazarus binaries. The best solution is to download the sources and compile<br />
lazarus manually. You can download the source snapshot or get the source<br />
via svn:<br />
<br />
$ bash<br />
$ svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
$ cd lazarus<br />
$ make clean all<br />
<br />
Make sure that lazarus get the new source directory:<br />
Environment->General Options->Files->Lazarus Directory Top<br />
<br />
===Lazarus compiles, but linking fails with: libgdk-pixbuf not found===<br />
Either install the gdk-pixbuf library for gtk1.x or disable the use:<br />
<br />
Where to find the gdk-pixbuf library:<br />
<br />
RPMs:<br />
http://rpmfind.net/linux/rpm2html/search.php?query=gdk-pixbuf&submit=Search+...&system=&arch=<br />
<br />
Debian packages:<br />
libgdk-pixbuf-dev<br />
<br />
Sources:<br />
ftp://ftp.gnome.org/pub/gnome/unstable/sources/gdk-pixbuf/<br />
<br />
<br />
How to disable the use in lazarus: In Tools->Configure "Build Lazarus" add the option<br />
'-dNoGdkPixBufLib'<br />
or at command line:<br />
"make clean all OPT=-dNoGdkPixBufLib".<br />
<br />
===I have SuSE and I get /usr/bin/ld: cannot find -lgtk Error: Error while linking===<br />
SuSE installs the gtk devel libs under /opt/gnome/lib (or /opt/gnome/lib64 for 64 bits), which is not in<br />
the standard lib path. Simply add it to your /etc/fpc.cfg.<br />
(-Fl/opt/gnome/lib).<br />
<br />
===Lazarus crashes with runtime error 211 after I installed a component===<br />
After I installed a component, Lazarus crashes with the following message:<br />
Threading has been used before cthreads was initialized.<br />
Make cthreads one of the first units in your uses clause.<br />
Runtime error 211 at $0066E188<br />
How can I fix this?<br />
<br />
Your freshly installed component is using threads. Fpc on *nix doesn't automatically include threading support, but it must be intialized. This initialization is done in the cthreads unit. Every application using the component needs to add this unit to the uses clause of the main program. Lazarus itself is no exception. This can be done in two ways:<br />
<br />
1) Change the source of ide/lazarus.pp: add the cthreads as first unit to the uses clause, so that is looks like this:<br />
uses<br />
//cmem,<br />
cthreads, <br />
{$IFDEF IDE_MEM_CHECK}<br />
...<br />
and rebuild lazarus.<br />
<br />
2) In order to avoid modifying lazarus.pp file, a fpc compiler option could be used. Once package that uses threads has been compiled, open menu Tools->Configure "build Lazarus". Configure "build Lazarus" dialog will be shown, in field "Options:" type -Facthreads and then press "OK" button. The next step is to install the package. Lazarus will be built with option -Facthreads which means that it will treat main program as if unit cthreads where first in uses clause. <br />
<br />
''Hint:'' Maybe your old (non-crashing) lazarus executable is stored as lazarus.old in the same directory as the crashing lazarus executable.<br />
<br />
===When I run a program with threads I get runtime error 232===<br />
The complete error message is:<br />
This binary has no thread support compiled in.<br />
Recompile the application with a thread-driver in the program uses<br />
clause before other units using thread.<br />
Runtime error 232<br />
'''Solution''': Add cthreads as first unit to the uses clause of your main program, usually the .lpr-file.<br />
<br />
===I have Ubuntu Breezy and my fonts in Lazarus IDE look too big===<br />
If Lazarus is compiled with Gtk1.2, the settings in Gnome Preferences/Font don't have any effect as<br />
they are related to Gtk2.<br />
You could try this solution:<br />
Create a file named .gtkrc.mine in your home directory (if it's not already there) and add<br />
these lines to it:<br />
<br />
<pre><br />
style "default-text" {<br />
fontset = "-*-arial-medium-r-normal--*-100-*-*-*-*-iso8859-1,\<br />
-*-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"<br />
}<br />
<br />
class "GtkWidget" style "default-text"<br />
</pre><br />
<br />
===How can I compile a program for Gtk2?===<br />
<br />
At the moment, the Gtk2 compiled IDE is a little unstable, but you can compile software for Gtk2 using the Gtk1 IDE.<br />
<br />
To start with recompile LCL for Gtk2. Go to the menu "Tools"->"Configure Build Lazarus" and set LCL to clean+build and everything else to none.<br />
<br />
Now click Ok and go to the menu "Tools"->"Build Lazarus"<br />
<br />
Now you can compile your software with Gtk2 going on the Compiler options and changing the widgetset to Gtk2.<br />
<br />
== Windows ==<br />
<br />
=== When I cycle the compiler, I get:The name specified is not recognized as an internal or external command, operable program or batch file.>& was unexpected at this time. ===<br />
<br />
In the compiler dir exists an OS2 scriptfile named make.cmd. NT sees this also<br />
as a script file, so remove it since on NT we don't need it.<br />
<br />
=== When I cycle the compiler, I get: make[3]: ./ppc1.exe: Command not found ===<br />
<br />
I don't know why but somehow make has lost its path. Try to cycle with a<br />
basedir set like: make cycle BASEDIR=your_fpc_source_dir_herecompiler<br />
<br />
=== When I try to make Lazarus I get:===<br />
====make.exe: * * * interfaces: No such file or directory (ENOENT). Stop.make.exe: * * * [interfaces_all] Error 2 ====<br />
You need to upgrade your make.<br />
<br />
====makefile:27: *** You need the GNU utils package to use this Makefile. Stop.====<br />
Make sure you didn't install FPC in a path with spaces in the name. The<br />
Makefile doesn't support it.<br />
<br />
<br />
<br />
===Ako nastavím aplikáciu aby vyzerala ako XP ?===<br />
Ak máme program myprogram.exe vytvoríme súbor nazvaný myprogram.exe.manifest a skopírujeme doň nasledujúci text:<br />
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><br />
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><br />
<assemblyIdentity processorArchitecture="*" version="1.0.0.0" type="win32" name="myprogram"/><br />
<description>programom</description><br />
<dependency><br />
<dependentAssembly><br />
<assemblyIdentity<br />
type="win32"<br />
name="Microsoft.Windows.Common-Controls"<br />
version="6.0.0.0"<br />
publicKeyToken="6595b64144ccf1df"<br />
language="*"<br />
processorArchitecture="*" /><br />
</dependentAssembly><br />
</dependency><br />
</assembly><br />
Voila! a máme XP vzhľad.<br />
<br />
===Pokiaľ spustím Windows aplikáciu vytvorenú v Lazarovi, zobrazí sa v DOSovom okne===<br />
Špecifikujte parameter -WG (Windows GUI) v príkazovom riadku compilera alebo v Lazarovi skontrolujte, či je zaškrtnuté políčko Windows GUI v Project menu | Compiler Options | Linking | target OS Specific options.<br />
<br />
== Licencie ==<br />
<br />
=== Možem v Lazarovi vytvárať komerčné aplikácie? ===<br />
Áno, LCL je chránená licenciou LGPL s výnimkou, ktorá vám imožňuje ju staticky linkovať bez nutnosti zverejnovať zdrojový kód vašej aplikácie. Zmeny a vylepšenia v LCL musia byť distribuované so zdrojovým kódom. Lazarus a Lazarus IDE sú chránené licenciou GPL.<br />
<br />
=== Why are some components restricted from usage in commercial application ? ===<br />
<br />
Lazarus comes with additional components, that were developed by third parties. Those are under various other Licenses. If you wish to use them you need to see the License within the source files of those packages.<br />
Most of those 3rd party components are in the directory "components".<br />
<br />
=== How do I know if a Component is part of the LCL ? ===<br />
<br />
All LCL units are in the directory "lcl". A List of units belonging to the LCL can be found here http://lazarus-ccr.sourceforge.net/docs/lcl/ . If you code uses units not listed on this page, you may have used a component that is not part of the LCL.<br />
<br />
=== Môžem vytvárať komerčné rozšírenia (plug-in) pre Lazarus? ===<br />
Áno, časť IDE s názvom IDEIntf je chránená licenciou LGPL s rovnakou výnimkou, čiže nie ste nútený licencovať váš plug-in alebo vývojársky balíček pod GPL. Môžete si tiež vyberať plug-iny pod akoukolvek licenciou, nie-GPL plug-iny sú teda povolené. Pozor ale, nie je dovolené distribuovať predkompilovaného Lazara staticky zlinkovaného s týmito nie-GPL plug-inmi.<br />
<br />
== Contributors and Comments ==<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusFaq version].<br />
<br />
<br />
{{AutoCategory}}<br />
[[Category:Lazarus/sk]]<br />
[[Category:FAQs/sk]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Faq/sk&diff=97769Lazarus Faq/sk2015-11-10T10:06:01Z<p>Trsek: /* 'Identifier not found LazarusResources'. */</p>
<hr />
<div>{{Lazarus Faq}}<br />
<br />
Tento FAQ bol zkopírovaný z FAQ na adrese www.freepascal.org, je jednoduchšie sa oň starať a rozširovať ho, keď je vo wiki formáte.<br />
<br />
== Všeobecné otázky ==<br />
<br />
=== Kde môžem nájsť viacero FAQ? ===<br />
<br />
Pozrite sa na [http://www.lazarus.freepascal.org oficiálnu stránku]. Nájdete tam ďalší FAQ.<br />
<br />
===Prečo sú generované binárky také veľké?===<br />
Binárky sú veľké pretože obsahujú množstvo ladiacich informácií potrebných pre gdb (GNu Debugger).<br />
<br />
Prekladač má prepínač na vypnutie lediacich informácií v binárnom súbore (-Xs), ale vďaka chybe v prekladači (verzia 2.0.2 a skoršie), tento nefunguje správne. Chyba bola opravená vo vývojovej verzii prekladača.<br />
<br />
Na odstránenie ladiacich symbolov zo spustiteľného súboru môžete použiť program zvaný "strip", nájdete ho v inštalačnom adresári Lazaraus lazarus\pp\bin\i386-win32\.<br />
<br />
Jednoducho v príkazovom riadku napíšte príkaz "strip --strip-all <váš exe súbor>".<br />
<br />
Ak chcete mať svoj program ešte menší, môžete vyskúšať použiť program [http://upx.sourceforge.net/ UPX]. UPX je veľmi dobrý kompresor pre vykonateľné súbory. Vďaka tomu, že binárku komprimuje priamo ("na mieste"), nemá žiadne problémy s prílišným vyťažením pamäte. Okrem toho má veľmi rýchlo dekompresiu (~10 MB/s na Pentiu 133).<br />
<br />
UPX spustíte zadaním "upx <váš exe súbor>" v príkazovom riadku.<br />
<br />
Po použití programu strip aj upx sa jednoduchá GUI aplikácia v Lazare zmenší na:<br />
* ~ 700kb na Linuxe<br />
* ~ 420kb na Windows<br />
<br />
Detailnejšiu odpoveď na túto otázku môžete [[fpc:Size Matters|nájsť tu]].<br />
<div class="floatright">[[Image:Lazarus_vs_cpp.png]]</div><br />
Je dôležté si uvedomiť, že už program hello world v Lazarus zahŕňa veľké množstvo vlastností:<br />
<br />
* Knižnicu obsluhy XML<br />
* Knižnicu oblsuhy obrázkov pre súbory png, xpm, bmp a ico<br />
* Skoro všetky nástroje z Lazarus Component Library<br />
* Celú Free Pascal Runtime Library<br />
<br />
Takže je veľmi veľký, ale už obsahuje skoro všetko, čo skutočná netriviálna aplikácia bude potrebovať.<br />
<br />
Veľkosť spustiteľných súborov z Lazarus ja na začiatku veľká, ale narastá veľmi pomaly, vďaka spôsobu akým prekladač Free Pascal a fomruláre Lazarus pracuje. Projekt C++ (len príklad, ale aplikovateľný aj na iné jazyky/nástroje) má hello world veľmi malý, ale rýchlo exponencionálne narastá, keď potrebujete vlastnosti pre napísanie netriviálnch aplikácií.<br />
<br />
<br clear=all><br />
=== Prečo je linkovanie vo Windows také pomalé? ===<br />
<br />
Všeobecne povedané, preklad vo Windows zaberie viac času ako na iných platformých, pretože GNU Linker používaný Free Pascalom pracuje na tejto platforme pomaly. Tento problém ovplyvňuje len Windows a len na relatívne starých počítačoch (menej ako 1Ghz) a počítačoch s malou (128MB a menej).<br />
<br />
Rovnako, ak smartlinkujete LCL, bude linkovanie ešte pomalšie. Štúdiu o týchto problémoch môžete nájsť tu: [[File size and smartlinking]]<br />
<br />
Tento problém sa týka iba Windows, a iba na relatívne starších počítačoch (menej ako 1Ghz) a a počítačoch s málo RAM RAM (128MB alebo menej).<br />
<br />
Bol vyvinutý interný linker a je pripravený, ale bude dostupný len po uvoľnení Free Pascal 2.(samozrejme je dostupný cez subversion). Dramaticky skracuje linkovanie.<br />
<br />
:'''Poznámka''': V 2.1.1 Windows používa interný pre win32/64/ce, ktorý proces trochu zrýchľuje. Rekompilácia Lazarus potom zaberie okolo 280MB.<br />
<br />
=== Potrebujem ppc386.cfg alebo fpc.cfg? ===<br />
<br />
Potrebujete iba fpc.cfg. Toto je ten správny spôsob, ako prekladaču oznámiť, kde má hľadať knižnice.<br />
<br />
=== Ako skompilujem lazarus? ===<br />
<br />
Urobte niečo ako toto:<br />
$ cd lazarus<br />
$ make clean all<br />
<br />
=== Ako vytvorím iné projekty založené na LCL? ===<br />
<br />
Pokiaľ nemôžete použiť IDE pre zostavenie vašej aplikácie, pridajte na koniec súboru fpc.cfg nasledujúce riadky: <br />
<br />
# Pridá knižnice<br />
-Fu/your.lazarus.root/lcl/units<br />
-Fu/your.lazarus.root/lcl/units/{váš_toolkit}<br />
-Fu/your.lazarus.root/components/units<br />
-Fu/your.lazarus.root/components/units/{váš_toolkit}<br />
<br />
:Kde {váš_toolkit} môže byť GTK, Gnome alebo Win32 a potom spustite:<br />
::ppc386 vasprojekt.pp<br />
<br />
=== Akú verziu FPC potrebujem? ===<br />
Používajte verzi 2.2.2 pre všetky operačné systémy.<br />
<br />
=== Nemôžem skompilovať Lazarus ===<br />
<br />
# Overte si, či máte prekladač správnej verzie<br />
# Overte si, či sú (fpc) knižnice taktiež z tej istej verzie.<br />
# Overte si, či máte fpc.cfg a nie starý ppc386.cfg<br />
# Taktiež si pozrite FAQ vzťahujúce sa k vášmu OS<br />
<br />
=== Keď sa pokúšam kompilovať projekt, dostanem chybovú hlášku ===<br />
==== "Cannot find Unit interfaces". Ako to vyriešiť?====<br />
Tento skompilovaný unit by sa mal nachádzať v {LazarusDir}/lcl/units/{TargetCPU}-{TargetOS}/{LCLWidgetSet}/interfaces.ppu. <br />
<br />
Uistite sa, že je iba jeden. Ak máte niekoľko verzií interfaces.ppu, tak pravdepodobne máte chybu v konfigurácii (napríklad ste pridali lcl adresár do vašej cesty). Zmažte všetky interfaces.ppu okrem toho vo vyššie definovanom adresári.<br />
<br />
Ak používate iný widgetset, než ten, pre aký ste skompilovali Lazarus, musíte taktiež pre tento widgetset skompilovať aj LCL. <br />
<br />
Ak ste sa dostali sem, ale stále sa zjavuje chybová hláška, tak používate iný prekladač / rtl pre kompilovanie vášho projektu ako ten, ktorý bol použitý pre skompilovanie Lazarus IDE. Môžete urobiť nasledovné:<br />
* urobiť rebuild LCL (alebo Lazara kompletne) s prekladačom, ktorý zvolíte v Environmnent Options. Urobíte to v menu Tools -> Build Lazarus. Avšak predtým si prezrite a prípadne upravte nastavenia pre build v Tools -> Configure Build Lazarus.<br />
* Zmeňte prekladač v Environment Options na ten, ktorý ste použili pre skompilovanie Lazara. Pozorne si prezrite taktiež Environment Options a presvedčte sa, že máte nastavenú správnu cestu pre Lazarus Directory (inštalačný adresár Lazarus) a FPC sources directory (zdrojové adresáre pre fpc unity). Overte si, že v konfiguračnom súbore fpc.cfg máte iba jednu verziu prekladača - na Linuxe a iných unixových systémoch by sa tento súbor mal nachádzať v adresári /etc a na Windows v rovnakom adresári ako fpc prekladač. Kópie starých verzií súboru taktiež ostávajú v systéme, keď updatujete váš prekladač na novšiu verziu a môžu spôsobovať problémy, môžu sa nachádzať vo vašom domovskom adresári, alebo v tom istom adresári, v ktorom ste budovali váš nový prekladač. ZMAŽTE ICH!!<br />
* Môžete tiež skúsiť zmeniť widgeset pre aktuálny projekt. Napr. ukážkový project "objectinspector", ktorý je súčasťou inštalácie Lazara je nastavený na gtk. Kompilovanie tohoto projektu určite skončí v chybe "Can't find unit interfaces" na platforme Windows. Zmenou widgesetu na default(Win32) v Project | Compiler Options ... | LCL Widget Type (various) môže odstrániť tento problém.<br />
<br />
=== Keď sa pokúšam skompilovať Delphi projekt v Lazare, dostanem chybovú hlášku ===<br />
==== at the line :{$R *.DFM} Ako vyriešim tento problém? ====<br />
<br />
Lazarus (alebo lepšie Linux) nepozná resourcy, takže ich nemôžete používať takým spôsobom ako robí Delphi/win32. Lazarus však používa tomuto vcelku kompatibilnú metódu. Pokiaľ sa budete riadiť nasledovným, tak stále môžete používať vaše Delphi layouty (.dfm súbory):<br />
<br />
*Potrebujete textovú verziu .dfm súboru. Delphi5 a vyššie to majú predvolené. Ak máte staršie súbory:: skratkou ALT-F12 si prezriete layout ako text a potom cut&paste. Keď už máte textový .dfm file, proste ho skopírujte do .lfm súboru.<br />
*S pomocou lazres (v lazarus/tools) vytvorte súbor. <br />
lazres vas_formular.lrs vas_formular.lfm<br />
*Pridajte nasledovnú inicializačnú sekciu<br />
<br />
initialization<br />
{$I yourform.lrs}<br />
<br />
Prosím, pamätajte na to, že nie všetky vlastnosti v dfm sú podporované Lazarom, takže vám IDE môže spadnúť.<br />
<br />
==== 'Identifier not found LazarusResources'. ====<br />
<br />
Pri vytváraní formulára Lazarus automaticky pridáva niekoľko extra unitov do uses sekcie vášho formulárového unitu. Počas konverzie z delphi unitu do lazarovho unitu sa toto nedeje. Čiže LResources potrebujete do uses sekcie vášho formulárového unitu pridať ručne.<br />
<br />
=== Pri prístupe k udalostiam objektov objektov, napríklad udalosti onclick pre tlačidlo, dostanem nasledujúcu chybu: ERROR unit not found: stdCtrls ===<br />
<br />
Uistite sa (v Project -> Project Inspector), že váš projekt závisí na balíčkoch LCL a že ste nainštalovali zdrojové súbory FPC.<br />
<br />
Lazarus pozostáva z IDE a z knižnice vizuálnych komponentov LCL.<br />
Všetko ostatné, ako IO, databázy, FCL a RTL sú poskytované FPC.<br />
IDE potrebuje poznať cesty ku všetkým týmto zdrojom.<br />
<br />
Cestu k FPC zdrojom môžete nastaviť cez:<br />
Tools -> Options -> Files -> FPC source path<br />
<br />
===Ako vložím malý súbor do spustitelného súboru? Ako vložím resource?===<br />
<br />
/your/lazarus/path/tools/lazres sound.lrs sound1.wav sound2.wav ...<br />
vytvorí súbor sound.lrs zo súborov sound1.wav a sound2.wav.<br />
<br />
Potom ho môžete includnuť *za* lrs súborom formulára:<br />
<br />
...<br />
initialization<br />
{$i unit1.lrs} // hlavný resource súbor (vždy prvý !)<br />
{$i sound.lrs} // vlastný resource súbor<br />
<br />
end.<br />
V programe potom môžete použiť napr.:<br />
Sound1AsString:=LazarusResources.Find('sound1').Value;<br />
<br />
=== Ako sa dostanem k debug výstupu? ===<br />
<br />
V unite LCLProc sa nachádzajú dve procedúry pre písane do debug výstupu: <br />
* '''DebugLn:''' funguje rovnako ako WriteLn, ale písať sa do nej dajú len textové reťazce (string).<br />
* '''DbgOut:''' funguje rovnako ako Write, ale písať sa do nej dajú len textové reťazce (string).<br />
<br />
Za normálnych okolností sa debug výstup píše do stdout. Pokiaľ stdout nie je otvorený (typ aplikácie je {$AppType Gui} alebo je skompilovaná pod Windows s prepínačom -WG), výstup sa nepíše vôbec.<br />
<br />
Debug výstup sa môže tiež zapisovať do súboru. Inicializačný kód v unite LCLProc skontroluje, či sa v príkazovom riadku nenachádza parameter '--debug-log=<file>'. Pokiaľ sa nachádza, všetok debug výstup sa píše do súboru <file>.<br />
<br />
Pokiaľ sa v príkazovom riadku nenájde parameter '--debug-log', LCLProc skontroluje systémovú premennú xxx_debuglog (xxx je názov programu bez prípony, čiže napr. pre Lazarus hľadá premennú lazarus_debuglog). Pokiaľ takáto systémová premenná existuje, debug výstup sa zapíše do nastaveného súboru. Napr. nastavením:<br />
<br />
set lazarus_debuglog=c:\lazarus\debug.txt<br />
<br />
sa bude debug výstup programu Lazarus zapisovať do súboru c:\lazarus\debug.txt.<br />
<br />
Keďže táto funkcionalita je implementovaná v unite LCLProc, je prístupná pre každú aplikáciu, ktorá túto unitu používa.<br />
<br />
;Debugovanie Lazarusu : Najmä pre používateľov Windows: Pokiaľ chcete, aby Lazarus vypisoval do konzoly, pridajte {$APPTYPE console} do súboru lazarus.pp a prekompilujte Lazarus.<br />
<br />
=== Aký je význam prípon rôznych súborov, ktoré Lazarus používa? ===<br />
<br />
[[Lazarus Tutorial/sk#The Lazarus files]] uvádza niektoré príklady. Tu je stručný zoznam:<br />
<br />
; <code>*.lpi</code> : Lazarus Project Information file - informácie o projekte (uložený v XML; obsahuje nastavania špecifické pre konkrétny projekt)<br />
; <code>*.lpr</code> : Lazarus Program file; obsahuje pascalovský zdrojový kód hlavného programu<br />
; <code>*.lfm</code> : Lazarus Form file; obsahuje vlastnosti všetkých objektov na formulári (uložený v Lazarovskom špeciálnom textovom formáte; akcie sú uložené v Pascale v príslušnom <code>.pas</code> súbore)<br />
; <code>*.pas</code> or <code>*.pp</code> : Programová jednotka (Unit) v Pascale (obvykle zodpovedá nejakému formuláru uloženému v súbore <code>*.lfm</code>)<br />
; <code>*.lrs</code> : Lazarus Resource file (toto je generovaný súbor, nemýľte si ho s resource súbormi Windows). <br />
: Súbor sa dá vytvoriť pomocou pomôcky lazres (v adresári Lazarus/Tools) príkazom: lazres myfile.lrs myfile.lfm<br />
; <code>*.ppu</code> : Compiled unit (skompilovaná unita)<br />
; <code>*.lpk</code> : Lazarus package information file - informácie o balíčku (uložený v XML; obsahuje nastavenia špecifické pre konkrétny balíček)<br />
<br />
=== Opravil som chybu/vylepšil som Lazarus. Ako dostanem moje zmeny do oficiálnych zdrojových kódov? ===<br />
Vytvorte záplatu a pošlite ju vývojarom. Viac detailov v [[Creating A Patch]].<br />
<br />
=== Pokiaľ deklarujem textový súbor ako ''var mytext: text;'', dostanem chybu "Unit1.pas(32,15) Error: Error in type definition". Ako to opraviť? ===<br />
Trieda TControl má vlastnosť [[doc:lcl/controls/tcontrol.text.html|Text]]. V metóde formulára sa teda nepoužije typ [[doc:rtl/system/text.html|Text]] zo systémovej unity. Môžete použiť typ [[doc:rtl/system/textfile.html|TextFile]], ktorý je len aliasom typu Text, alebo môžete pridať meno unitu do definície typu.<br />
var<br />
MyTextFile: TextFile;<br />
MyText: System.Text;<br />
Rovnaký problém s duplicitnými menami nastáva pri priraďovaní (assign) a zatváraní (close) textových súborov. TForm má vlastnosť ''assign'' a metódu [[doc:lcl/forms/tcustomform.close.html|Close]]. Môžete použiť [[doc:rtl/objpas/assignfile.html|AssignFile]] a [[doc:rtl/objpas/closefile.html|CloseFile]] ale pridať meno unity ''System''.<br />
<br />
=== Dostávam chybu pri tlačení pomocou Printer.BeginDoc ===<br />
Unita Printers musí byť pridaná v uses sekcii.<br />
<br />
Balíček Printer4Lazarus musí byť pridaný do závislostí projektu. Kliknite na: Project | Project Inspektor | Add | New Requirement | Package Name<br />
<br />
Pokiaľ balíček Printer4Lazarus nie je v zozname, musí sa doinštalovať. Balíček je súšasťou inštalácie Lazara a nájdete ho v adresári [adresár kde je lazarus nainštalovaný]\components\printers.<br />
<br />
Tento istý postup funguje aj v prípade chyby, ktorú môžete dostať pri použití Printer.Printers<br />
<br />
=== Prečo je TForm.ClientWidth/ClientHeight rovnaká ako TForm.Width/Height? ===<br />
TForm.Width/Height neobsahujú okraj formulára (narozdiel od napr. Delphi), pretože je nemožné zístiť jeho veľkosť na všetkých platformách.<br />
<br />
V prípade, že sa nájde spolahlivý spôsob, ako zistiť velkosť okraju, toto bude v budúcnosti opravené.<br />
<br />
=== Ako sa môžem stať vývojarom Lazara a získať prístup k menežmentu SVN a bug-trackeru? ===<br />
Tak po prvé: Najprv sa o Lazarovi musíte veľa naučiť a ukázať vaše vedomosti a zručnosti. Začnite čítanim [[Lazarus_Documentation|wiki článkov]], prečítajte si zdrojový kód Lazara, opravte niekoľko chýb a keď si myslíte, že ste pripravení, kontaktujte vývojarov na [http://www.mail-archive.com/lazarus@miraclec.com mailing liste].<br />
<br />
== Kde je definované ... ? ==<br />
<br />
=== Virtual key constants ===<br />
Virtual key constants sú definované v LCLType. Pridajte LCLtype do <b>uses</b> sekcie.<br />
<br />
== Používame IDE ==<br />
<br />
=== Ako sa používa doplňovanie identifikátorov? ===<br />
Doplňovanie identifikátorov vyvoláte stlačením kláves [ctrl][medzera].<br />
V menu ''Environment | Editor Options | Code Tools | Automatic Features'' môžete nastaviť, ako dlho má trvať, kým sa doplňovanie identifikátorov objaví automaticky.<br />
<br />
== Linux ==<br />
<br />
=== Ako môžem pod Linuxom debugovať bez použitia IDE? ===<br />
<br />
Po prvé, potrebujete debugger. gdb je štandardným debuggerom pod linuxom a existuje k nemu veľa grafických frontendov. Najobvyklejším je ddd, ktorý je aj súčasťou väčšiny distribúcii. Na skompilovanie Lazara a LCL s debug-information a jeho spustenie v debug móde použite nasledovné príkazy:<br />
<br />
$ make clean; make OPT=-dDEBUG<br />
$ ddd lazarus<br />
<br />
Avšak pozor, ddd nie je až také konfortné, ako debugger vstavaný do Lazara. Najmä v prípade, keď si chcete nechat zobraziť obsah premennej, nezabúdajte, že ddd/gdb je narozdiel od Pascalu case-sensitívne (rozlišuje veľké a malé písmená). Z tohoto dôvodu, názvy všetkých premenných je nutné zadávať veľkými písmenami. Viac informácií sa dočítate v manuáloch k FPC.<br />
<br />
=== Už viem debugovať, ale ddd nevie nájsť moje zdrojáky alebo vypisuje, že neobsahujú žiaden kód. Prečo? ===<br />
<br />
Toto je problém spôsobený zle nastavenými cestami. Vyhnete sa mu nasledovným spôsobom<br />
<br />
* V ddd menu použite príkaz "Change directory" (Zmeň adresár) a nastavte adresár, kde sa nachádzajú vaše zdrojové kódy. Nevýhodou tohoto riešenia je, že teraz nemôžete debugovať zdrojové kódy programu, s ktorým ste štartovali (napr. lazarus). Preto je niekedy nevyhnutné meniť adresár viac krát.<br />
* V ddd choďte do [Edit] [gdb-settings] a nastavte správne search-path (cesta vyhľadávania)<br />
* Vytvorte súbor $(HOME)/.gdbinit s obsahom:<br />
directory /your/path/to/lazarus<br />
directory /your/path/to/lazarus/lcl<br />
directory /your/path/to/lazarus/lcl/include<br />
<br />
=== Pri linkovaní dostávam chybu, že /usr/bin/ld nemôže nájsť -l<knižnica> ===<br />
<br />
; '''Distribúcie založené na balíčkoch''' : Je nutné nainštalovať balíčky, ktoré obsahujú súbory lib<knižnica>.so alebo lib<knižnica>.a. Dynamické knižnice pod linuxom majú príponu .so, statické príponu .a. V niektorých linuxových distribúciách po nainštalovaní balížku obrahujúcom knižnicu, je nutné tiež nainštalovať vývojársky balíček (obvykle má názov <baliček>-dev).<br />
: Niektoré distribúcie majú príkazy, ktoré umožni nájsť balíček, ktorý obsahuje nejaký súbor:<br />
: '''Mandriva'''<br />
<br />
[]$ urpmf lib<knižnica>.so<br />
<br />
:vypíše zoznam všetkých balíčkov obsahujúcich súbor lib<knižnica>.so, nainštalovať musíte ten končiaci na -devel<br />
<br />
: '''Debian'''<br />
<br />
[]$ apt-file search lib<knižnica>.so<br />
<br />
:vypíše zoznam všetkých balíčkov obsahujúcich súbor lib<knižnica>.so, nainštalovať musíte ten končiaci na -dev<br />
<br />
<br />
<br />
; '''Distribúcie založené na zdrojových kódoch alebo manuálne kompilované''' : Ubezpečte sa, že súbor lib<knižnica>.a sa nachádza na ceste (systémová premenná PATH), a že je správnej verzie. Aby linker našiel správnu dynamickú knižnicu, vytvorte symlink nazvaný lib<knižnica>.so, do lib<knižnica><verzia>-x,y.so ak je to potrebné.<br />
<br />
; '''FreeBSD''' : Rovnaký postup ako vyššie, a okrem toho skontrolujte, či máte -Fl/usr/local/lib v súbore fpc.cfg. Nezabúdajte, že balíčky pre GTK 1.2 sa vo FreeBSD nazývajú "gtk12".<br />
<br />
[]# cd /usr/local/lib && ln -s libglib-12.so libglib12.so<br />
[]# cd /usr/X11R6/lib && ln -s libgtk-12.so libgtk12.so<br />
[]# cd /usr/X11R6/lib && ln -s libgdk-12.so libgdk12.so<br />
<br />
<br />
; '''NetBSD''' : Rovnaký postup ako pri distribúciach založených na zdrojových kódoch, a okrem toho skontrolujte, či máte Fl/usr/local/lib v súbore fpc.cfg.<br />
<br />
=== Ako skonvertujem projekt z Kylix 2 do Lazara? ===<br />
Prakicky veľmi podobne, ako pri konverzii z Kylixu do Delphi/VCL.<br />
<br />
LCL (Lazarus Component Library) sa snaží byť čo najviac kompatibilná s VCL (Visual Component Library) z Delphi. Kylix CLX sa snaží byť kompatibilný s knižnicami QT.<br />
<br />
Základné tipy:<br />
* Premenujte všetky použité CLX unity (napr. QForms, QControls, QGraphics, ...), do ich VCL podoby: Forms, Controls, Graphics, ...<br />
* Pridajte LResources do každej uses sekcie zdrojáku každého formulára<br />
* Premenujte alebo skopírujte všetky súbory .xfm na .lfm.<br />
* Premenujte alebo skopírujte všetky súbory .dpr na .lpr.<br />
* Pridajte "Interfaces" do uses sekcie .lpr súboru.<br />
* Odstráňte direktívu {$R *.res}<br />
* Odstráňte direktívu {$R *.xfm}<br />
* Pridajte direktívu {$mode objfpc}{$H+} alebo {$mode delphi}{$H+} do všetkých .pas a .lpr súborov<br />
* Pridajte inicializačnú sekciu na koniec každého zdroj. kódu formulára a pridajte include direktívu pre .lrs súbor:<br />
initialization<br />
{$I unit1.lrs}<br />
:.lrs súbor vytvoríte napríklad pomôckou lazres v adresári lazares/tools/lazres.<br />
:Napr: ./lazres unit1.lrs unit1.lfm<br />
* Opravte rozdiely. LCL zatiaľ nepodporuje všetky vlastnosti VCL, a CLX nie je s VCL úplne kompatibilná.<br />
* V záujme čo najväčšej platformovej nezávislosti, odstránte závislosti na unite libc a nahraďte ich FPC unitami ako baseunix/unix. Toto je nevyhnutné, pokiaľ chcete kompilovať pre iné platformy ako linux/x86.<br />
<br />
=== When compiling lazarus the compiler can not find a unit. e.g.: gtkint.pp(17,16) Fatal: Can't find unit GLIB ===<br />
<br />
1. Check a clean rebuild: do a 'make clean all'<br />
<br />
2. Check if the compiler has the correct version (2.0.0 or higher)<br />
<br />
3. Check if the compiler is using the right config file. The normal installation creates /etc/fpc.cfg. But fpc also searches for ~/.ppc386.cfg, ~/.fpc.cfg, /etc/ppc386.cfg and it uses only the first it finds.<br />
<br />
:'''Hint:''' You can see which config file is used with 'ppc386 -vt bogus'<br />
:Remove any ppc386.cfg as it is really obsolete.<br />
<br />
4. Check if the config file (/etc/fpc.cfg) contains the right paths to your fpc libs. There must be three lines like this:<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*<br />
:The first part of these paths (/usr/lib/fpc) depends on your system. On some systems this can be for example /usr/local/lib/fpc/... .<br />
:'''Hint:''' You can see your searchpaths with 'ppc386 -vt bogus'<br />
<br />
5. Check that the config file (/etc/fpc.cfg) does not contain search paths to the lcl source files (.pp, .pas):<br />
forbidden: -Fu(lazarus_source_directory)/lcl<br />
forbidden: -Fu(lazarus_source_directory)/lcl/interfaces/gtk<br />
:If you want to add the lcl for all your fpc projects, make sure that the two paths look like the following and are placed after the above fpc lib paths:<br />
-Fu(lazarus_source_directory)/lcl/units/$fpctarget<br />
-Fu(lazarus_source_directory)/lcl/units/$fpctarget/gtk<br />
<br />
6. Check if the missing unit (glib.ppu) exists in your fpc lib directory. For example the gtk.ppu can be found in /usr/lib/fpc/$version/units/i386-linux/gtk/. If it does not exists, the fpc lib is corrupt and should be reinstalled.<br />
<br />
7. Check if the sources are in a NFS mounted directory. In some cases the NFS updates created files incorrectly. Please, try to move the sources into a non NFS directory and compile there.<br />
<br />
=== I have installed the binary version, but when compiling a simple project, lazarus gives: Fatal: Can't find unit CONTROLS ===<br />
<br />
Probably you are using a newer fpc package, than that used for building the<br />
lazarus binaries. The best solution is to download the sources and compile<br />
lazarus manually. You can download the source snapshot or get the source<br />
via svn:<br />
<br />
$ bash<br />
$ svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
$ cd lazarus<br />
$ make clean all<br />
<br />
Make sure that lazarus get the new source directory:<br />
Environment->General Options->Files->Lazarus Directory Top<br />
<br />
===Lazarus compiles, but linking fails with: libgdk-pixbuf not found===<br />
Either install the gdk-pixbuf library for gtk1.x or disable the use:<br />
<br />
Where to find the gdk-pixbuf library:<br />
<br />
RPMs:<br />
http://rpmfind.net/linux/rpm2html/search.php?query=gdk-pixbuf&submit=Search+...&system=&arch=<br />
<br />
Debian packages:<br />
libgdk-pixbuf-dev<br />
<br />
Sources:<br />
ftp://ftp.gnome.org/pub/gnome/unstable/sources/gdk-pixbuf/<br />
<br />
<br />
How to disable the use in lazarus: In Tools->Configure "Build Lazarus" add the option<br />
'-dNoGdkPixBufLib'<br />
or at command line:<br />
"make clean all OPT=-dNoGdkPixBufLib".<br />
<br />
===I have SuSE and I get /usr/bin/ld: cannot find -lgtk Error: Error while linking===<br />
SuSE installs the gtk devel libs under /opt/gnome/lib (or /opt/gnome/lib64 for 64 bits), which is not in<br />
the standard lib path. Simply add it to your /etc/fpc.cfg.<br />
(-Fl/opt/gnome/lib).<br />
<br />
===Lazarus crashes with runtime error 211 after I installed a component===<br />
After I installed a component, Lazarus crashes with the following message:<br />
Threading has been used before cthreads was initialized.<br />
Make cthreads one of the first units in your uses clause.<br />
Runtime error 211 at $0066E188<br />
How can I fix this?<br />
<br />
Your freshly installed component is using threads. Fpc on *nix doesn't automatically include threading support, but it must be intialized. This initialization is done in the cthreads unit. Every application using the component needs to add this unit to the uses clause of the main program. Lazarus itself is no exception. This can be done in two ways:<br />
<br />
1) Change the source of ide/lazarus.pp: add the cthreads as first unit to the uses clause, so that is looks like this:<br />
uses<br />
//cmem,<br />
cthreads, <br />
{$IFDEF IDE_MEM_CHECK}<br />
...<br />
and rebuild lazarus.<br />
<br />
2) In order to avoid modifying lazarus.pp file, a fpc compiler option could be used. Once package that uses threads has been compiled, open menu Tools->Configure "build Lazarus". Configure "build Lazarus" dialog will be shown, in field "Options:" type -Facthreads and then press "OK" button. The next step is to install the package. Lazarus will be built with option -Facthreads which means that it will treat main program as if unit cthreads where first in uses clause. <br />
<br />
''Hint:'' Maybe your old (non-crashing) lazarus executable is stored as lazarus.old in the same directory as the crashing lazarus executable.<br />
<br />
===When I run a program with threads I get runtime error 232===<br />
The complete error message is:<br />
This binary has no thread support compiled in.<br />
Recompile the application with a thread-driver in the program uses<br />
clause before other units using thread.<br />
Runtime error 232<br />
'''Solution''': Add cthreads as first unit to the uses clause of your main program, usually the .lpr-file.<br />
<br />
===I have Ubuntu Breezy and my fonts in Lazarus IDE look too big===<br />
If Lazarus is compiled with Gtk1.2, the settings in Gnome Preferences/Font don't have any effect as<br />
they are related to Gtk2.<br />
You could try this solution:<br />
Create a file named .gtkrc.mine in your home directory (if it's not already there) and add<br />
these lines to it:<br />
<br />
<pre><br />
style "default-text" {<br />
fontset = "-*-arial-medium-r-normal--*-100-*-*-*-*-iso8859-1,\<br />
-*-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"<br />
}<br />
<br />
class "GtkWidget" style "default-text"<br />
</pre><br />
<br />
===How can I compile a program for Gtk2?===<br />
<br />
At the moment, the Gtk2 compiled IDE is a little unstable, but you can compile software for Gtk2 using the Gtk1 IDE.<br />
<br />
To start with recompile LCL for Gtk2. Go to the menu "Tools"->"Configure Build Lazarus" and set LCL to clean+build and everything else to none.<br />
<br />
Now click Ok and go to the menu "Tools"->"Build Lazarus"<br />
<br />
Now you can compile your software with Gtk2 going on the Compiler options and changing the widgetset to Gtk2.<br />
<br />
== Windows ==<br />
<br />
=== When I cycle the compiler, I get:The name specified is not recognized as an internal or external command, operable program or batch file.>& was unexpected at this time. ===<br />
<br />
In the compiler dir exists an OS2 scriptfile named make.cmd. NT sees this also<br />
as a script file, so remove it since on NT we don't need it.<br />
<br />
=== When I cycle the compiler, I get: make[3]: ./ppc1.exe: Command not found ===<br />
<br />
I don't know why but somehow make has lost its path. Try to cycle with a<br />
basedir set like: make cycle BASEDIR=your_fpc_source_dir_herecompiler<br />
<br />
=== When I try to make Lazarus I get:===<br />
====make.exe: * * * interfaces: No such file or directory (ENOENT). Stop.make.exe: * * * [interfaces_all] Error 2 ====<br />
You need to upgrade your make.<br />
<br />
====makefile:27: *** You need the GNU utils package to use this Makefile. Stop.====<br />
Make sure you didn't install FPC in a path with spaces in the name. The<br />
Makefile doesn't support it.<br />
<br />
<br />
<br />
===Ako nastavím aplikáciu aby vyzerala ako XP ?===<br />
Ak máme program myprogram.exe vytvoríme súbor nazvaný myprogram.exe.manifest a skopírujeme doň nasledujúci text:<br />
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><br />
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><br />
<assemblyIdentity processorArchitecture="*" version="1.0.0.0" type="win32" name="myprogram"/><br />
<description>programom</description><br />
<dependency><br />
<dependentAssembly><br />
<assemblyIdentity<br />
type="win32"<br />
name="Microsoft.Windows.Common-Controls"<br />
version="6.0.0.0"<br />
publicKeyToken="6595b64144ccf1df"<br />
language="*"<br />
processorArchitecture="*" /><br />
</dependentAssembly><br />
</dependency><br />
</assembly><br />
Voila! a máme XP vzhľad.<br />
<br />
===Pokiaľ spustím Windows aplikáciu vytvorenú v Lazarovi, zobrazí sa v DOSovom okne===<br />
Špecifikujte parameter -WG (Windows GUI) v príkazovom riadku compilera alebo v Lazarovi skontrolujte, či je zaškrtnuté políčko Windows GUI v Project menu | Compiler Options | Linking | target OS Specific options.<br />
<br />
== Licencie ==<br />
<br />
=== Možem v Lazarovi vytvárať komerčné aplikácie? ===<br />
Áno, LCL je chránená licenciou LGPL s výnimkou, ktorá vám imožňuje ju staticky linkovať bez nutnosti zverejnovať zdrojový kód vašej aplikácie. Zmeny a vylepšenia v LCL musia byť distribuované so zdrojovým kódom. Lazarus a Lazarus IDE sú chránené licenciou GPL.<br />
<br />
=== Why are some components restricted from usage in commercial application ? ===<br />
<br />
Lazarus comes with additional components, that were developed by third parties. Those are under various other Licenses. If you wish to use them you need to see the License within the source files of those packages.<br />
Most of those 3rd party components are in the directory "components".<br />
<br />
=== How do I know if a Component is part of the LCL ? ===<br />
<br />
All LCL units are in the directory "lcl". A List of units belonging to the LCL can be found here http://lazarus-ccr.sourceforge.net/docs/lcl/ . If you code uses units not listed on this page, you may have used a component that is not part of the LCL.<br />
<br />
=== Môžem vytvárať komerčné rozšírenia (plug-in) pre Lazarus? ===<br />
Áno, časť IDE s názvom IDEIntf je chránená licenciou LGPL s rovnakou výnimkou, čiže nie ste nútený licencovať váš plug-in alebo vývojársky balíček pod GPL. Môžete si tiež vyberať plug-iny pod akoukolvek licenciou, nie-GPL plug-iny sú teda povolené. Pozor ale, nie je dovolené distribuovať predkompilovaného Lazara staticky zlinkovaného s týmito nie-GPL plug-inmi.<br />
<br />
== Contributors and Comments ==<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusFaq version].<br />
<br />
<br />
{{AutoCategory}}<br />
[[Category:Lazarus/sk]]<br />
[[Category:FAQs/sk]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Faq/sk&diff=97768Lazarus Faq/sk2015-11-10T10:00:15Z<p>Trsek: /* "Cannot find Unit interfaces". Ako to vyriešiť? */</p>
<hr />
<div>{{Lazarus Faq}}<br />
<br />
Tento FAQ bol zkopírovaný z FAQ na adrese www.freepascal.org, je jednoduchšie sa oň starať a rozširovať ho, keď je vo wiki formáte.<br />
<br />
== Všeobecné otázky ==<br />
<br />
=== Kde môžem nájsť viacero FAQ? ===<br />
<br />
Pozrite sa na [http://www.lazarus.freepascal.org oficiálnu stránku]. Nájdete tam ďalší FAQ.<br />
<br />
===Prečo sú generované binárky také veľké?===<br />
Binárky sú veľké pretože obsahujú množstvo ladiacich informácií potrebných pre gdb (GNu Debugger).<br />
<br />
Prekladač má prepínač na vypnutie lediacich informácií v binárnom súbore (-Xs), ale vďaka chybe v prekladači (verzia 2.0.2 a skoršie), tento nefunguje správne. Chyba bola opravená vo vývojovej verzii prekladača.<br />
<br />
Na odstránenie ladiacich symbolov zo spustiteľného súboru môžete použiť program zvaný "strip", nájdete ho v inštalačnom adresári Lazaraus lazarus\pp\bin\i386-win32\.<br />
<br />
Jednoducho v príkazovom riadku napíšte príkaz "strip --strip-all <váš exe súbor>".<br />
<br />
Ak chcete mať svoj program ešte menší, môžete vyskúšať použiť program [http://upx.sourceforge.net/ UPX]. UPX je veľmi dobrý kompresor pre vykonateľné súbory. Vďaka tomu, že binárku komprimuje priamo ("na mieste"), nemá žiadne problémy s prílišným vyťažením pamäte. Okrem toho má veľmi rýchlo dekompresiu (~10 MB/s na Pentiu 133).<br />
<br />
UPX spustíte zadaním "upx <váš exe súbor>" v príkazovom riadku.<br />
<br />
Po použití programu strip aj upx sa jednoduchá GUI aplikácia v Lazare zmenší na:<br />
* ~ 700kb na Linuxe<br />
* ~ 420kb na Windows<br />
<br />
Detailnejšiu odpoveď na túto otázku môžete [[fpc:Size Matters|nájsť tu]].<br />
<div class="floatright">[[Image:Lazarus_vs_cpp.png]]</div><br />
Je dôležté si uvedomiť, že už program hello world v Lazarus zahŕňa veľké množstvo vlastností:<br />
<br />
* Knižnicu obsluhy XML<br />
* Knižnicu oblsuhy obrázkov pre súbory png, xpm, bmp a ico<br />
* Skoro všetky nástroje z Lazarus Component Library<br />
* Celú Free Pascal Runtime Library<br />
<br />
Takže je veľmi veľký, ale už obsahuje skoro všetko, čo skutočná netriviálna aplikácia bude potrebovať.<br />
<br />
Veľkosť spustiteľných súborov z Lazarus ja na začiatku veľká, ale narastá veľmi pomaly, vďaka spôsobu akým prekladač Free Pascal a fomruláre Lazarus pracuje. Projekt C++ (len príklad, ale aplikovateľný aj na iné jazyky/nástroje) má hello world veľmi malý, ale rýchlo exponencionálne narastá, keď potrebujete vlastnosti pre napísanie netriviálnch aplikácií.<br />
<br />
<br clear=all><br />
=== Prečo je linkovanie vo Windows také pomalé? ===<br />
<br />
Všeobecne povedané, preklad vo Windows zaberie viac času ako na iných platformých, pretože GNU Linker používaný Free Pascalom pracuje na tejto platforme pomaly. Tento problém ovplyvňuje len Windows a len na relatívne starých počítačoch (menej ako 1Ghz) a počítačoch s malou (128MB a menej).<br />
<br />
Rovnako, ak smartlinkujete LCL, bude linkovanie ešte pomalšie. Štúdiu o týchto problémoch môžete nájsť tu: [[File size and smartlinking]]<br />
<br />
Tento problém sa týka iba Windows, a iba na relatívne starších počítačoch (menej ako 1Ghz) a a počítačoch s málo RAM RAM (128MB alebo menej).<br />
<br />
Bol vyvinutý interný linker a je pripravený, ale bude dostupný len po uvoľnení Free Pascal 2.(samozrejme je dostupný cez subversion). Dramaticky skracuje linkovanie.<br />
<br />
:'''Poznámka''': V 2.1.1 Windows používa interný pre win32/64/ce, ktorý proces trochu zrýchľuje. Rekompilácia Lazarus potom zaberie okolo 280MB.<br />
<br />
=== Potrebujem ppc386.cfg alebo fpc.cfg? ===<br />
<br />
Potrebujete iba fpc.cfg. Toto je ten správny spôsob, ako prekladaču oznámiť, kde má hľadať knižnice.<br />
<br />
=== Ako skompilujem lazarus? ===<br />
<br />
Urobte niečo ako toto:<br />
$ cd lazarus<br />
$ make clean all<br />
<br />
=== Ako vytvorím iné projekty založené na LCL? ===<br />
<br />
Pokiaľ nemôžete použiť IDE pre zostavenie vašej aplikácie, pridajte na koniec súboru fpc.cfg nasledujúce riadky: <br />
<br />
# Pridá knižnice<br />
-Fu/your.lazarus.root/lcl/units<br />
-Fu/your.lazarus.root/lcl/units/{váš_toolkit}<br />
-Fu/your.lazarus.root/components/units<br />
-Fu/your.lazarus.root/components/units/{váš_toolkit}<br />
<br />
:Kde {váš_toolkit} môže byť GTK, Gnome alebo Win32 a potom spustite:<br />
::ppc386 vasprojekt.pp<br />
<br />
=== Akú verziu FPC potrebujem? ===<br />
Používajte verzi 2.2.2 pre všetky operačné systémy.<br />
<br />
=== Nemôžem skompilovať Lazarus ===<br />
<br />
# Overte si, či máte prekladač správnej verzie<br />
# Overte si, či sú (fpc) knižnice taktiež z tej istej verzie.<br />
# Overte si, či máte fpc.cfg a nie starý ppc386.cfg<br />
# Taktiež si pozrite FAQ vzťahujúce sa k vášmu OS<br />
<br />
=== Keď sa pokúšam kompilovať projekt, dostanem chybovú hlášku ===<br />
==== "Cannot find Unit interfaces". Ako to vyriešiť?====<br />
Tento skompilovaný unit by sa mal nachádzať v {LazarusDir}/lcl/units/{TargetCPU}-{TargetOS}/{LCLWidgetSet}/interfaces.ppu. <br />
<br />
Uistite sa, že je iba jeden. Ak máte niekoľko verzií interfaces.ppu, tak pravdepodobne máte chybu v konfigurácii (napríklad ste pridali lcl adresár do vašej cesty). Zmažte všetky interfaces.ppu okrem toho vo vyššie definovanom adresári.<br />
<br />
Ak používate iný widgetset, než ten, pre aký ste skompilovali Lazarus, musíte taktiež pre tento widgetset skompilovať aj LCL. <br />
<br />
Ak ste sa dostali sem, ale stále sa zjavuje chybová hláška, tak používate iný prekladač / rtl pre kompilovanie vášho projektu ako ten, ktorý bol použitý pre skompilovanie Lazarus IDE. Môžete urobiť nasledovné:<br />
* urobiť rebuild LCL (alebo Lazara kompletne) s prekladačom, ktorý zvolíte v Environmnent Options. Urobíte to v menu Tools -> Build Lazarus. Avšak predtým si prezrite a prípadne upravte nastavenia pre build v Tools -> Configure Build Lazarus.<br />
* Zmeňte prekladač v Environment Options na ten, ktorý ste použili pre skompilovanie Lazara. Pozorne si prezrite taktiež Environment Options a presvedčte sa, že máte nastavenú správnu cestu pre Lazarus Directory (inštalačný adresár Lazarus) a FPC sources directory (zdrojové adresáre pre fpc unity). Overte si, že v konfiguračnom súbore fpc.cfg máte iba jednu verziu prekladača - na Linuxe a iných unixových systémoch by sa tento súbor mal nachádzať v adresári /etc a na Windows v rovnakom adresári ako fpc prekladač. Kópie starých verzií súboru taktiež ostávajú v systéme, keď updatujete váš prekladač na novšiu verziu a môžu spôsobovať problémy, môžu sa nachádzať vo vašom domovskom adresári, alebo v tom istom adresári, v ktorom ste budovali váš nový prekladač. ZMAŽTE ICH!!<br />
* Môžete tiež skúsiť zmeniť widgeset pre aktuálny projekt. Napr. ukážkový project "objectinspector", ktorý je súčasťou inštalácie Lazara je nastavený na gtk. Kompilovanie tohoto projektu určite skončí v chybe "Can't find unit interfaces" na platforme Windows. Zmenou widgesetu na default(Win32) v Project | Compiler Options ... | LCL Widget Type (various) môže odstrániť tento problém.<br />
<br />
=== Keď sa pokúšam skompilovať Delphi projekt v Lazare, dostanem chybovú hlášku ===<br />
==== at the line :{$R *.DFM} Ako vyriešim tento problém? ====<br />
<br />
Lazarus (alebo lepšie Linux) nepozná resourcy, takže ich nemôžete používať takým spôsobom ako robí Delphi/win32. Lazarus však používa tomuto vcelku kompatibilnú metódu. Pokiaľ sa budete riadiť nasledovným, tak stále môžete používať vaše Delphi layouty (.dfm súbory):<br />
<br />
*Potrebujete textovú verziu .dfm súboru. Delphi5 a vyššie to majú predvolené. Ak máte staršie súbory:: skratkou ALT-F12 si prezriete layout ako text a potom cut&paste. Keď už máte textový .dfm file, proste ho skopírujte do .lfm súboru.<br />
*S pomocou lazres (v lazarus/tools) vytvorte súbor. <br />
lazres vas_formular.lrs vas_formular.lfm<br />
*Pridajte nasledovnú inicializačnú sekciu<br />
<br />
initialization<br />
{$I yourform.lrs}<br />
<br />
Prosím, pamätajte na to, že nie všetky vlastnosti v dfm sú podporované Lazarom, takže vám IDE môže spadnúť.<br />
<br />
==== 'Identifier not found LazarusResources'. ====<br />
<br />
Pri vytváraní formulára Lazarus automaticky pridáva niekoľko extra unitov do uses sekcie vášho formulárového unitu. Počes konverzie z delphi unitu do lazarovho unitu sa toto nedeje. Čiže LResources potrebujete do uses sekcie vášho formulárového unitu pridať ručne.<br />
<br />
=== Pri prístupe k udalostiam objektov objektov, napríklad udalosti onclick pre tlačidlo, dostanem nasledujúcu chybu: ERROR unit not found: stdCtrls ===<br />
<br />
Uistite sa (v Project -> Project Inspector), že váš projekt závisí na balíčkoch LCL a že ste nainštalovali zdrojové súbory FPC.<br />
<br />
Lazarus pozostáva z IDE a z knižnice vizuálnych komponentov LCL.<br />
Všetko ostatné, ako IO, databázy, FCL a RTL sú poskytované FPC.<br />
IDE potrebuje poznať cesty ku všetkým týmto zdrojom.<br />
<br />
Cestu k FPC zdrojom môžete nastaviť cez:<br />
Tools -> Options -> Files -> FPC source path<br />
<br />
===Ako vložím malý súbor do spustitelného súboru? Ako vložím resource?===<br />
<br />
/your/lazarus/path/tools/lazres sound.lrs sound1.wav sound2.wav ...<br />
vytvorí súbor sound.lrs zo súborov sound1.wav a sound2.wav.<br />
<br />
Potom ho môžete includnuť *za* lrs súborom formulára:<br />
<br />
...<br />
initialization<br />
{$i unit1.lrs} // hlavný resource súbor (vždy prvý !)<br />
{$i sound.lrs} // vlastný resource súbor<br />
<br />
end.<br />
V programe potom môžete použiť napr.:<br />
Sound1AsString:=LazarusResources.Find('sound1').Value;<br />
<br />
=== Ako sa dostanem k debug výstupu? ===<br />
<br />
V unite LCLProc sa nachádzajú dve procedúry pre písane do debug výstupu: <br />
* '''DebugLn:''' funguje rovnako ako WriteLn, ale písať sa do nej dajú len textové reťazce (string).<br />
* '''DbgOut:''' funguje rovnako ako Write, ale písať sa do nej dajú len textové reťazce (string).<br />
<br />
Za normálnych okolností sa debug výstup píše do stdout. Pokiaľ stdout nie je otvorený (typ aplikácie je {$AppType Gui} alebo je skompilovaná pod Windows s prepínačom -WG), výstup sa nepíše vôbec.<br />
<br />
Debug výstup sa môže tiež zapisovať do súboru. Inicializačný kód v unite LCLProc skontroluje, či sa v príkazovom riadku nenachádza parameter '--debug-log=<file>'. Pokiaľ sa nachádza, všetok debug výstup sa píše do súboru <file>.<br />
<br />
Pokiaľ sa v príkazovom riadku nenájde parameter '--debug-log', LCLProc skontroluje systémovú premennú xxx_debuglog (xxx je názov programu bez prípony, čiže napr. pre Lazarus hľadá premennú lazarus_debuglog). Pokiaľ takáto systémová premenná existuje, debug výstup sa zapíše do nastaveného súboru. Napr. nastavením:<br />
<br />
set lazarus_debuglog=c:\lazarus\debug.txt<br />
<br />
sa bude debug výstup programu Lazarus zapisovať do súboru c:\lazarus\debug.txt.<br />
<br />
Keďže táto funkcionalita je implementovaná v unite LCLProc, je prístupná pre každú aplikáciu, ktorá túto unitu používa.<br />
<br />
;Debugovanie Lazarusu : Najmä pre používateľov Windows: Pokiaľ chcete, aby Lazarus vypisoval do konzoly, pridajte {$APPTYPE console} do súboru lazarus.pp a prekompilujte Lazarus.<br />
<br />
=== Aký je význam prípon rôznych súborov, ktoré Lazarus používa? ===<br />
<br />
[[Lazarus Tutorial/sk#The Lazarus files]] uvádza niektoré príklady. Tu je stručný zoznam:<br />
<br />
; <code>*.lpi</code> : Lazarus Project Information file - informácie o projekte (uložený v XML; obsahuje nastavania špecifické pre konkrétny projekt)<br />
; <code>*.lpr</code> : Lazarus Program file; obsahuje pascalovský zdrojový kód hlavného programu<br />
; <code>*.lfm</code> : Lazarus Form file; obsahuje vlastnosti všetkých objektov na formulári (uložený v Lazarovskom špeciálnom textovom formáte; akcie sú uložené v Pascale v príslušnom <code>.pas</code> súbore)<br />
; <code>*.pas</code> or <code>*.pp</code> : Programová jednotka (Unit) v Pascale (obvykle zodpovedá nejakému formuláru uloženému v súbore <code>*.lfm</code>)<br />
; <code>*.lrs</code> : Lazarus Resource file (toto je generovaný súbor, nemýľte si ho s resource súbormi Windows). <br />
: Súbor sa dá vytvoriť pomocou pomôcky lazres (v adresári Lazarus/Tools) príkazom: lazres myfile.lrs myfile.lfm<br />
; <code>*.ppu</code> : Compiled unit (skompilovaná unita)<br />
; <code>*.lpk</code> : Lazarus package information file - informácie o balíčku (uložený v XML; obsahuje nastavenia špecifické pre konkrétny balíček)<br />
<br />
=== Opravil som chybu/vylepšil som Lazarus. Ako dostanem moje zmeny do oficiálnych zdrojových kódov? ===<br />
Vytvorte záplatu a pošlite ju vývojarom. Viac detailov v [[Creating A Patch]].<br />
<br />
=== Pokiaľ deklarujem textový súbor ako ''var mytext: text;'', dostanem chybu "Unit1.pas(32,15) Error: Error in type definition". Ako to opraviť? ===<br />
Trieda TControl má vlastnosť [[doc:lcl/controls/tcontrol.text.html|Text]]. V metóde formulára sa teda nepoužije typ [[doc:rtl/system/text.html|Text]] zo systémovej unity. Môžete použiť typ [[doc:rtl/system/textfile.html|TextFile]], ktorý je len aliasom typu Text, alebo môžete pridať meno unitu do definície typu.<br />
var<br />
MyTextFile: TextFile;<br />
MyText: System.Text;<br />
Rovnaký problém s duplicitnými menami nastáva pri priraďovaní (assign) a zatváraní (close) textových súborov. TForm má vlastnosť ''assign'' a metódu [[doc:lcl/forms/tcustomform.close.html|Close]]. Môžete použiť [[doc:rtl/objpas/assignfile.html|AssignFile]] a [[doc:rtl/objpas/closefile.html|CloseFile]] ale pridať meno unity ''System''.<br />
<br />
=== Dostávam chybu pri tlačení pomocou Printer.BeginDoc ===<br />
Unita Printers musí byť pridaná v uses sekcii.<br />
<br />
Balíček Printer4Lazarus musí byť pridaný do závislostí projektu. Kliknite na: Project | Project Inspektor | Add | New Requirement | Package Name<br />
<br />
Pokiaľ balíček Printer4Lazarus nie je v zozname, musí sa doinštalovať. Balíček je súšasťou inštalácie Lazara a nájdete ho v adresári [adresár kde je lazarus nainštalovaný]\components\printers.<br />
<br />
Tento istý postup funguje aj v prípade chyby, ktorú môžete dostať pri použití Printer.Printers<br />
<br />
=== Prečo je TForm.ClientWidth/ClientHeight rovnaká ako TForm.Width/Height? ===<br />
TForm.Width/Height neobsahujú okraj formulára (narozdiel od napr. Delphi), pretože je nemožné zístiť jeho veľkosť na všetkých platformách.<br />
<br />
V prípade, že sa nájde spolahlivý spôsob, ako zistiť velkosť okraju, toto bude v budúcnosti opravené.<br />
<br />
=== Ako sa môžem stať vývojarom Lazara a získať prístup k menežmentu SVN a bug-trackeru? ===<br />
Tak po prvé: Najprv sa o Lazarovi musíte veľa naučiť a ukázať vaše vedomosti a zručnosti. Začnite čítanim [[Lazarus_Documentation|wiki článkov]], prečítajte si zdrojový kód Lazara, opravte niekoľko chýb a keď si myslíte, že ste pripravení, kontaktujte vývojarov na [http://www.mail-archive.com/lazarus@miraclec.com mailing liste].<br />
<br />
== Kde je definované ... ? ==<br />
<br />
=== Virtual key constants ===<br />
Virtual key constants sú definované v LCLType. Pridajte LCLtype do <b>uses</b> sekcie.<br />
<br />
== Používame IDE ==<br />
<br />
=== Ako sa používa doplňovanie identifikátorov? ===<br />
Doplňovanie identifikátorov vyvoláte stlačením kláves [ctrl][medzera].<br />
V menu ''Environment | Editor Options | Code Tools | Automatic Features'' môžete nastaviť, ako dlho má trvať, kým sa doplňovanie identifikátorov objaví automaticky.<br />
<br />
== Linux ==<br />
<br />
=== Ako môžem pod Linuxom debugovať bez použitia IDE? ===<br />
<br />
Po prvé, potrebujete debugger. gdb je štandardným debuggerom pod linuxom a existuje k nemu veľa grafických frontendov. Najobvyklejším je ddd, ktorý je aj súčasťou väčšiny distribúcii. Na skompilovanie Lazara a LCL s debug-information a jeho spustenie v debug móde použite nasledovné príkazy:<br />
<br />
$ make clean; make OPT=-dDEBUG<br />
$ ddd lazarus<br />
<br />
Avšak pozor, ddd nie je až také konfortné, ako debugger vstavaný do Lazara. Najmä v prípade, keď si chcete nechat zobraziť obsah premennej, nezabúdajte, že ddd/gdb je narozdiel od Pascalu case-sensitívne (rozlišuje veľké a malé písmená). Z tohoto dôvodu, názvy všetkých premenných je nutné zadávať veľkými písmenami. Viac informácií sa dočítate v manuáloch k FPC.<br />
<br />
=== Už viem debugovať, ale ddd nevie nájsť moje zdrojáky alebo vypisuje, že neobsahujú žiaden kód. Prečo? ===<br />
<br />
Toto je problém spôsobený zle nastavenými cestami. Vyhnete sa mu nasledovným spôsobom<br />
<br />
* V ddd menu použite príkaz "Change directory" (Zmeň adresár) a nastavte adresár, kde sa nachádzajú vaše zdrojové kódy. Nevýhodou tohoto riešenia je, že teraz nemôžete debugovať zdrojové kódy programu, s ktorým ste štartovali (napr. lazarus). Preto je niekedy nevyhnutné meniť adresár viac krát.<br />
* V ddd choďte do [Edit] [gdb-settings] a nastavte správne search-path (cesta vyhľadávania)<br />
* Vytvorte súbor $(HOME)/.gdbinit s obsahom:<br />
directory /your/path/to/lazarus<br />
directory /your/path/to/lazarus/lcl<br />
directory /your/path/to/lazarus/lcl/include<br />
<br />
=== Pri linkovaní dostávam chybu, že /usr/bin/ld nemôže nájsť -l<knižnica> ===<br />
<br />
; '''Distribúcie založené na balíčkoch''' : Je nutné nainštalovať balíčky, ktoré obsahujú súbory lib<knižnica>.so alebo lib<knižnica>.a. Dynamické knižnice pod linuxom majú príponu .so, statické príponu .a. V niektorých linuxových distribúciách po nainštalovaní balížku obrahujúcom knižnicu, je nutné tiež nainštalovať vývojársky balíček (obvykle má názov <baliček>-dev).<br />
: Niektoré distribúcie majú príkazy, ktoré umožni nájsť balíček, ktorý obsahuje nejaký súbor:<br />
: '''Mandriva'''<br />
<br />
[]$ urpmf lib<knižnica>.so<br />
<br />
:vypíše zoznam všetkých balíčkov obsahujúcich súbor lib<knižnica>.so, nainštalovať musíte ten končiaci na -devel<br />
<br />
: '''Debian'''<br />
<br />
[]$ apt-file search lib<knižnica>.so<br />
<br />
:vypíše zoznam všetkých balíčkov obsahujúcich súbor lib<knižnica>.so, nainštalovať musíte ten končiaci na -dev<br />
<br />
<br />
<br />
; '''Distribúcie založené na zdrojových kódoch alebo manuálne kompilované''' : Ubezpečte sa, že súbor lib<knižnica>.a sa nachádza na ceste (systémová premenná PATH), a že je správnej verzie. Aby linker našiel správnu dynamickú knižnicu, vytvorte symlink nazvaný lib<knižnica>.so, do lib<knižnica><verzia>-x,y.so ak je to potrebné.<br />
<br />
; '''FreeBSD''' : Rovnaký postup ako vyššie, a okrem toho skontrolujte, či máte -Fl/usr/local/lib v súbore fpc.cfg. Nezabúdajte, že balíčky pre GTK 1.2 sa vo FreeBSD nazývajú "gtk12".<br />
<br />
[]# cd /usr/local/lib && ln -s libglib-12.so libglib12.so<br />
[]# cd /usr/X11R6/lib && ln -s libgtk-12.so libgtk12.so<br />
[]# cd /usr/X11R6/lib && ln -s libgdk-12.so libgdk12.so<br />
<br />
<br />
; '''NetBSD''' : Rovnaký postup ako pri distribúciach založených na zdrojových kódoch, a okrem toho skontrolujte, či máte Fl/usr/local/lib v súbore fpc.cfg.<br />
<br />
=== Ako skonvertujem projekt z Kylix 2 do Lazara? ===<br />
Prakicky veľmi podobne, ako pri konverzii z Kylixu do Delphi/VCL.<br />
<br />
LCL (Lazarus Component Library) sa snaží byť čo najviac kompatibilná s VCL (Visual Component Library) z Delphi. Kylix CLX sa snaží byť kompatibilný s knižnicami QT.<br />
<br />
Základné tipy:<br />
* Premenujte všetky použité CLX unity (napr. QForms, QControls, QGraphics, ...), do ich VCL podoby: Forms, Controls, Graphics, ...<br />
* Pridajte LResources do každej uses sekcie zdrojáku každého formulára<br />
* Premenujte alebo skopírujte všetky súbory .xfm na .lfm.<br />
* Premenujte alebo skopírujte všetky súbory .dpr na .lpr.<br />
* Pridajte "Interfaces" do uses sekcie .lpr súboru.<br />
* Odstráňte direktívu {$R *.res}<br />
* Odstráňte direktívu {$R *.xfm}<br />
* Pridajte direktívu {$mode objfpc}{$H+} alebo {$mode delphi}{$H+} do všetkých .pas a .lpr súborov<br />
* Pridajte inicializačnú sekciu na koniec každého zdroj. kódu formulára a pridajte include direktívu pre .lrs súbor:<br />
initialization<br />
{$I unit1.lrs}<br />
:.lrs súbor vytvoríte napríklad pomôckou lazres v adresári lazares/tools/lazres.<br />
:Napr: ./lazres unit1.lrs unit1.lfm<br />
* Opravte rozdiely. LCL zatiaľ nepodporuje všetky vlastnosti VCL, a CLX nie je s VCL úplne kompatibilná.<br />
* V záujme čo najväčšej platformovej nezávislosti, odstránte závislosti na unite libc a nahraďte ich FPC unitami ako baseunix/unix. Toto je nevyhnutné, pokiaľ chcete kompilovať pre iné platformy ako linux/x86.<br />
<br />
=== When compiling lazarus the compiler can not find a unit. e.g.: gtkint.pp(17,16) Fatal: Can't find unit GLIB ===<br />
<br />
1. Check a clean rebuild: do a 'make clean all'<br />
<br />
2. Check if the compiler has the correct version (2.0.0 or higher)<br />
<br />
3. Check if the compiler is using the right config file. The normal installation creates /etc/fpc.cfg. But fpc also searches for ~/.ppc386.cfg, ~/.fpc.cfg, /etc/ppc386.cfg and it uses only the first it finds.<br />
<br />
:'''Hint:''' You can see which config file is used with 'ppc386 -vt bogus'<br />
:Remove any ppc386.cfg as it is really obsolete.<br />
<br />
4. Check if the config file (/etc/fpc.cfg) contains the right paths to your fpc libs. There must be three lines like this:<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*<br />
:The first part of these paths (/usr/lib/fpc) depends on your system. On some systems this can be for example /usr/local/lib/fpc/... .<br />
:'''Hint:''' You can see your searchpaths with 'ppc386 -vt bogus'<br />
<br />
5. Check that the config file (/etc/fpc.cfg) does not contain search paths to the lcl source files (.pp, .pas):<br />
forbidden: -Fu(lazarus_source_directory)/lcl<br />
forbidden: -Fu(lazarus_source_directory)/lcl/interfaces/gtk<br />
:If you want to add the lcl for all your fpc projects, make sure that the two paths look like the following and are placed after the above fpc lib paths:<br />
-Fu(lazarus_source_directory)/lcl/units/$fpctarget<br />
-Fu(lazarus_source_directory)/lcl/units/$fpctarget/gtk<br />
<br />
6. Check if the missing unit (glib.ppu) exists in your fpc lib directory. For example the gtk.ppu can be found in /usr/lib/fpc/$version/units/i386-linux/gtk/. If it does not exists, the fpc lib is corrupt and should be reinstalled.<br />
<br />
7. Check if the sources are in a NFS mounted directory. In some cases the NFS updates created files incorrectly. Please, try to move the sources into a non NFS directory and compile there.<br />
<br />
=== I have installed the binary version, but when compiling a simple project, lazarus gives: Fatal: Can't find unit CONTROLS ===<br />
<br />
Probably you are using a newer fpc package, than that used for building the<br />
lazarus binaries. The best solution is to download the sources and compile<br />
lazarus manually. You can download the source snapshot or get the source<br />
via svn:<br />
<br />
$ bash<br />
$ svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
$ cd lazarus<br />
$ make clean all<br />
<br />
Make sure that lazarus get the new source directory:<br />
Environment->General Options->Files->Lazarus Directory Top<br />
<br />
===Lazarus compiles, but linking fails with: libgdk-pixbuf not found===<br />
Either install the gdk-pixbuf library for gtk1.x or disable the use:<br />
<br />
Where to find the gdk-pixbuf library:<br />
<br />
RPMs:<br />
http://rpmfind.net/linux/rpm2html/search.php?query=gdk-pixbuf&submit=Search+...&system=&arch=<br />
<br />
Debian packages:<br />
libgdk-pixbuf-dev<br />
<br />
Sources:<br />
ftp://ftp.gnome.org/pub/gnome/unstable/sources/gdk-pixbuf/<br />
<br />
<br />
How to disable the use in lazarus: In Tools->Configure "Build Lazarus" add the option<br />
'-dNoGdkPixBufLib'<br />
or at command line:<br />
"make clean all OPT=-dNoGdkPixBufLib".<br />
<br />
===I have SuSE and I get /usr/bin/ld: cannot find -lgtk Error: Error while linking===<br />
SuSE installs the gtk devel libs under /opt/gnome/lib (or /opt/gnome/lib64 for 64 bits), which is not in<br />
the standard lib path. Simply add it to your /etc/fpc.cfg.<br />
(-Fl/opt/gnome/lib).<br />
<br />
===Lazarus crashes with runtime error 211 after I installed a component===<br />
After I installed a component, Lazarus crashes with the following message:<br />
Threading has been used before cthreads was initialized.<br />
Make cthreads one of the first units in your uses clause.<br />
Runtime error 211 at $0066E188<br />
How can I fix this?<br />
<br />
Your freshly installed component is using threads. Fpc on *nix doesn't automatically include threading support, but it must be intialized. This initialization is done in the cthreads unit. Every application using the component needs to add this unit to the uses clause of the main program. Lazarus itself is no exception. This can be done in two ways:<br />
<br />
1) Change the source of ide/lazarus.pp: add the cthreads as first unit to the uses clause, so that is looks like this:<br />
uses<br />
//cmem,<br />
cthreads, <br />
{$IFDEF IDE_MEM_CHECK}<br />
...<br />
and rebuild lazarus.<br />
<br />
2) In order to avoid modifying lazarus.pp file, a fpc compiler option could be used. Once package that uses threads has been compiled, open menu Tools->Configure "build Lazarus". Configure "build Lazarus" dialog will be shown, in field "Options:" type -Facthreads and then press "OK" button. The next step is to install the package. Lazarus will be built with option -Facthreads which means that it will treat main program as if unit cthreads where first in uses clause. <br />
<br />
''Hint:'' Maybe your old (non-crashing) lazarus executable is stored as lazarus.old in the same directory as the crashing lazarus executable.<br />
<br />
===When I run a program with threads I get runtime error 232===<br />
The complete error message is:<br />
This binary has no thread support compiled in.<br />
Recompile the application with a thread-driver in the program uses<br />
clause before other units using thread.<br />
Runtime error 232<br />
'''Solution''': Add cthreads as first unit to the uses clause of your main program, usually the .lpr-file.<br />
<br />
===I have Ubuntu Breezy and my fonts in Lazarus IDE look too big===<br />
If Lazarus is compiled with Gtk1.2, the settings in Gnome Preferences/Font don't have any effect as<br />
they are related to Gtk2.<br />
You could try this solution:<br />
Create a file named .gtkrc.mine in your home directory (if it's not already there) and add<br />
these lines to it:<br />
<br />
<pre><br />
style "default-text" {<br />
fontset = "-*-arial-medium-r-normal--*-100-*-*-*-*-iso8859-1,\<br />
-*-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"<br />
}<br />
<br />
class "GtkWidget" style "default-text"<br />
</pre><br />
<br />
===How can I compile a program for Gtk2?===<br />
<br />
At the moment, the Gtk2 compiled IDE is a little unstable, but you can compile software for Gtk2 using the Gtk1 IDE.<br />
<br />
To start with recompile LCL for Gtk2. Go to the menu "Tools"->"Configure Build Lazarus" and set LCL to clean+build and everything else to none.<br />
<br />
Now click Ok and go to the menu "Tools"->"Build Lazarus"<br />
<br />
Now you can compile your software with Gtk2 going on the Compiler options and changing the widgetset to Gtk2.<br />
<br />
== Windows ==<br />
<br />
=== When I cycle the compiler, I get:The name specified is not recognized as an internal or external command, operable program or batch file.>& was unexpected at this time. ===<br />
<br />
In the compiler dir exists an OS2 scriptfile named make.cmd. NT sees this also<br />
as a script file, so remove it since on NT we don't need it.<br />
<br />
=== When I cycle the compiler, I get: make[3]: ./ppc1.exe: Command not found ===<br />
<br />
I don't know why but somehow make has lost its path. Try to cycle with a<br />
basedir set like: make cycle BASEDIR=your_fpc_source_dir_herecompiler<br />
<br />
=== When I try to make Lazarus I get:===<br />
====make.exe: * * * interfaces: No such file or directory (ENOENT). Stop.make.exe: * * * [interfaces_all] Error 2 ====<br />
You need to upgrade your make.<br />
<br />
====makefile:27: *** You need the GNU utils package to use this Makefile. Stop.====<br />
Make sure you didn't install FPC in a path with spaces in the name. The<br />
Makefile doesn't support it.<br />
<br />
<br />
<br />
===Ako nastavím aplikáciu aby vyzerala ako XP ?===<br />
Ak máme program myprogram.exe vytvoríme súbor nazvaný myprogram.exe.manifest a skopírujeme doň nasledujúci text:<br />
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><br />
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><br />
<assemblyIdentity processorArchitecture="*" version="1.0.0.0" type="win32" name="myprogram"/><br />
<description>programom</description><br />
<dependency><br />
<dependentAssembly><br />
<assemblyIdentity<br />
type="win32"<br />
name="Microsoft.Windows.Common-Controls"<br />
version="6.0.0.0"<br />
publicKeyToken="6595b64144ccf1df"<br />
language="*"<br />
processorArchitecture="*" /><br />
</dependentAssembly><br />
</dependency><br />
</assembly><br />
Voila! a máme XP vzhľad.<br />
<br />
===Pokiaľ spustím Windows aplikáciu vytvorenú v Lazarovi, zobrazí sa v DOSovom okne===<br />
Špecifikujte parameter -WG (Windows GUI) v príkazovom riadku compilera alebo v Lazarovi skontrolujte, či je zaškrtnuté políčko Windows GUI v Project menu | Compiler Options | Linking | target OS Specific options.<br />
<br />
== Licencie ==<br />
<br />
=== Možem v Lazarovi vytvárať komerčné aplikácie? ===<br />
Áno, LCL je chránená licenciou LGPL s výnimkou, ktorá vám imožňuje ju staticky linkovať bez nutnosti zverejnovať zdrojový kód vašej aplikácie. Zmeny a vylepšenia v LCL musia byť distribuované so zdrojovým kódom. Lazarus a Lazarus IDE sú chránené licenciou GPL.<br />
<br />
=== Why are some components restricted from usage in commercial application ? ===<br />
<br />
Lazarus comes with additional components, that were developed by third parties. Those are under various other Licenses. If you wish to use them you need to see the License within the source files of those packages.<br />
Most of those 3rd party components are in the directory "components".<br />
<br />
=== How do I know if a Component is part of the LCL ? ===<br />
<br />
All LCL units are in the directory "lcl". A List of units belonging to the LCL can be found here http://lazarus-ccr.sourceforge.net/docs/lcl/ . If you code uses units not listed on this page, you may have used a component that is not part of the LCL.<br />
<br />
=== Môžem vytvárať komerčné rozšírenia (plug-in) pre Lazarus? ===<br />
Áno, časť IDE s názvom IDEIntf je chránená licenciou LGPL s rovnakou výnimkou, čiže nie ste nútený licencovať váš plug-in alebo vývojársky balíček pod GPL. Môžete si tiež vyberať plug-iny pod akoukolvek licenciou, nie-GPL plug-iny sú teda povolené. Pozor ale, nie je dovolené distribuovať predkompilovaného Lazara staticky zlinkovaného s týmito nie-GPL plug-inmi.<br />
<br />
== Contributors and Comments ==<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusFaq version].<br />
<br />
<br />
{{AutoCategory}}<br />
[[Category:Lazarus/sk]]<br />
[[Category:FAQs/sk]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Faq/sk&diff=97767Lazarus Faq/sk2015-11-10T09:52:38Z<p>Trsek: /* Prečo je linkovanie vo Windows také pomalé? */</p>
<hr />
<div>{{Lazarus Faq}}<br />
<br />
Tento FAQ bol zkopírovaný z FAQ na adrese www.freepascal.org, je jednoduchšie sa oň starať a rozširovať ho, keď je vo wiki formáte.<br />
<br />
== Všeobecné otázky ==<br />
<br />
=== Kde môžem nájsť viacero FAQ? ===<br />
<br />
Pozrite sa na [http://www.lazarus.freepascal.org oficiálnu stránku]. Nájdete tam ďalší FAQ.<br />
<br />
===Prečo sú generované binárky také veľké?===<br />
Binárky sú veľké pretože obsahujú množstvo ladiacich informácií potrebných pre gdb (GNu Debugger).<br />
<br />
Prekladač má prepínač na vypnutie lediacich informácií v binárnom súbore (-Xs), ale vďaka chybe v prekladači (verzia 2.0.2 a skoršie), tento nefunguje správne. Chyba bola opravená vo vývojovej verzii prekladača.<br />
<br />
Na odstránenie ladiacich symbolov zo spustiteľného súboru môžete použiť program zvaný "strip", nájdete ho v inštalačnom adresári Lazaraus lazarus\pp\bin\i386-win32\.<br />
<br />
Jednoducho v príkazovom riadku napíšte príkaz "strip --strip-all <váš exe súbor>".<br />
<br />
Ak chcete mať svoj program ešte menší, môžete vyskúšať použiť program [http://upx.sourceforge.net/ UPX]. UPX je veľmi dobrý kompresor pre vykonateľné súbory. Vďaka tomu, že binárku komprimuje priamo ("na mieste"), nemá žiadne problémy s prílišným vyťažením pamäte. Okrem toho má veľmi rýchlo dekompresiu (~10 MB/s na Pentiu 133).<br />
<br />
UPX spustíte zadaním "upx <váš exe súbor>" v príkazovom riadku.<br />
<br />
Po použití programu strip aj upx sa jednoduchá GUI aplikácia v Lazare zmenší na:<br />
* ~ 700kb na Linuxe<br />
* ~ 420kb na Windows<br />
<br />
Detailnejšiu odpoveď na túto otázku môžete [[fpc:Size Matters|nájsť tu]].<br />
<div class="floatright">[[Image:Lazarus_vs_cpp.png]]</div><br />
Je dôležté si uvedomiť, že už program hello world v Lazarus zahŕňa veľké množstvo vlastností:<br />
<br />
* Knižnicu obsluhy XML<br />
* Knižnicu oblsuhy obrázkov pre súbory png, xpm, bmp a ico<br />
* Skoro všetky nástroje z Lazarus Component Library<br />
* Celú Free Pascal Runtime Library<br />
<br />
Takže je veľmi veľký, ale už obsahuje skoro všetko, čo skutočná netriviálna aplikácia bude potrebovať.<br />
<br />
Veľkosť spustiteľných súborov z Lazarus ja na začiatku veľká, ale narastá veľmi pomaly, vďaka spôsobu akým prekladač Free Pascal a fomruláre Lazarus pracuje. Projekt C++ (len príklad, ale aplikovateľný aj na iné jazyky/nástroje) má hello world veľmi malý, ale rýchlo exponencionálne narastá, keď potrebujete vlastnosti pre napísanie netriviálnch aplikácií.<br />
<br />
<br clear=all><br />
=== Prečo je linkovanie vo Windows také pomalé? ===<br />
<br />
Všeobecne povedané, preklad vo Windows zaberie viac času ako na iných platformých, pretože GNU Linker používaný Free Pascalom pracuje na tejto platforme pomaly. Tento problém ovplyvňuje len Windows a len na relatívne starých počítačoch (menej ako 1Ghz) a počítačoch s malou (128MB a menej).<br />
<br />
Rovnako, ak smartlinkujete LCL, bude linkovanie ešte pomalšie. Štúdiu o týchto problémoch môžete nájsť tu: [[File size and smartlinking]]<br />
<br />
Tento problém sa týka iba Windows, a iba na relatívne starších počítačoch (menej ako 1Ghz) a a počítačoch s málo RAM RAM (128MB alebo menej).<br />
<br />
Bol vyvinutý interný linker a je pripravený, ale bude dostupný len po uvoľnení Free Pascal 2.(samozrejme je dostupný cez subversion). Dramaticky skracuje linkovanie.<br />
<br />
:'''Poznámka''': V 2.1.1 Windows používa interný pre win32/64/ce, ktorý proces trochu zrýchľuje. Rekompilácia Lazarus potom zaberie okolo 280MB.<br />
<br />
=== Potrebujem ppc386.cfg alebo fpc.cfg? ===<br />
<br />
Potrebujete iba fpc.cfg. Toto je ten správny spôsob, ako prekladaču oznámiť, kde má hľadať knižnice.<br />
<br />
=== Ako skompilujem lazarus? ===<br />
<br />
Urobte niečo ako toto:<br />
$ cd lazarus<br />
$ make clean all<br />
<br />
=== Ako vytvorím iné projekty založené na LCL? ===<br />
<br />
Pokiaľ nemôžete použiť IDE pre zostavenie vašej aplikácie, pridajte na koniec súboru fpc.cfg nasledujúce riadky: <br />
<br />
# Pridá knižnice<br />
-Fu/your.lazarus.root/lcl/units<br />
-Fu/your.lazarus.root/lcl/units/{váš_toolkit}<br />
-Fu/your.lazarus.root/components/units<br />
-Fu/your.lazarus.root/components/units/{váš_toolkit}<br />
<br />
:Kde {váš_toolkit} môže byť GTK, Gnome alebo Win32 a potom spustite:<br />
::ppc386 vasprojekt.pp<br />
<br />
=== Akú verziu FPC potrebujem? ===<br />
Používajte verzi 2.2.2 pre všetky operačné systémy.<br />
<br />
=== Nemôžem skompilovať Lazarus ===<br />
<br />
# Overte si, či máte prekladač správnej verzie<br />
# Overte si, či sú (fpc) knižnice taktiež z tej istej verzie.<br />
# Overte si, či máte fpc.cfg a nie starý ppc386.cfg<br />
# Taktiež si pozrite FAQ vzťahujúce sa k vášmu OS<br />
<br />
=== Keď sa pokúšam kompilovať projekt, dostanem chybovú hlášku ===<br />
==== "Cannot find Unit interfaces". Ako to vyriešiť?====<br />
Tento skompilovaný unit by sa mal nachádzať v {LazarusDir}/lcl/units/{TargetCPU}-{TargetOS}/{LCLWidgetSet}/interfaces.ppu. <br />
<br />
Uistite sa, že je iba jeden. Ak máte niekoľko verzií interfaces.ppu, tak pravdepodobne mát echybu v konfigurácii (napríklad ste pridali lcl adresár do vašej cesty). Zmažte všetky interfaces.ppu okrem toho vo vyššie definovanom adresári.<br />
<br />
Ak používate iný widgetset, než ten, pre aký ste skompilovali Lazarus, musíte taktiež pre tento widgetset skompilovať aj LCL. <br />
<br />
Ak ste sa dostali sem, ale stále sa zjavuje chybová hláška, tak používate iný prekladač / rtl pre kompilovanie vášho projektu ako ten, ktorý bol použitý pre skompilovanie Lazarus IDE. Môžete urobiť nasledovné:<br />
* urobiť rebuild LCL (alebo Lazara kompletne) s prekladačom, ktorý zvolíte v Environmnent Options. Urobíte to v menu Tools -> Build Lazarus. Avšak predtým si prezrite a prípadne upravte nastavenia pre build v Tools -> Configure Build Lazarus.<br />
* Zmeňte prekladač v Environment Options na ten, ktorý ste použili pre skompilovanie Lazara. Pozorne si prezrite taktiež Environment Options a presvedčte sa, že máte nastavenú správnu cestu pre Lazarus Directory (inštalačný adresár Lazarus) a FPC sources directory (zdrojové adresáre pre fpc unity). Overte si, že v konfiguračnom súbore fpc.cfg máte iba jednu verziu prekladača - na Linuxe a iných unixových systémoch by sa tento súbor mal nachádzať v adresári /etc a na Windows v rovnakom adresári ako fpc prekladač. Kópie starých verzií súboru taktiež ostávajú v systéme, keď updatujete váš prekladač na novšiu verziu a môžu spôsobovať problémy, môžu sa nachádzať vo vašom domovskom adresári, alebo v tom istom adresári, v ktorom ste budovali váš nový prekladač. ZMAŽTE ICH!!<br />
* Môžete tiež skúsiť zmeniť widgeset pre aktuálny projekt. Napr. ukážkový project "objectinspector", ktorý je súčasťou inštalácie Lazara je nastavený na gtk. Kompilovanie tohoto projektu určite skončí v chybe "Can't find unit interfaces" na platforme Windows. Zmenou widgesetu na default(Win32) v Project | Compiler Options ... | LCL Widget Type (various) môže odstrániť tento problém.<br />
<br />
=== Keď sa pokúšam skompilovať Delphi projekt v Lazare, dostanem chybovú hlášku ===<br />
==== at the line :{$R *.DFM} Ako vyriešim tento problém? ====<br />
<br />
Lazarus (alebo lepšie Linux) nepozná resourcy, takže ich nemôžete používať takým spôsobom ako robí Delphi/win32. Lazarus však používa tomuto vcelku kompatibilnú metódu. Pokiaľ sa budete riadiť nasledovným, tak stále môžete používať vaše Delphi layouty (.dfm súbory):<br />
<br />
*Potrebujete textovú verziu .dfm súboru. Delphi5 a vyššie to majú predvolené. Ak máte staršie súbory:: skratkou ALT-F12 si prezriete layout ako text a potom cut&paste. Keď už máte textový .dfm file, proste ho skopírujte do .lfm súboru.<br />
*S pomocou lazres (v lazarus/tools) vytvorte súbor. <br />
lazres vas_formular.lrs vas_formular.lfm<br />
*Pridajte nasledovnú inicializačnú sekciu<br />
<br />
initialization<br />
{$I yourform.lrs}<br />
<br />
Prosím, pamätajte na to, že nie všetky vlastnosti v dfm sú podporované Lazarom, takže vám IDE môže spadnúť.<br />
<br />
==== 'Identifier not found LazarusResources'. ====<br />
<br />
Pri vytváraní formulára Lazarus automaticky pridáva niekoľko extra unitov do uses sekcie vášho formulárového unitu. Počes konverzie z delphi unitu do lazarovho unitu sa toto nedeje. Čiže LResources potrebujete do uses sekcie vášho formulárového unitu pridať ručne.<br />
<br />
=== Pri prístupe k udalostiam objektov objektov, napríklad udalosti onclick pre tlačidlo, dostanem nasledujúcu chybu: ERROR unit not found: stdCtrls ===<br />
<br />
Uistite sa (v Project -> Project Inspector), že váš projekt závisí na balíčkoch LCL a že ste nainštalovali zdrojové súbory FPC.<br />
<br />
Lazarus pozostáva z IDE a z knižnice vizuálnych komponentov LCL.<br />
Všetko ostatné, ako IO, databázy, FCL a RTL sú poskytované FPC.<br />
IDE potrebuje poznať cesty ku všetkým týmto zdrojom.<br />
<br />
Cestu k FPC zdrojom môžete nastaviť cez:<br />
Tools -> Options -> Files -> FPC source path<br />
<br />
===Ako vložím malý súbor do spustitelného súboru? Ako vložím resource?===<br />
<br />
/your/lazarus/path/tools/lazres sound.lrs sound1.wav sound2.wav ...<br />
vytvorí súbor sound.lrs zo súborov sound1.wav a sound2.wav.<br />
<br />
Potom ho môžete includnuť *za* lrs súborom formulára:<br />
<br />
...<br />
initialization<br />
{$i unit1.lrs} // hlavný resource súbor (vždy prvý !)<br />
{$i sound.lrs} // vlastný resource súbor<br />
<br />
end.<br />
V programe potom môžete použiť napr.:<br />
Sound1AsString:=LazarusResources.Find('sound1').Value;<br />
<br />
=== Ako sa dostanem k debug výstupu? ===<br />
<br />
V unite LCLProc sa nachádzajú dve procedúry pre písane do debug výstupu: <br />
* '''DebugLn:''' funguje rovnako ako WriteLn, ale písať sa do nej dajú len textové reťazce (string).<br />
* '''DbgOut:''' funguje rovnako ako Write, ale písať sa do nej dajú len textové reťazce (string).<br />
<br />
Za normálnych okolností sa debug výstup píše do stdout. Pokiaľ stdout nie je otvorený (typ aplikácie je {$AppType Gui} alebo je skompilovaná pod Windows s prepínačom -WG), výstup sa nepíše vôbec.<br />
<br />
Debug výstup sa môže tiež zapisovať do súboru. Inicializačný kód v unite LCLProc skontroluje, či sa v príkazovom riadku nenachádza parameter '--debug-log=<file>'. Pokiaľ sa nachádza, všetok debug výstup sa píše do súboru <file>.<br />
<br />
Pokiaľ sa v príkazovom riadku nenájde parameter '--debug-log', LCLProc skontroluje systémovú premennú xxx_debuglog (xxx je názov programu bez prípony, čiže napr. pre Lazarus hľadá premennú lazarus_debuglog). Pokiaľ takáto systémová premenná existuje, debug výstup sa zapíše do nastaveného súboru. Napr. nastavením:<br />
<br />
set lazarus_debuglog=c:\lazarus\debug.txt<br />
<br />
sa bude debug výstup programu Lazarus zapisovať do súboru c:\lazarus\debug.txt.<br />
<br />
Keďže táto funkcionalita je implementovaná v unite LCLProc, je prístupná pre každú aplikáciu, ktorá túto unitu používa.<br />
<br />
;Debugovanie Lazarusu : Najmä pre používateľov Windows: Pokiaľ chcete, aby Lazarus vypisoval do konzoly, pridajte {$APPTYPE console} do súboru lazarus.pp a prekompilujte Lazarus.<br />
<br />
=== Aký je význam prípon rôznych súborov, ktoré Lazarus používa? ===<br />
<br />
[[Lazarus Tutorial/sk#The Lazarus files]] uvádza niektoré príklady. Tu je stručný zoznam:<br />
<br />
; <code>*.lpi</code> : Lazarus Project Information file - informácie o projekte (uložený v XML; obsahuje nastavania špecifické pre konkrétny projekt)<br />
; <code>*.lpr</code> : Lazarus Program file; obsahuje pascalovský zdrojový kód hlavného programu<br />
; <code>*.lfm</code> : Lazarus Form file; obsahuje vlastnosti všetkých objektov na formulári (uložený v Lazarovskom špeciálnom textovom formáte; akcie sú uložené v Pascale v príslušnom <code>.pas</code> súbore)<br />
; <code>*.pas</code> or <code>*.pp</code> : Programová jednotka (Unit) v Pascale (obvykle zodpovedá nejakému formuláru uloženému v súbore <code>*.lfm</code>)<br />
; <code>*.lrs</code> : Lazarus Resource file (toto je generovaný súbor, nemýľte si ho s resource súbormi Windows). <br />
: Súbor sa dá vytvoriť pomocou pomôcky lazres (v adresári Lazarus/Tools) príkazom: lazres myfile.lrs myfile.lfm<br />
; <code>*.ppu</code> : Compiled unit (skompilovaná unita)<br />
; <code>*.lpk</code> : Lazarus package information file - informácie o balíčku (uložený v XML; obsahuje nastavenia špecifické pre konkrétny balíček)<br />
<br />
=== Opravil som chybu/vylepšil som Lazarus. Ako dostanem moje zmeny do oficiálnych zdrojových kódov? ===<br />
Vytvorte záplatu a pošlite ju vývojarom. Viac detailov v [[Creating A Patch]].<br />
<br />
=== Pokiaľ deklarujem textový súbor ako ''var mytext: text;'', dostanem chybu "Unit1.pas(32,15) Error: Error in type definition". Ako to opraviť? ===<br />
Trieda TControl má vlastnosť [[doc:lcl/controls/tcontrol.text.html|Text]]. V metóde formulára sa teda nepoužije typ [[doc:rtl/system/text.html|Text]] zo systémovej unity. Môžete použiť typ [[doc:rtl/system/textfile.html|TextFile]], ktorý je len aliasom typu Text, alebo môžete pridať meno unitu do definície typu.<br />
var<br />
MyTextFile: TextFile;<br />
MyText: System.Text;<br />
Rovnaký problém s duplicitnými menami nastáva pri priraďovaní (assign) a zatváraní (close) textových súborov. TForm má vlastnosť ''assign'' a metódu [[doc:lcl/forms/tcustomform.close.html|Close]]. Môžete použiť [[doc:rtl/objpas/assignfile.html|AssignFile]] a [[doc:rtl/objpas/closefile.html|CloseFile]] ale pridať meno unity ''System''.<br />
<br />
=== Dostávam chybu pri tlačení pomocou Printer.BeginDoc ===<br />
Unita Printers musí byť pridaná v uses sekcii.<br />
<br />
Balíček Printer4Lazarus musí byť pridaný do závislostí projektu. Kliknite na: Project | Project Inspektor | Add | New Requirement | Package Name<br />
<br />
Pokiaľ balíček Printer4Lazarus nie je v zozname, musí sa doinštalovať. Balíček je súšasťou inštalácie Lazara a nájdete ho v adresári [adresár kde je lazarus nainštalovaný]\components\printers.<br />
<br />
Tento istý postup funguje aj v prípade chyby, ktorú môžete dostať pri použití Printer.Printers<br />
<br />
=== Prečo je TForm.ClientWidth/ClientHeight rovnaká ako TForm.Width/Height? ===<br />
TForm.Width/Height neobsahujú okraj formulára (narozdiel od napr. Delphi), pretože je nemožné zístiť jeho veľkosť na všetkých platformách.<br />
<br />
V prípade, že sa nájde spolahlivý spôsob, ako zistiť velkosť okraju, toto bude v budúcnosti opravené.<br />
<br />
=== Ako sa môžem stať vývojarom Lazara a získať prístup k menežmentu SVN a bug-trackeru? ===<br />
Tak po prvé: Najprv sa o Lazarovi musíte veľa naučiť a ukázať vaše vedomosti a zručnosti. Začnite čítanim [[Lazarus_Documentation|wiki článkov]], prečítajte si zdrojový kód Lazara, opravte niekoľko chýb a keď si myslíte, že ste pripravení, kontaktujte vývojarov na [http://www.mail-archive.com/lazarus@miraclec.com mailing liste].<br />
<br />
== Kde je definované ... ? ==<br />
<br />
=== Virtual key constants ===<br />
Virtual key constants sú definované v LCLType. Pridajte LCLtype do <b>uses</b> sekcie.<br />
<br />
== Používame IDE ==<br />
<br />
=== Ako sa používa doplňovanie identifikátorov? ===<br />
Doplňovanie identifikátorov vyvoláte stlačením kláves [ctrl][medzera].<br />
V menu ''Environment | Editor Options | Code Tools | Automatic Features'' môžete nastaviť, ako dlho má trvať, kým sa doplňovanie identifikátorov objaví automaticky.<br />
<br />
== Linux ==<br />
<br />
=== Ako môžem pod Linuxom debugovať bez použitia IDE? ===<br />
<br />
Po prvé, potrebujete debugger. gdb je štandardným debuggerom pod linuxom a existuje k nemu veľa grafických frontendov. Najobvyklejším je ddd, ktorý je aj súčasťou väčšiny distribúcii. Na skompilovanie Lazara a LCL s debug-information a jeho spustenie v debug móde použite nasledovné príkazy:<br />
<br />
$ make clean; make OPT=-dDEBUG<br />
$ ddd lazarus<br />
<br />
Avšak pozor, ddd nie je až také konfortné, ako debugger vstavaný do Lazara. Najmä v prípade, keď si chcete nechat zobraziť obsah premennej, nezabúdajte, že ddd/gdb je narozdiel od Pascalu case-sensitívne (rozlišuje veľké a malé písmená). Z tohoto dôvodu, názvy všetkých premenných je nutné zadávať veľkými písmenami. Viac informácií sa dočítate v manuáloch k FPC.<br />
<br />
=== Už viem debugovať, ale ddd nevie nájsť moje zdrojáky alebo vypisuje, že neobsahujú žiaden kód. Prečo? ===<br />
<br />
Toto je problém spôsobený zle nastavenými cestami. Vyhnete sa mu nasledovným spôsobom<br />
<br />
* V ddd menu použite príkaz "Change directory" (Zmeň adresár) a nastavte adresár, kde sa nachádzajú vaše zdrojové kódy. Nevýhodou tohoto riešenia je, že teraz nemôžete debugovať zdrojové kódy programu, s ktorým ste štartovali (napr. lazarus). Preto je niekedy nevyhnutné meniť adresár viac krát.<br />
* V ddd choďte do [Edit] [gdb-settings] a nastavte správne search-path (cesta vyhľadávania)<br />
* Vytvorte súbor $(HOME)/.gdbinit s obsahom:<br />
directory /your/path/to/lazarus<br />
directory /your/path/to/lazarus/lcl<br />
directory /your/path/to/lazarus/lcl/include<br />
<br />
=== Pri linkovaní dostávam chybu, že /usr/bin/ld nemôže nájsť -l<knižnica> ===<br />
<br />
; '''Distribúcie založené na balíčkoch''' : Je nutné nainštalovať balíčky, ktoré obsahujú súbory lib<knižnica>.so alebo lib<knižnica>.a. Dynamické knižnice pod linuxom majú príponu .so, statické príponu .a. V niektorých linuxových distribúciách po nainštalovaní balížku obrahujúcom knižnicu, je nutné tiež nainštalovať vývojársky balíček (obvykle má názov <baliček>-dev).<br />
: Niektoré distribúcie majú príkazy, ktoré umožni nájsť balíček, ktorý obsahuje nejaký súbor:<br />
: '''Mandriva'''<br />
<br />
[]$ urpmf lib<knižnica>.so<br />
<br />
:vypíše zoznam všetkých balíčkov obsahujúcich súbor lib<knižnica>.so, nainštalovať musíte ten končiaci na -devel<br />
<br />
: '''Debian'''<br />
<br />
[]$ apt-file search lib<knižnica>.so<br />
<br />
:vypíše zoznam všetkých balíčkov obsahujúcich súbor lib<knižnica>.so, nainštalovať musíte ten končiaci na -dev<br />
<br />
<br />
<br />
; '''Distribúcie založené na zdrojových kódoch alebo manuálne kompilované''' : Ubezpečte sa, že súbor lib<knižnica>.a sa nachádza na ceste (systémová premenná PATH), a že je správnej verzie. Aby linker našiel správnu dynamickú knižnicu, vytvorte symlink nazvaný lib<knižnica>.so, do lib<knižnica><verzia>-x,y.so ak je to potrebné.<br />
<br />
; '''FreeBSD''' : Rovnaký postup ako vyššie, a okrem toho skontrolujte, či máte -Fl/usr/local/lib v súbore fpc.cfg. Nezabúdajte, že balíčky pre GTK 1.2 sa vo FreeBSD nazývajú "gtk12".<br />
<br />
[]# cd /usr/local/lib && ln -s libglib-12.so libglib12.so<br />
[]# cd /usr/X11R6/lib && ln -s libgtk-12.so libgtk12.so<br />
[]# cd /usr/X11R6/lib && ln -s libgdk-12.so libgdk12.so<br />
<br />
<br />
; '''NetBSD''' : Rovnaký postup ako pri distribúciach založených na zdrojových kódoch, a okrem toho skontrolujte, či máte Fl/usr/local/lib v súbore fpc.cfg.<br />
<br />
=== Ako skonvertujem projekt z Kylix 2 do Lazara? ===<br />
Prakicky veľmi podobne, ako pri konverzii z Kylixu do Delphi/VCL.<br />
<br />
LCL (Lazarus Component Library) sa snaží byť čo najviac kompatibilná s VCL (Visual Component Library) z Delphi. Kylix CLX sa snaží byť kompatibilný s knižnicami QT.<br />
<br />
Základné tipy:<br />
* Premenujte všetky použité CLX unity (napr. QForms, QControls, QGraphics, ...), do ich VCL podoby: Forms, Controls, Graphics, ...<br />
* Pridajte LResources do každej uses sekcie zdrojáku každého formulára<br />
* Premenujte alebo skopírujte všetky súbory .xfm na .lfm.<br />
* Premenujte alebo skopírujte všetky súbory .dpr na .lpr.<br />
* Pridajte "Interfaces" do uses sekcie .lpr súboru.<br />
* Odstráňte direktívu {$R *.res}<br />
* Odstráňte direktívu {$R *.xfm}<br />
* Pridajte direktívu {$mode objfpc}{$H+} alebo {$mode delphi}{$H+} do všetkých .pas a .lpr súborov<br />
* Pridajte inicializačnú sekciu na koniec každého zdroj. kódu formulára a pridajte include direktívu pre .lrs súbor:<br />
initialization<br />
{$I unit1.lrs}<br />
:.lrs súbor vytvoríte napríklad pomôckou lazres v adresári lazares/tools/lazres.<br />
:Napr: ./lazres unit1.lrs unit1.lfm<br />
* Opravte rozdiely. LCL zatiaľ nepodporuje všetky vlastnosti VCL, a CLX nie je s VCL úplne kompatibilná.<br />
* V záujme čo najväčšej platformovej nezávislosti, odstránte závislosti na unite libc a nahraďte ich FPC unitami ako baseunix/unix. Toto je nevyhnutné, pokiaľ chcete kompilovať pre iné platformy ako linux/x86.<br />
<br />
=== When compiling lazarus the compiler can not find a unit. e.g.: gtkint.pp(17,16) Fatal: Can't find unit GLIB ===<br />
<br />
1. Check a clean rebuild: do a 'make clean all'<br />
<br />
2. Check if the compiler has the correct version (2.0.0 or higher)<br />
<br />
3. Check if the compiler is using the right config file. The normal installation creates /etc/fpc.cfg. But fpc also searches for ~/.ppc386.cfg, ~/.fpc.cfg, /etc/ppc386.cfg and it uses only the first it finds.<br />
<br />
:'''Hint:''' You can see which config file is used with 'ppc386 -vt bogus'<br />
:Remove any ppc386.cfg as it is really obsolete.<br />
<br />
4. Check if the config file (/etc/fpc.cfg) contains the right paths to your fpc libs. There must be three lines like this:<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*<br />
:The first part of these paths (/usr/lib/fpc) depends on your system. On some systems this can be for example /usr/local/lib/fpc/... .<br />
:'''Hint:''' You can see your searchpaths with 'ppc386 -vt bogus'<br />
<br />
5. Check that the config file (/etc/fpc.cfg) does not contain search paths to the lcl source files (.pp, .pas):<br />
forbidden: -Fu(lazarus_source_directory)/lcl<br />
forbidden: -Fu(lazarus_source_directory)/lcl/interfaces/gtk<br />
:If you want to add the lcl for all your fpc projects, make sure that the two paths look like the following and are placed after the above fpc lib paths:<br />
-Fu(lazarus_source_directory)/lcl/units/$fpctarget<br />
-Fu(lazarus_source_directory)/lcl/units/$fpctarget/gtk<br />
<br />
6. Check if the missing unit (glib.ppu) exists in your fpc lib directory. For example the gtk.ppu can be found in /usr/lib/fpc/$version/units/i386-linux/gtk/. If it does not exists, the fpc lib is corrupt and should be reinstalled.<br />
<br />
7. Check if the sources are in a NFS mounted directory. In some cases the NFS updates created files incorrectly. Please, try to move the sources into a non NFS directory and compile there.<br />
<br />
=== I have installed the binary version, but when compiling a simple project, lazarus gives: Fatal: Can't find unit CONTROLS ===<br />
<br />
Probably you are using a newer fpc package, than that used for building the<br />
lazarus binaries. The best solution is to download the sources and compile<br />
lazarus manually. You can download the source snapshot or get the source<br />
via svn:<br />
<br />
$ bash<br />
$ svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
$ cd lazarus<br />
$ make clean all<br />
<br />
Make sure that lazarus get the new source directory:<br />
Environment->General Options->Files->Lazarus Directory Top<br />
<br />
===Lazarus compiles, but linking fails with: libgdk-pixbuf not found===<br />
Either install the gdk-pixbuf library for gtk1.x or disable the use:<br />
<br />
Where to find the gdk-pixbuf library:<br />
<br />
RPMs:<br />
http://rpmfind.net/linux/rpm2html/search.php?query=gdk-pixbuf&submit=Search+...&system=&arch=<br />
<br />
Debian packages:<br />
libgdk-pixbuf-dev<br />
<br />
Sources:<br />
ftp://ftp.gnome.org/pub/gnome/unstable/sources/gdk-pixbuf/<br />
<br />
<br />
How to disable the use in lazarus: In Tools->Configure "Build Lazarus" add the option<br />
'-dNoGdkPixBufLib'<br />
or at command line:<br />
"make clean all OPT=-dNoGdkPixBufLib".<br />
<br />
===I have SuSE and I get /usr/bin/ld: cannot find -lgtk Error: Error while linking===<br />
SuSE installs the gtk devel libs under /opt/gnome/lib (or /opt/gnome/lib64 for 64 bits), which is not in<br />
the standard lib path. Simply add it to your /etc/fpc.cfg.<br />
(-Fl/opt/gnome/lib).<br />
<br />
===Lazarus crashes with runtime error 211 after I installed a component===<br />
After I installed a component, Lazarus crashes with the following message:<br />
Threading has been used before cthreads was initialized.<br />
Make cthreads one of the first units in your uses clause.<br />
Runtime error 211 at $0066E188<br />
How can I fix this?<br />
<br />
Your freshly installed component is using threads. Fpc on *nix doesn't automatically include threading support, but it must be intialized. This initialization is done in the cthreads unit. Every application using the component needs to add this unit to the uses clause of the main program. Lazarus itself is no exception. This can be done in two ways:<br />
<br />
1) Change the source of ide/lazarus.pp: add the cthreads as first unit to the uses clause, so that is looks like this:<br />
uses<br />
//cmem,<br />
cthreads, <br />
{$IFDEF IDE_MEM_CHECK}<br />
...<br />
and rebuild lazarus.<br />
<br />
2) In order to avoid modifying lazarus.pp file, a fpc compiler option could be used. Once package that uses threads has been compiled, open menu Tools->Configure "build Lazarus". Configure "build Lazarus" dialog will be shown, in field "Options:" type -Facthreads and then press "OK" button. The next step is to install the package. Lazarus will be built with option -Facthreads which means that it will treat main program as if unit cthreads where first in uses clause. <br />
<br />
''Hint:'' Maybe your old (non-crashing) lazarus executable is stored as lazarus.old in the same directory as the crashing lazarus executable.<br />
<br />
===When I run a program with threads I get runtime error 232===<br />
The complete error message is:<br />
This binary has no thread support compiled in.<br />
Recompile the application with a thread-driver in the program uses<br />
clause before other units using thread.<br />
Runtime error 232<br />
'''Solution''': Add cthreads as first unit to the uses clause of your main program, usually the .lpr-file.<br />
<br />
===I have Ubuntu Breezy and my fonts in Lazarus IDE look too big===<br />
If Lazarus is compiled with Gtk1.2, the settings in Gnome Preferences/Font don't have any effect as<br />
they are related to Gtk2.<br />
You could try this solution:<br />
Create a file named .gtkrc.mine in your home directory (if it's not already there) and add<br />
these lines to it:<br />
<br />
<pre><br />
style "default-text" {<br />
fontset = "-*-arial-medium-r-normal--*-100-*-*-*-*-iso8859-1,\<br />
-*-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"<br />
}<br />
<br />
class "GtkWidget" style "default-text"<br />
</pre><br />
<br />
===How can I compile a program for Gtk2?===<br />
<br />
At the moment, the Gtk2 compiled IDE is a little unstable, but you can compile software for Gtk2 using the Gtk1 IDE.<br />
<br />
To start with recompile LCL for Gtk2. Go to the menu "Tools"->"Configure Build Lazarus" and set LCL to clean+build and everything else to none.<br />
<br />
Now click Ok and go to the menu "Tools"->"Build Lazarus"<br />
<br />
Now you can compile your software with Gtk2 going on the Compiler options and changing the widgetset to Gtk2.<br />
<br />
== Windows ==<br />
<br />
=== When I cycle the compiler, I get:The name specified is not recognized as an internal or external command, operable program or batch file.>& was unexpected at this time. ===<br />
<br />
In the compiler dir exists an OS2 scriptfile named make.cmd. NT sees this also<br />
as a script file, so remove it since on NT we don't need it.<br />
<br />
=== When I cycle the compiler, I get: make[3]: ./ppc1.exe: Command not found ===<br />
<br />
I don't know why but somehow make has lost its path. Try to cycle with a<br />
basedir set like: make cycle BASEDIR=your_fpc_source_dir_herecompiler<br />
<br />
=== When I try to make Lazarus I get:===<br />
====make.exe: * * * interfaces: No such file or directory (ENOENT). Stop.make.exe: * * * [interfaces_all] Error 2 ====<br />
You need to upgrade your make.<br />
<br />
====makefile:27: *** You need the GNU utils package to use this Makefile. Stop.====<br />
Make sure you didn't install FPC in a path with spaces in the name. The<br />
Makefile doesn't support it.<br />
<br />
<br />
<br />
===Ako nastavím aplikáciu aby vyzerala ako XP ?===<br />
Ak máme program myprogram.exe vytvoríme súbor nazvaný myprogram.exe.manifest a skopírujeme doň nasledujúci text:<br />
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><br />
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><br />
<assemblyIdentity processorArchitecture="*" version="1.0.0.0" type="win32" name="myprogram"/><br />
<description>programom</description><br />
<dependency><br />
<dependentAssembly><br />
<assemblyIdentity<br />
type="win32"<br />
name="Microsoft.Windows.Common-Controls"<br />
version="6.0.0.0"<br />
publicKeyToken="6595b64144ccf1df"<br />
language="*"<br />
processorArchitecture="*" /><br />
</dependentAssembly><br />
</dependency><br />
</assembly><br />
Voila! a máme XP vzhľad.<br />
<br />
===Pokiaľ spustím Windows aplikáciu vytvorenú v Lazarovi, zobrazí sa v DOSovom okne===<br />
Špecifikujte parameter -WG (Windows GUI) v príkazovom riadku compilera alebo v Lazarovi skontrolujte, či je zaškrtnuté políčko Windows GUI v Project menu | Compiler Options | Linking | target OS Specific options.<br />
<br />
== Licencie ==<br />
<br />
=== Možem v Lazarovi vytvárať komerčné aplikácie? ===<br />
Áno, LCL je chránená licenciou LGPL s výnimkou, ktorá vám imožňuje ju staticky linkovať bez nutnosti zverejnovať zdrojový kód vašej aplikácie. Zmeny a vylepšenia v LCL musia byť distribuované so zdrojovým kódom. Lazarus a Lazarus IDE sú chránené licenciou GPL.<br />
<br />
=== Why are some components restricted from usage in commercial application ? ===<br />
<br />
Lazarus comes with additional components, that were developed by third parties. Those are under various other Licenses. If you wish to use them you need to see the License within the source files of those packages.<br />
Most of those 3rd party components are in the directory "components".<br />
<br />
=== How do I know if a Component is part of the LCL ? ===<br />
<br />
All LCL units are in the directory "lcl". A List of units belonging to the LCL can be found here http://lazarus-ccr.sourceforge.net/docs/lcl/ . If you code uses units not listed on this page, you may have used a component that is not part of the LCL.<br />
<br />
=== Môžem vytvárať komerčné rozšírenia (plug-in) pre Lazarus? ===<br />
Áno, časť IDE s názvom IDEIntf je chránená licenciou LGPL s rovnakou výnimkou, čiže nie ste nútený licencovať váš plug-in alebo vývojársky balíček pod GPL. Môžete si tiež vyberať plug-iny pod akoukolvek licenciou, nie-GPL plug-iny sú teda povolené. Pozor ale, nie je dovolené distribuovať predkompilovaného Lazara staticky zlinkovaného s týmito nie-GPL plug-inmi.<br />
<br />
== Contributors and Comments ==<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusFaq version].<br />
<br />
<br />
{{AutoCategory}}<br />
[[Category:Lazarus/sk]]<br />
[[Category:FAQs/sk]]</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation_Editor/sk&diff=97741Lazarus Documentation Editor/sk2015-11-09T15:38:01Z<p>Trsek: /* Malá poznámka */</p>
<hr />
<div>{{Lazarus Documentation Editor}}<br />
<br />
== Úvod ==<br />
<br />
Dôležitou časťou Lazarus, ktorá stále chýba je dokumentácia. Na pomoc s vytváraním tejto dokumentácie bol vyvinutý nástroj. Táto stránka popisuje prácu s ním.<br />
Pre označenie základného adresára v tomto dokumente je použité '''[$LazDir]''', takže pri čítaní si to nahraďte adresárom, v ktorom je Lazarus nainštalovaný.<br />
<br />
== Prečo ==<br />
Prvou výhodou tohoto projektu je sprístupniť súbory online nápovedy. Aby bola nápoveda platformovo nezávislá začali sme s tvorbou XML súborov pre každú jednodtku použitú v Lazarus. Zatiaľ bolo začaté len s dialogs.pp a buttons.pp.<br />
<br />
Tieto XML súbory budú potom použité pre vytvorenie HTML stránok, ktorú budú prístupné cez Internet na [http://lazarus-ccr.sourceforge.net/docs/lcl/ stránke dokumentácie]. Nakoniec bude vytvorená integrovaná nápoveda, znova pomocou týchto XML súborov.<br />
<br />
== Začiatok ==<br />
Ako už bolo spomenuté, pre zachovanie platformovej nezávislosti je použité XML. Aktuálnu dokumentáciu nájdete v [$LazDir]/docs/xml/. Zatiaľ tam sú, v adresári lcl, väčšinou len kostrové súbory. XML súbory, ktoré sú v tomto adresári boli automaticky vytvorené a pre použitie ich treba prispôsobiť.<br />
<br />
Takže teraz, keď už viete kde máte hľadať súbory, poďme sa pozrieť na nástroj pre ich vytvorenie/úpravu.<br />
<br />
=== Nástroj ===<br />
"'''lazde'''" je nástroj pre úpravu xml súborov, ale možno ho použiť aj na generovanie základných súborov zo zdrojových kódov a, pomocou externého nástroja, aj na generovanie HTML verzie dokumentácie. Príklad výsledku posledného nástroja môžete vidieť [http://lazarus-ccr.sourceforge.net/docs/lcl/index.html na tejto stránke], ako časť dokumentácie.<br />
Keďže nie je poskytovaná kompilovaná verzia '''lazde''', musíte si ju urobiť sami.<br />
<br />
Zdrojové kódy "'''lazde'''" sú v [$LazDir]/doceditor/.<br />
Keď tento program spustíte a otvoríte [$LazDir]/docs/xml/lcl/dialogs.xml stretnete sa touto obrazovkou<br />
<center>[[Image:Lazdemain.png]]</center><br />
<br />
=== Práca ===<br />
<br />
[[Image:Lazdeelements.png|right]]<br />
<br />
Otvorenie uzla "Packages" zobrazí uzol "LCL", ktorý obsahuje uzol "Dialogs". Zvolením posledne menovaného uzla zaplní dolný treeview prvkami. Tieto prvky predstavujú Konštanty (''Constants''), Typy (''Types'') a triedy (''Classes'') definované v unite Dialogs.pp. Použité unity sú pridané rovnako ako uzly. <br />
Ďalšie uzly sú pridané pre vlastnosti (''properies'') tried, parametre funkcií a tak ďalej.<br />
<br />
Zvolením uzla v ľavom dolnom treeview vytvorí obsah daného uzla v pravej časti okna.<br />
<br />
Keď navštívite [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/index-4.html túto stránku], uvidíte prehľad tried definovaných v unite "dialogs". Za každou triedou uvidíte riadok textu. Tento text pochádza z "short" editbox z lazde.<br />
<br />
Pod "short" editbox, je memofield, do ktorého môžete zadať viac vypracovaný popis komponentu alebo vlastnosti.<br />
<br />
Poznámka: Ak chcete vložiť koniec ridku použite <nowiki><br/></nowiki><br />
<br />
Nasledujú Chyby (''Errors''), Pozrieť aj (''See also'') a Príklad kódu (''Example code File'').<br />
<br />
"Errors" môžu byť použité pre popis chýb vyvolaných funkciou, ak parametre majú hodnoty, ktoré sú mimo rozsah. Pre príklad pozrite [http://lazarus-ccr.sourceforge.net/docs/rtl/dateutils/recodeyear.html túto stránku].<br />
<br />
Hneď pod "See also" a "Example code File" sú tri tlačítka, ktoré dovoľujú pridať alebo odstrániť odkazy na iné stránky alebo príklady kódu.<br />
<br />
== Výsledok ==<br />
<br />
Pozrite sa na výsledok popisu [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/inputquery.html InputQuery].<br />
Na vrchu stránky môžete vidieť o čom stránka je, v tomto prípade "Use InputQuery to show a dialog box to get some input from the user". Prvý riadok textu je to, čo ste zadali do "Short" editbox v lazde.<br />
<br />
nasleduje deklarácia tejto funkcie v zdrojovom kóde. Časť deklarácie je vytvorená pomocou html-builder a je vzatá z zo zdrojového kódu. Pretože sú dve verzie tejto funkcie, zdrojová pouícia vraví 0. <br />
<br />
Potom sú dané argumenty. Keď otvoríte uzol InputQuery v lazde, uvidíte všetky argumenty označené ako podriadené uzly. Text, zobrazený za argumentami je opäť to, čo bolo zadané v "Short" editbox, keď vybraný príslušný príslušný podriadený uzol.<br />
<br />
Ako štvrtý odsek je zobrazený výsledok funkcie. Tu zobrazený text je možné zadať rovnako ako pri argumentoch.<br />
<br />
Nakoniecje zobrazený popis, to je text napísaný v okne popisu v lazde.<br />
<br />
== Doplnenie nových unít ==<br />
<br />
Samozrejme, že je potrebné dokumentovať i ďalšie unity. Ak sa jedná, napríklad o unitu nejakého balíčka, pravdepodobne ešte neexistuje počiatočný XML súbor. Potom treba začať od začiatku a '''lazde''' ponúka funkciu, pomocou ktorej môžete priamo začať. Jednoducho použite '''File -> New''' a objaví sa nasledujúca obrazovka:<br />
<center>[[Image:Lazdenewdocfromfile.png]]</center><br />
<br />
Začnite zadaním mena balíčka. Všetky jednotky, ktoré chcete tohoto balíčka musia mať rovnaké meno balíčka. Potom zadajte meno príslušného zdrojového súboru, môžete ho tiež nájsť pomocou prehľadávania súborového systému. Nakoniec zadajte meno výstupného súboru (nezabudnite na príponu xml!) a stlačte OK.<br />
<br />
'''lazde''' vygeneruje základ pre dokumentáciu. Vygenerovaný súbor bude otvorený a treeview bude zaplnený všetkými unitami, triedami, typmi, funkciami atď, zo zadaného zdrojového súboru a ste pripravení začať dokumentovať novú časť Lazarus.<br />
<br />
Pozrite sa na [[LCL Documentation Roadmap]], aby ste videli, ktoré jednotky ešte treba zdokumentovať.<br />
<br />
Pre jednoduchú aktualizáciu súborov FPDoc, pri zmene unít Pascal, môžete použiť [[FPDoc Updater| aktualizátor FPDoc]].<br />
<br />
== Konečný výsledok ==<br />
<br />
Počas používania programu som zistil, že by bolo dobré vidieť ako sú informácie zobrazené v konečnom štádiu (ako prehliadateľný dokument). Pre tento účel '''lazde''' sprístupňuje nástroj pre vybudovanie všetkých potrebných HTML súborov.<br />
<br />
Tento nástroj možno spustiť z menu '''Extra -> Build''' a zobrazí sa Vám nasledujúca obrazovka:<br />
<center>[[Image:Lazdebuild1.png]]</center><br />
"Package" musí byť rovnaké ako meno, ktoré ste zadali pri vytváraní xml súborov. Ako "Format" zvoľte HTML. Do "Output" zadajte cestu, kde majú byť výsledné súbory uložené.<br />
Stlačte "Add all" a všetky dokumenty, na ktorých ste pracovali, budú pridané do projektu. Potom prejdite na nasledujúcu záložku<br />
<center>[[Image:Lazdebuild2.png]]</center><br />
a zadajte cestu k zdrojovým súborom.<br />
Po stlačení "Build" začne Váš HD rapotať a nakoniec sa v záložke "Build output" objaví nasledujúci výstup<br />
Building docs using command: fpdoc --package="LCL"<br />
--output="/home/matthijs/documentatie/LCL" --format=html --content <br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/buttons.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/comctrls.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/dialogs.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/controls.xml"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/buttons.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/comctrls.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/dialogs.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/controls.pp" <br />
<br />
FPDoc - Free Pascal Documentation Tool<br />
(c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther, sg@freepascal.org<br />
<br />
Writing 2788 pages...<br />
Done.<br />
Documentation successfully built.<br />
<br />
Keď vojdete do adresára, ktorý ste zadali ako "Output", uvidíte súbor index.html a (v tomto prípade 4) podadresáre. Otvorte index.html vo svojom prehliadači a pozrite si výstup celej svojej ťažkej práce na dokumentácii. Budete môcť následovať odkazy a prečítať tak všetko.<br />
<br />
Ak plánujete pokračovať v práci na dokumentácii tohoto balíčka, stlačte "Save" a uložte voľby budovania. Dostanete otázku na meno súboru a voľby budú uložené. Pri ďalšom generovaní HTML súborov ich len jednoducho načítate.<br />
<br />
== Odoslanie ==<br />
Keď budete so svojou prácou spokojní, asi ju budete chcieť zdieľať s komunitou Lazarus. Všetko, čo k tomu potrebujete je vytvoriť [[Creating A Patch/sk|patch]], zazipovať ho a poslať.<br />
<br />
== Malá poznámka ==<br />
Pamätajte na nasledujúce: lazde je stále vo vývoji. Je použiteľný, ale zatiaľ nie je úplne dokončený. Preto sa v ňom môžu objaviť chyby, ale budú odstránené.<br />
<br />
== Spolupracovníci a zmeny ==<br />
*Preložil --[[User:Slavko|Komunista]] 16:08, 30 December 2007 (CET)</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation_Editor/sk&diff=97740Lazarus Documentation Editor/sk2015-11-09T15:37:02Z<p>Trsek: /* Konečný výsledok */</p>
<hr />
<div>{{Lazarus Documentation Editor}}<br />
<br />
== Úvod ==<br />
<br />
Dôležitou časťou Lazarus, ktorá stále chýba je dokumentácia. Na pomoc s vytváraním tejto dokumentácie bol vyvinutý nástroj. Táto stránka popisuje prácu s ním.<br />
Pre označenie základného adresára v tomto dokumente je použité '''[$LazDir]''', takže pri čítaní si to nahraďte adresárom, v ktorom je Lazarus nainštalovaný.<br />
<br />
== Prečo ==<br />
Prvou výhodou tohoto projektu je sprístupniť súbory online nápovedy. Aby bola nápoveda platformovo nezávislá začali sme s tvorbou XML súborov pre každú jednodtku použitú v Lazarus. Zatiaľ bolo začaté len s dialogs.pp a buttons.pp.<br />
<br />
Tieto XML súbory budú potom použité pre vytvorenie HTML stránok, ktorú budú prístupné cez Internet na [http://lazarus-ccr.sourceforge.net/docs/lcl/ stránke dokumentácie]. Nakoniec bude vytvorená integrovaná nápoveda, znova pomocou týchto XML súborov.<br />
<br />
== Začiatok ==<br />
Ako už bolo spomenuté, pre zachovanie platformovej nezávislosti je použité XML. Aktuálnu dokumentáciu nájdete v [$LazDir]/docs/xml/. Zatiaľ tam sú, v adresári lcl, väčšinou len kostrové súbory. XML súbory, ktoré sú v tomto adresári boli automaticky vytvorené a pre použitie ich treba prispôsobiť.<br />
<br />
Takže teraz, keď už viete kde máte hľadať súbory, poďme sa pozrieť na nástroj pre ich vytvorenie/úpravu.<br />
<br />
=== Nástroj ===<br />
"'''lazde'''" je nástroj pre úpravu xml súborov, ale možno ho použiť aj na generovanie základných súborov zo zdrojových kódov a, pomocou externého nástroja, aj na generovanie HTML verzie dokumentácie. Príklad výsledku posledného nástroja môžete vidieť [http://lazarus-ccr.sourceforge.net/docs/lcl/index.html na tejto stránke], ako časť dokumentácie.<br />
Keďže nie je poskytovaná kompilovaná verzia '''lazde''', musíte si ju urobiť sami.<br />
<br />
Zdrojové kódy "'''lazde'''" sú v [$LazDir]/doceditor/.<br />
Keď tento program spustíte a otvoríte [$LazDir]/docs/xml/lcl/dialogs.xml stretnete sa touto obrazovkou<br />
<center>[[Image:Lazdemain.png]]</center><br />
<br />
=== Práca ===<br />
<br />
[[Image:Lazdeelements.png|right]]<br />
<br />
Otvorenie uzla "Packages" zobrazí uzol "LCL", ktorý obsahuje uzol "Dialogs". Zvolením posledne menovaného uzla zaplní dolný treeview prvkami. Tieto prvky predstavujú Konštanty (''Constants''), Typy (''Types'') a triedy (''Classes'') definované v unite Dialogs.pp. Použité unity sú pridané rovnako ako uzly. <br />
Ďalšie uzly sú pridané pre vlastnosti (''properies'') tried, parametre funkcií a tak ďalej.<br />
<br />
Zvolením uzla v ľavom dolnom treeview vytvorí obsah daného uzla v pravej časti okna.<br />
<br />
Keď navštívite [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/index-4.html túto stránku], uvidíte prehľad tried definovaných v unite "dialogs". Za každou triedou uvidíte riadok textu. Tento text pochádza z "short" editbox z lazde.<br />
<br />
Pod "short" editbox, je memofield, do ktorého môžete zadať viac vypracovaný popis komponentu alebo vlastnosti.<br />
<br />
Poznámka: Ak chcete vložiť koniec ridku použite <nowiki><br/></nowiki><br />
<br />
Nasledujú Chyby (''Errors''), Pozrieť aj (''See also'') a Príklad kódu (''Example code File'').<br />
<br />
"Errors" môžu byť použité pre popis chýb vyvolaných funkciou, ak parametre majú hodnoty, ktoré sú mimo rozsah. Pre príklad pozrite [http://lazarus-ccr.sourceforge.net/docs/rtl/dateutils/recodeyear.html túto stránku].<br />
<br />
Hneď pod "See also" a "Example code File" sú tri tlačítka, ktoré dovoľujú pridať alebo odstrániť odkazy na iné stránky alebo príklady kódu.<br />
<br />
== Výsledok ==<br />
<br />
Pozrite sa na výsledok popisu [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/inputquery.html InputQuery].<br />
Na vrchu stránky môžete vidieť o čom stránka je, v tomto prípade "Use InputQuery to show a dialog box to get some input from the user". Prvý riadok textu je to, čo ste zadali do "Short" editbox v lazde.<br />
<br />
nasleduje deklarácia tejto funkcie v zdrojovom kóde. Časť deklarácie je vytvorená pomocou html-builder a je vzatá z zo zdrojového kódu. Pretože sú dve verzie tejto funkcie, zdrojová pouícia vraví 0. <br />
<br />
Potom sú dané argumenty. Keď otvoríte uzol InputQuery v lazde, uvidíte všetky argumenty označené ako podriadené uzly. Text, zobrazený za argumentami je opäť to, čo bolo zadané v "Short" editbox, keď vybraný príslušný príslušný podriadený uzol.<br />
<br />
Ako štvrtý odsek je zobrazený výsledok funkcie. Tu zobrazený text je možné zadať rovnako ako pri argumentoch.<br />
<br />
Nakoniecje zobrazený popis, to je text napísaný v okne popisu v lazde.<br />
<br />
== Doplnenie nových unít ==<br />
<br />
Samozrejme, že je potrebné dokumentovať i ďalšie unity. Ak sa jedná, napríklad o unitu nejakého balíčka, pravdepodobne ešte neexistuje počiatočný XML súbor. Potom treba začať od začiatku a '''lazde''' ponúka funkciu, pomocou ktorej môžete priamo začať. Jednoducho použite '''File -> New''' a objaví sa nasledujúca obrazovka:<br />
<center>[[Image:Lazdenewdocfromfile.png]]</center><br />
<br />
Začnite zadaním mena balíčka. Všetky jednotky, ktoré chcete tohoto balíčka musia mať rovnaké meno balíčka. Potom zadajte meno príslušného zdrojového súboru, môžete ho tiež nájsť pomocou prehľadávania súborového systému. Nakoniec zadajte meno výstupného súboru (nezabudnite na príponu xml!) a stlačte OK.<br />
<br />
'''lazde''' vygeneruje základ pre dokumentáciu. Vygenerovaný súbor bude otvorený a treeview bude zaplnený všetkými unitami, triedami, typmi, funkciami atď, zo zadaného zdrojového súboru a ste pripravení začať dokumentovať novú časť Lazarus.<br />
<br />
Pozrite sa na [[LCL Documentation Roadmap]], aby ste videli, ktoré jednotky ešte treba zdokumentovať.<br />
<br />
Pre jednoduchú aktualizáciu súborov FPDoc, pri zmene unít Pascal, môžete použiť [[FPDoc Updater| aktualizátor FPDoc]].<br />
<br />
== Konečný výsledok ==<br />
<br />
Počas používania programu som zistil, že by bolo dobré vidieť ako sú informácie zobrazené v konečnom štádiu (ako prehliadateľný dokument). Pre tento účel '''lazde''' sprístupňuje nástroj pre vybudovanie všetkých potrebných HTML súborov.<br />
<br />
Tento nástroj možno spustiť z menu '''Extra -> Build''' a zobrazí sa Vám nasledujúca obrazovka:<br />
<center>[[Image:Lazdebuild1.png]]</center><br />
"Package" musí byť rovnaké ako meno, ktoré ste zadali pri vytváraní xml súborov. Ako "Format" zvoľte HTML. Do "Output" zadajte cestu, kde majú byť výsledné súbory uložené.<br />
Stlačte "Add all" a všetky dokumenty, na ktorých ste pracovali, budú pridané do projektu. Potom prejdite na nasledujúcu záložku<br />
<center>[[Image:Lazdebuild2.png]]</center><br />
a zadajte cestu k zdrojovým súborom.<br />
Po stlačení "Build" začne Váš HD rapotať a nakoniec sa v záložke "Build output" objaví nasledujúci výstup<br />
Building docs using command: fpdoc --package="LCL"<br />
--output="/home/matthijs/documentatie/LCL" --format=html --content <br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/buttons.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/comctrls.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/dialogs.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/controls.xml"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/buttons.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/comctrls.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/dialogs.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/controls.pp" <br />
<br />
FPDoc - Free Pascal Documentation Tool<br />
(c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther, sg@freepascal.org<br />
<br />
Writing 2788 pages...<br />
Done.<br />
Documentation successfully built.<br />
<br />
Keď vojdete do adresára, ktorý ste zadali ako "Output", uvidíte súbor index.html a (v tomto prípade 4) podadresáre. Otvorte index.html vo svojom prehliadači a pozrite si výstup celej svojej ťažkej práce na dokumentácii. Budete môcť následovať odkazy a prečítať tak všetko.<br />
<br />
Ak plánujete pokračovať v práci na dokumentácii tohoto balíčka, stlačte "Save" a uložte voľby budovania. Dostanete otázku na meno súboru a voľby budú uložené. Pri ďalšom generovaní HTML súborov ich len jednoducho načítate.<br />
<br />
== Odoslanie ==<br />
Keď budete so svojou prácou spokojní, asi ju budete chcieť zdieľať s komunitou Lazarus. Všetko, čo k tomu potrebujete je vytvoriť [[Creating A Patch/sk|patch]], zazipovať ho a poslať.<br />
<br />
== Malá poznámka ==<br />
Pamätajte na nasledujúce: lazde je stále vo vývoji. Je použiteľný, ale zatiaľ nei je úplne dokončený, Preto sa v ňom môžu objaviť, ale budú odstránené.<br />
<br />
== Spolupracovníci a zmeny ==<br />
*Preložil --[[User:Slavko|Komunista]] 16:08, 30 December 2007 (CET)</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation_Editor/sk&diff=97739Lazarus Documentation Editor/sk2015-11-09T15:35:19Z<p>Trsek: /* Doplnenie nových unít */</p>
<hr />
<div>{{Lazarus Documentation Editor}}<br />
<br />
== Úvod ==<br />
<br />
Dôležitou časťou Lazarus, ktorá stále chýba je dokumentácia. Na pomoc s vytváraním tejto dokumentácie bol vyvinutý nástroj. Táto stránka popisuje prácu s ním.<br />
Pre označenie základného adresára v tomto dokumente je použité '''[$LazDir]''', takže pri čítaní si to nahraďte adresárom, v ktorom je Lazarus nainštalovaný.<br />
<br />
== Prečo ==<br />
Prvou výhodou tohoto projektu je sprístupniť súbory online nápovedy. Aby bola nápoveda platformovo nezávislá začali sme s tvorbou XML súborov pre každú jednodtku použitú v Lazarus. Zatiaľ bolo začaté len s dialogs.pp a buttons.pp.<br />
<br />
Tieto XML súbory budú potom použité pre vytvorenie HTML stránok, ktorú budú prístupné cez Internet na [http://lazarus-ccr.sourceforge.net/docs/lcl/ stránke dokumentácie]. Nakoniec bude vytvorená integrovaná nápoveda, znova pomocou týchto XML súborov.<br />
<br />
== Začiatok ==<br />
Ako už bolo spomenuté, pre zachovanie platformovej nezávislosti je použité XML. Aktuálnu dokumentáciu nájdete v [$LazDir]/docs/xml/. Zatiaľ tam sú, v adresári lcl, väčšinou len kostrové súbory. XML súbory, ktoré sú v tomto adresári boli automaticky vytvorené a pre použitie ich treba prispôsobiť.<br />
<br />
Takže teraz, keď už viete kde máte hľadať súbory, poďme sa pozrieť na nástroj pre ich vytvorenie/úpravu.<br />
<br />
=== Nástroj ===<br />
"'''lazde'''" je nástroj pre úpravu xml súborov, ale možno ho použiť aj na generovanie základných súborov zo zdrojových kódov a, pomocou externého nástroja, aj na generovanie HTML verzie dokumentácie. Príklad výsledku posledného nástroja môžete vidieť [http://lazarus-ccr.sourceforge.net/docs/lcl/index.html na tejto stránke], ako časť dokumentácie.<br />
Keďže nie je poskytovaná kompilovaná verzia '''lazde''', musíte si ju urobiť sami.<br />
<br />
Zdrojové kódy "'''lazde'''" sú v [$LazDir]/doceditor/.<br />
Keď tento program spustíte a otvoríte [$LazDir]/docs/xml/lcl/dialogs.xml stretnete sa touto obrazovkou<br />
<center>[[Image:Lazdemain.png]]</center><br />
<br />
=== Práca ===<br />
<br />
[[Image:Lazdeelements.png|right]]<br />
<br />
Otvorenie uzla "Packages" zobrazí uzol "LCL", ktorý obsahuje uzol "Dialogs". Zvolením posledne menovaného uzla zaplní dolný treeview prvkami. Tieto prvky predstavujú Konštanty (''Constants''), Typy (''Types'') a triedy (''Classes'') definované v unite Dialogs.pp. Použité unity sú pridané rovnako ako uzly. <br />
Ďalšie uzly sú pridané pre vlastnosti (''properies'') tried, parametre funkcií a tak ďalej.<br />
<br />
Zvolením uzla v ľavom dolnom treeview vytvorí obsah daného uzla v pravej časti okna.<br />
<br />
Keď navštívite [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/index-4.html túto stránku], uvidíte prehľad tried definovaných v unite "dialogs". Za každou triedou uvidíte riadok textu. Tento text pochádza z "short" editbox z lazde.<br />
<br />
Pod "short" editbox, je memofield, do ktorého môžete zadať viac vypracovaný popis komponentu alebo vlastnosti.<br />
<br />
Poznámka: Ak chcete vložiť koniec ridku použite <nowiki><br/></nowiki><br />
<br />
Nasledujú Chyby (''Errors''), Pozrieť aj (''See also'') a Príklad kódu (''Example code File'').<br />
<br />
"Errors" môžu byť použité pre popis chýb vyvolaných funkciou, ak parametre majú hodnoty, ktoré sú mimo rozsah. Pre príklad pozrite [http://lazarus-ccr.sourceforge.net/docs/rtl/dateutils/recodeyear.html túto stránku].<br />
<br />
Hneď pod "See also" a "Example code File" sú tri tlačítka, ktoré dovoľujú pridať alebo odstrániť odkazy na iné stránky alebo príklady kódu.<br />
<br />
== Výsledok ==<br />
<br />
Pozrite sa na výsledok popisu [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/inputquery.html InputQuery].<br />
Na vrchu stránky môžete vidieť o čom stránka je, v tomto prípade "Use InputQuery to show a dialog box to get some input from the user". Prvý riadok textu je to, čo ste zadali do "Short" editbox v lazde.<br />
<br />
nasleduje deklarácia tejto funkcie v zdrojovom kóde. Časť deklarácie je vytvorená pomocou html-builder a je vzatá z zo zdrojového kódu. Pretože sú dve verzie tejto funkcie, zdrojová pouícia vraví 0. <br />
<br />
Potom sú dané argumenty. Keď otvoríte uzol InputQuery v lazde, uvidíte všetky argumenty označené ako podriadené uzly. Text, zobrazený za argumentami je opäť to, čo bolo zadané v "Short" editbox, keď vybraný príslušný príslušný podriadený uzol.<br />
<br />
Ako štvrtý odsek je zobrazený výsledok funkcie. Tu zobrazený text je možné zadať rovnako ako pri argumentoch.<br />
<br />
Nakoniecje zobrazený popis, to je text napísaný v okne popisu v lazde.<br />
<br />
== Doplnenie nových unít ==<br />
<br />
Samozrejme, že je potrebné dokumentovať i ďalšie unity. Ak sa jedná, napríklad o unitu nejakého balíčka, pravdepodobne ešte neexistuje počiatočný XML súbor. Potom treba začať od začiatku a '''lazde''' ponúka funkciu, pomocou ktorej môžete priamo začať. Jednoducho použite '''File -> New''' a objaví sa nasledujúca obrazovka:<br />
<center>[[Image:Lazdenewdocfromfile.png]]</center><br />
<br />
Začnite zadaním mena balíčka. Všetky jednotky, ktoré chcete tohoto balíčka musia mať rovnaké meno balíčka. Potom zadajte meno príslušného zdrojového súboru, môžete ho tiež nájsť pomocou prehľadávania súborového systému. Nakoniec zadajte meno výstupného súboru (nezabudnite na príponu xml!) a stlačte OK.<br />
<br />
'''lazde''' vygeneruje základ pre dokumentáciu. Vygenerovaný súbor bude otvorený a treeview bude zaplnený všetkými unitami, triedami, typmi, funkciami atď, zo zadaného zdrojového súboru a ste pripravení začať dokumentovať novú časť Lazarus.<br />
<br />
Pozrite sa na [[LCL Documentation Roadmap]], aby ste videli, ktoré jednotky ešte treba zdokumentovať.<br />
<br />
Pre jednoduchú aktualizáciu súborov FPDoc, pri zmene unít Pascal, môžete použiť [[FPDoc Updater| aktualizátor FPDoc]].<br />
<br />
== Konečný výsledok ==<br />
<br />
Počas používania programu som zistil, že by bolo dobré vidieť ako sú informácie zobrazené v konečnom štádiu (ako prehliadateľný dokument). Pre tento účel '''lazde''' sprístupňuje nástroj pre vybudovanie všetkých potrebných HTML súborov.<br />
<br />
Tento nástroj možno spustiť z menu '''Extra -> Build''' a zobrazí sa Vám nasledujúca obrazovka:<br />
<center>[[Image:Lazdebuild1.png]]</center><br />
"Package" musí byť rovnaké ako meno, ktoré ste zadali pri vytváraní xml súborov. Ako "Format" zvoľte HTML. Do "Output" zadajte cestu, kde majú byť výsledné súbory uložené.<br />
Stlačte "Add all" a všetky dokumenty, na ktorých ste pracovali, budú pridané do projektu. Potom prejdite na nasledujúcu záložku<br />
<center>[[Image:Lazdebuild2.png]]</center><br />
a zadajte cestu k zdrojovým súborom.<br />
Po stlačení "Build" začne Váš HD rapotať a nakoniec sa v záložke "Build output" obajví nasledujúci výstup<br />
Building docs using command: fpdoc --package="LCL"<br />
--output="/home/matthijs/documentatie/LCL" --format=html --content <br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/buttons.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/comctrls.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/dialogs.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/controls.xml"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/buttons.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/comctrls.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/dialogs.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/controls.pp" <br />
<br />
FPDoc - Free Pascal Documentation Tool<br />
(c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther, sg@freepascal.org<br />
<br />
Writing 2788 pages...<br />
Done.<br />
Documentation successfully built.<br />
<br />
Keď vojdete do adresára, ktorý ste zadali ako "Output", uvidíte súbor index.html a (v tomto prípade 4) podadresáre. Otvorte index.html vo svojom prehliadači a pozrite si výstup celej svojej ťažkej práce na dokentácii. Budete môcť nasledovať odkazy a prečítať tak všetko.<br />
<br />
Ak plánujete pokračovať v práci na dokumentácii tohoto balíčka, stlačte "Save" a uložte voľby budovania. Dostanete otázku na meno súboru a voľby budú uložené. Pri ďalšom generovaní HTML súborov ich len jednoducho načítate.<br />
<br />
== Odoslanie ==<br />
Keď budete so svojou prácou spokojní, asi ju budete chcieť zdieľať s komunitou Lazarus. Všetko, čo k tomu potrebujete je vytvoriť [[Creating A Patch/sk|patch]], zazipovať ho a poslať.<br />
<br />
== Malá poznámka ==<br />
Pamätajte na nasledujúce: lazde je stále vo vývoji. Je použiteľný, ale zatiaľ nei je úplne dokončený, Preto sa v ňom môžu objaviť, ale budú odstránené.<br />
<br />
== Spolupracovníci a zmeny ==<br />
*Preložil --[[User:Slavko|Komunista]] 16:08, 30 December 2007 (CET)</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation_Editor/sk&diff=97738Lazarus Documentation Editor/sk2015-11-09T15:34:23Z<p>Trsek: /* Prečo */</p>
<hr />
<div>{{Lazarus Documentation Editor}}<br />
<br />
== Úvod ==<br />
<br />
Dôležitou časťou Lazarus, ktorá stále chýba je dokumentácia. Na pomoc s vytváraním tejto dokumentácie bol vyvinutý nástroj. Táto stránka popisuje prácu s ním.<br />
Pre označenie základného adresára v tomto dokumente je použité '''[$LazDir]''', takže pri čítaní si to nahraďte adresárom, v ktorom je Lazarus nainštalovaný.<br />
<br />
== Prečo ==<br />
Prvou výhodou tohoto projektu je sprístupniť súbory online nápovedy. Aby bola nápoveda platformovo nezávislá začali sme s tvorbou XML súborov pre každú jednodtku použitú v Lazarus. Zatiaľ bolo začaté len s dialogs.pp a buttons.pp.<br />
<br />
Tieto XML súbory budú potom použité pre vytvorenie HTML stránok, ktorú budú prístupné cez Internet na [http://lazarus-ccr.sourceforge.net/docs/lcl/ stránke dokumentácie]. Nakoniec bude vytvorená integrovaná nápoveda, znova pomocou týchto XML súborov.<br />
<br />
== Začiatok ==<br />
Ako už bolo spomenuté, pre zachovanie platformovej nezávislosti je použité XML. Aktuálnu dokumentáciu nájdete v [$LazDir]/docs/xml/. Zatiaľ tam sú, v adresári lcl, väčšinou len kostrové súbory. XML súbory, ktoré sú v tomto adresári boli automaticky vytvorené a pre použitie ich treba prispôsobiť.<br />
<br />
Takže teraz, keď už viete kde máte hľadať súbory, poďme sa pozrieť na nástroj pre ich vytvorenie/úpravu.<br />
<br />
=== Nástroj ===<br />
"'''lazde'''" je nástroj pre úpravu xml súborov, ale možno ho použiť aj na generovanie základných súborov zo zdrojových kódov a, pomocou externého nástroja, aj na generovanie HTML verzie dokumentácie. Príklad výsledku posledného nástroja môžete vidieť [http://lazarus-ccr.sourceforge.net/docs/lcl/index.html na tejto stránke], ako časť dokumentácie.<br />
Keďže nie je poskytovaná kompilovaná verzia '''lazde''', musíte si ju urobiť sami.<br />
<br />
Zdrojové kódy "'''lazde'''" sú v [$LazDir]/doceditor/.<br />
Keď tento program spustíte a otvoríte [$LazDir]/docs/xml/lcl/dialogs.xml stretnete sa touto obrazovkou<br />
<center>[[Image:Lazdemain.png]]</center><br />
<br />
=== Práca ===<br />
<br />
[[Image:Lazdeelements.png|right]]<br />
<br />
Otvorenie uzla "Packages" zobrazí uzol "LCL", ktorý obsahuje uzol "Dialogs". Zvolením posledne menovaného uzla zaplní dolný treeview prvkami. Tieto prvky predstavujú Konštanty (''Constants''), Typy (''Types'') a triedy (''Classes'') definované v unite Dialogs.pp. Použité unity sú pridané rovnako ako uzly. <br />
Ďalšie uzly sú pridané pre vlastnosti (''properies'') tried, parametre funkcií a tak ďalej.<br />
<br />
Zvolením uzla v ľavom dolnom treeview vytvorí obsah daného uzla v pravej časti okna.<br />
<br />
Keď navštívite [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/index-4.html túto stránku], uvidíte prehľad tried definovaných v unite "dialogs". Za každou triedou uvidíte riadok textu. Tento text pochádza z "short" editbox z lazde.<br />
<br />
Pod "short" editbox, je memofield, do ktorého môžete zadať viac vypracovaný popis komponentu alebo vlastnosti.<br />
<br />
Poznámka: Ak chcete vložiť koniec ridku použite <nowiki><br/></nowiki><br />
<br />
Nasledujú Chyby (''Errors''), Pozrieť aj (''See also'') a Príklad kódu (''Example code File'').<br />
<br />
"Errors" môžu byť použité pre popis chýb vyvolaných funkciou, ak parametre majú hodnoty, ktoré sú mimo rozsah. Pre príklad pozrite [http://lazarus-ccr.sourceforge.net/docs/rtl/dateutils/recodeyear.html túto stránku].<br />
<br />
Hneď pod "See also" a "Example code File" sú tri tlačítka, ktoré dovoľujú pridať alebo odstrániť odkazy na iné stránky alebo príklady kódu.<br />
<br />
== Výsledok ==<br />
<br />
Pozrite sa na výsledok popisu [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/inputquery.html InputQuery].<br />
Na vrchu stránky môžete vidieť o čom stránka je, v tomto prípade "Use InputQuery to show a dialog box to get some input from the user". Prvý riadok textu je to, čo ste zadali do "Short" editbox v lazde.<br />
<br />
nasleduje deklarácia tejto funkcie v zdrojovom kóde. Časť deklarácie je vytvorená pomocou html-builder a je vzatá z zo zdrojového kódu. Pretože sú dve verzie tejto funkcie, zdrojová pouícia vraví 0. <br />
<br />
Potom sú dané argumenty. Keď otvoríte uzol InputQuery v lazde, uvidíte všetky argumenty označené ako podriadené uzly. Text, zobrazený za argumentami je opäť to, čo bolo zadané v "Short" editbox, keď vybraný príslušný príslušný podriadený uzol.<br />
<br />
Ako štvrtý odsek je zobrazený výsledok funkcie. Tu zobrazený text je možné zadať rovnako ako pri argumentoch.<br />
<br />
Nakoniecje zobrazený popis, to je text napísaný v okne popisu v lazde.<br />
<br />
== Doplnenie nových unít ==<br />
<br />
Samozrejme, že je potrebné dokumentovať i ďalšie unity. Ak sa jedná, napríklad o unitu nejakého balíčka, pravdepodobne ešte neexistuje počiatočný XML súbor. Potom treba začať od začiatku a '''lazde''' ponúka funkciu, pomocou ktorej môžete priamo začať. Jednoducho použite '''File -> New''' a objaví sa nasledujúca obrazovka:<br />
<center>[[Image:Lazdenewdocfromfile.png]]</center><br />
<br />
Začnite zadaním mena balíčka. Všetky jednotky, ktoré chcete tohoto balíčka musia mať rovnaké meno balíčka. Potom zadajte meno príslušného zdrojového súboru, môžete ho tiež nájsť pomocou prehľadávania súborového systému. Nakoniec zadajte meno výstupného súboru (nezabudnite na príponu xml!) a stlačte OK.<br />
<br />
'''lazde''' vygeneruje základ pre dokumentáciu. Vygenerovaný súbor bude otvorený a treeview bude zaplnený všetkými unitami, triedami, typmi, funkciami atď, zo zadaného zdrojového súboru a ste pripravení začať dokumentovať novú časť Lazarus.<br />
<br />
Pozrite sa na [[LCL Documentation Roadmap]], aby ste videli, ktoré jednotky ešte treba zdokumentovať.<br />
<br />
Pre jodnoduchú aktualizáciu súborov FPDoc, pri zmene unít Pascal, môžete použiť [[FPDoc Updater| aktualizátor FPDoc]].<br />
<br />
== Konečný výsledok ==<br />
<br />
Počas používania programu som zistil, že by bolo dobré vidieť ako sú informácie zobrazené v konečnom štádiu (ako prehliadateľný dokument). Pre tento účel '''lazde''' sprístupňuje nástroj pre vybudovanie všetkých potrebných HTML súborov.<br />
<br />
Tento nástroj možno spustiť z menu '''Extra -> Build''' a zobrazí sa Vám nasledujúca obrazovka:<br />
<center>[[Image:Lazdebuild1.png]]</center><br />
"Package" musí byť rovnaké ako meno, ktoré ste zadali pri vytváraní xml súborov. Ako "Format" zvoľte HTML. Do "Output" zadajte cestu, kde majú byť výsledné súbory uložené.<br />
Stlačte "Add all" a všetky dokumenty, na ktorých ste pracovali, budú pridané do projektu. Potom prejdite na nasledujúcu záložku<br />
<center>[[Image:Lazdebuild2.png]]</center><br />
a zadajte cestu k zdrojovým súborom.<br />
Po stlačení "Build" začne Váš HD rapotať a nakoniec sa v záložke "Build output" obajví nasledujúci výstup<br />
Building docs using command: fpdoc --package="LCL"<br />
--output="/home/matthijs/documentatie/LCL" --format=html --content <br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/buttons.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/comctrls.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/dialogs.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/controls.xml"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/buttons.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/comctrls.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/dialogs.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/controls.pp" <br />
<br />
FPDoc - Free Pascal Documentation Tool<br />
(c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther, sg@freepascal.org<br />
<br />
Writing 2788 pages...<br />
Done.<br />
Documentation successfully built.<br />
<br />
Keď vojdete do adresára, ktorý ste zadali ako "Output", uvidíte súbor index.html a (v tomto prípade 4) podadresáre. Otvorte index.html vo svojom prehliadači a pozrite si výstup celej svojej ťažkej práce na dokentácii. Budete môcť nasledovať odkazy a prečítať tak všetko.<br />
<br />
Ak plánujete pokračovať v práci na dokumentácii tohoto balíčka, stlačte "Save" a uložte voľby budovania. Dostanete otázku na meno súboru a voľby budú uložené. Pri ďalšom generovaní HTML súborov ich len jednoducho načítate.<br />
<br />
== Odoslanie ==<br />
Keď budete so svojou prácou spokojní, asi ju budete chcieť zdieľať s komunitou Lazarus. Všetko, čo k tomu potrebujete je vytvoriť [[Creating A Patch/sk|patch]], zazipovať ho a poslať.<br />
<br />
== Malá poznámka ==<br />
Pamätajte na nasledujúce: lazde je stále vo vývoji. Je použiteľný, ale zatiaľ nei je úplne dokončený, Preto sa v ňom môžu objaviť, ale budú odstránené.<br />
<br />
== Spolupracovníci a zmeny ==<br />
*Preložil --[[User:Slavko|Komunista]] 16:08, 30 December 2007 (CET)</div>Trsekhttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation_Editor/sk&diff=97737Lazarus Documentation Editor/sk2015-11-09T15:33:58Z<p>Trsek: /* Začiatok */</p>
<hr />
<div>{{Lazarus Documentation Editor}}<br />
<br />
== Úvod ==<br />
<br />
Dôležitou časťou Lazarus, ktorá stále chýba je dokumentácia. Na pomoc s vytváraním tejto dokumentácie bol vyvinutý nástroj. Táto stránka popisuje prácu s ním.<br />
Pre označenie základného adresára v tomto dokumente je použité '''[$LazDir]''', takže pri čítaní si to nahraďte adresárom, v ktorom je Lazarus nainštalovaný.<br />
<br />
== Prečo ==<br />
Prvou výhodou tohoto projektu je sprístupniť súbory online nápodvedy. Aby bola nápoveda platformovo nezávislá začali sme s tvorbou XML súborov pre každú jednodtku použitú v Lazarus. Zatiaľ bolo začaté len s dialogs.pp a buttons.pp.<br />
<br />
Tieto XML súbory budú potom použité pre vytvorenie HTML stránok, ktorú budú prístupné cez Internet na [http://lazarus-ccr.sourceforge.net/docs/lcl/ stránke dokumentácie]. Nakoniec bude vytvorená integrovaná nápoveda, znova pomocou týchto XML súborov.<br />
<br />
== Začiatok ==<br />
Ako už bolo spomenuté, pre zachovanie platformovej nezávislosti je použité XML. Aktuálnu dokumentáciu nájdete v [$LazDir]/docs/xml/. Zatiaľ tam sú, v adresári lcl, väčšinou len kostrové súbory. XML súbory, ktoré sú v tomto adresári boli automaticky vytvorené a pre použitie ich treba prispôsobiť.<br />
<br />
Takže teraz, keď už viete kde máte hľadať súbory, poďme sa pozrieť na nástroj pre ich vytvorenie/úpravu.<br />
<br />
=== Nástroj ===<br />
"'''lazde'''" je nástroj pre úpravu xml súborov, ale možno ho použiť aj na generovanie základných súborov zo zdrojových kódov a, pomocou externého nástroja, aj na generovanie HTML verzie dokumentácie. Príklad výsledku posledného nástroja môžete vidieť [http://lazarus-ccr.sourceforge.net/docs/lcl/index.html na tejto stránke], ako časť dokumentácie.<br />
Keďže nie je poskytovaná kompilovaná verzia '''lazde''', musíte si ju urobiť sami.<br />
<br />
Zdrojové kódy "'''lazde'''" sú v [$LazDir]/doceditor/.<br />
Keď tento program spustíte a otvoríte [$LazDir]/docs/xml/lcl/dialogs.xml stretnete sa touto obrazovkou<br />
<center>[[Image:Lazdemain.png]]</center><br />
<br />
=== Práca ===<br />
<br />
[[Image:Lazdeelements.png|right]]<br />
<br />
Otvorenie uzla "Packages" zobrazí uzol "LCL", ktorý obsahuje uzol "Dialogs". Zvolením posledne menovaného uzla zaplní dolný treeview prvkami. Tieto prvky predstavujú Konštanty (''Constants''), Typy (''Types'') a triedy (''Classes'') definované v unite Dialogs.pp. Použité unity sú pridané rovnako ako uzly. <br />
Ďalšie uzly sú pridané pre vlastnosti (''properies'') tried, parametre funkcií a tak ďalej.<br />
<br />
Zvolením uzla v ľavom dolnom treeview vytvorí obsah daného uzla v pravej časti okna.<br />
<br />
Keď navštívite [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/index-4.html túto stránku], uvidíte prehľad tried definovaných v unite "dialogs". Za každou triedou uvidíte riadok textu. Tento text pochádza z "short" editbox z lazde.<br />
<br />
Pod "short" editbox, je memofield, do ktorého môžete zadať viac vypracovaný popis komponentu alebo vlastnosti.<br />
<br />
Poznámka: Ak chcete vložiť koniec ridku použite <nowiki><br/></nowiki><br />
<br />
Nasledujú Chyby (''Errors''), Pozrieť aj (''See also'') a Príklad kódu (''Example code File'').<br />
<br />
"Errors" môžu byť použité pre popis chýb vyvolaných funkciou, ak parametre majú hodnoty, ktoré sú mimo rozsah. Pre príklad pozrite [http://lazarus-ccr.sourceforge.net/docs/rtl/dateutils/recodeyear.html túto stránku].<br />
<br />
Hneď pod "See also" a "Example code File" sú tri tlačítka, ktoré dovoľujú pridať alebo odstrániť odkazy na iné stránky alebo príklady kódu.<br />
<br />
== Výsledok ==<br />
<br />
Pozrite sa na výsledok popisu [http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/inputquery.html InputQuery].<br />
Na vrchu stránky môžete vidieť o čom stránka je, v tomto prípade "Use InputQuery to show a dialog box to get some input from the user". Prvý riadok textu je to, čo ste zadali do "Short" editbox v lazde.<br />
<br />
nasleduje deklarácia tejto funkcie v zdrojovom kóde. Časť deklarácie je vytvorená pomocou html-builder a je vzatá z zo zdrojového kódu. Pretože sú dve verzie tejto funkcie, zdrojová pouícia vraví 0. <br />
<br />
Potom sú dané argumenty. Keď otvoríte uzol InputQuery v lazde, uvidíte všetky argumenty označené ako podriadené uzly. Text, zobrazený za argumentami je opäť to, čo bolo zadané v "Short" editbox, keď vybraný príslušný príslušný podriadený uzol.<br />
<br />
Ako štvrtý odsek je zobrazený výsledok funkcie. Tu zobrazený text je možné zadať rovnako ako pri argumentoch.<br />
<br />
Nakoniecje zobrazený popis, to je text napísaný v okne popisu v lazde.<br />
<br />
== Doplnenie nových unít ==<br />
<br />
Samozrejme, že je potrebné dokumentovať i ďalšie unity. Ak sa jedná, napríklad o unitu nejakého balíčka, pravdepodobne ešte neexistuje počiatočný XML súbor. Potom treba začať od začiatku a '''lazde''' ponúka funkciu, pomocou ktorej môžete priamo začať. Jednoducho použite '''File -> New''' a objaví sa nasledujúca obrazovka:<br />
<center>[[Image:Lazdenewdocfromfile.png]]</center><br />
<br />
Začnite zadaním mena balíčka. Všetky jednotky, ktoré chcete tohoto balíčka musia mať rovnaké meno balíčka. Potom zadajte meno príslušného zdrojového súboru, môžete ho tiež nájsť pomocou prehľadávania súborového systému. Nakoniec zadajte meno výstupného súboru (nezabudnite na príponu xml!) a stlačte OK.<br />
<br />
'''lazde''' vygeneruje základ pre dokumentáciu. Vygenerovaný súbor bude otvorený a treeview bude zaplnený všetkými unitami, triedami, typmi, funkciami atď, zo zadaného zdrojového súboru a ste pripravení začať dokumentovať novú časť Lazarus.<br />
<br />
Pozrite sa na [[LCL Documentation Roadmap]], aby ste videli, ktoré jednotky ešte treba zdokumentovať.<br />
<br />
Pre jodnoduchú aktualizáciu súborov FPDoc, pri zmene unít Pascal, môžete použiť [[FPDoc Updater| aktualizátor FPDoc]].<br />
<br />
== Konečný výsledok ==<br />
<br />
Počas používania programu som zistil, že by bolo dobré vidieť ako sú informácie zobrazené v konečnom štádiu (ako prehliadateľný dokument). Pre tento účel '''lazde''' sprístupňuje nástroj pre vybudovanie všetkých potrebných HTML súborov.<br />
<br />
Tento nástroj možno spustiť z menu '''Extra -> Build''' a zobrazí sa Vám nasledujúca obrazovka:<br />
<center>[[Image:Lazdebuild1.png]]</center><br />
"Package" musí byť rovnaké ako meno, ktoré ste zadali pri vytváraní xml súborov. Ako "Format" zvoľte HTML. Do "Output" zadajte cestu, kde majú byť výsledné súbory uložené.<br />
Stlačte "Add all" a všetky dokumenty, na ktorých ste pracovali, budú pridané do projektu. Potom prejdite na nasledujúcu záložku<br />
<center>[[Image:Lazdebuild2.png]]</center><br />
a zadajte cestu k zdrojovým súborom.<br />
Po stlačení "Build" začne Váš HD rapotať a nakoniec sa v záložke "Build output" obajví nasledujúci výstup<br />
Building docs using command: fpdoc --package="LCL"<br />
--output="/home/matthijs/documentatie/LCL" --format=html --content <br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/buttons.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/comctrls.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/dialogs.xml"<br />
--descr="/home/matthijs/Projecten/Lazarus/doceditor/controls.xml"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/buttons.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/comctrls.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/dialogs.pp"<br />
--input="/home/matthijs/cvsroot/lazarus/lcl/controls.pp" <br />
<br />
FPDoc - Free Pascal Documentation Tool<br />
(c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther, sg@freepascal.org<br />
<br />
Writing 2788 pages...<br />
Done.<br />
Documentation successfully built.<br />
<br />
Keď vojdete do adresára, ktorý ste zadali ako "Output", uvidíte súbor index.html a (v tomto prípade 4) podadresáre. Otvorte index.html vo svojom prehliadači a pozrite si výstup celej svojej ťažkej práce na dokentácii. Budete môcť nasledovať odkazy a prečítať tak všetko.<br />
<br />
Ak plánujete pokračovať v práci na dokumentácii tohoto balíčka, stlačte "Save" a uložte voľby budovania. Dostanete otázku na meno súboru a voľby budú uložené. Pri ďalšom generovaní HTML súborov ich len jednoducho načítate.<br />
<br />
== Odoslanie ==<br />
Keď budete so svojou prácou spokojní, asi ju budete chcieť zdieľať s komunitou Lazarus. Všetko, čo k tomu potrebujete je vytvoriť [[Creating A Patch/sk|patch]], zazipovať ho a poslať.<br />
<br />
== Malá poznámka ==<br />
Pamätajte na nasledujúce: lazde je stále vo vývoji. Je použiteľný, ale zatiaľ nei je úplne dokončený, Preto sa v ňom môžu objaviť, ale budú odstránené.<br />
<br />
== Spolupracovníci a zmeny ==<br />
*Preložil --[[User:Slavko|Komunista]] 16:08, 30 December 2007 (CET)</div>Trsekhttps://wiki.freepascal.org/index.php?title=Page_Of_Code_Sites&diff=22620Page Of Code Sites2007-07-16T19:39:56Z<p>Trsek: /* Other major sites */</p>
<hr />
<div>{{Page Of Code Sites}}<br />
<br />
' Major sites for Pascal, Delphi and Kylix code '<br />
<br />
* If you have some favorite sites that aren't here, please add them.<br />
<br />
== Super Sites with Components==<br />
<br />
*http://www.delphibasics.co.uk/ <br><br />
*http://www.torry.net/ <br><br />
*http://delphi.icm.edu.pl/ <br />
*http://www.inner-smile.com/delphi5.phtml <br />
*http://www.mers.com/index.html <br />
*http://www.delphi-jedi.org/ <br />
*http://delphi.about.com/ <br />
*http://www.efg2.com/ <br />
*http://pascal-central.com/ special for Mac OS<br />
<br />
Verry good sources, tools, docs:<br />
http://assarbad.net/en/stuff/ <br />
<br />
=== Delphi Free Component Index ===<br />
<br />
[http://www.bsdg.org/resources/Delphi_Free_Components.html HUGE index of free components (download a zipped version below)]<br />
[http://www.bsdg.org/resources/Delphi_Free_Components.zip Download zipped free component index]<br />
<br />
=== Other major sites ===<br />
<br />
*http://archive.devx.com/gethelp/gethelp.asp?Area=Delphi%2FPascal <<br />
*http://www.delphipages.com/ <br />
*http://www.delphi3000.com/ <br />
*http://www.delphicity.net/ <br />
*http://www.delphibasics.co.uk <br />
*http://www.chami.com/ <br />
*http://www.swissdelphicenter.ch/ <br />
*http://www.undu.com/<br />
*http://www.delphifaq.net/index.php <br />
*http://www.delphispirit.com/ <br />
*http://www.delphi32.com/ <br />
*http://www.cyber-matrix.com/delphi.html <br />
*http://www.innotts.co.uk/zephyr/linkslink.html <br />
*http://www.bsdg.org/resources/turbopower.html Listing of Turbopower's SF releases <br />
*http://www.q3.nu/trucomania/ Tips for Delphi programming (English & Spanish) <br />
*http://www.drbob42.com/delphi/index.htm Dr. Bob's Delphi Clinic <br />
*http://cc.borland.com/products.aspx?ProdID=1 Borland Code Central - Delphi<br />
*http://www.pazcal.com/modules/news/ delphi & pascal open source programming<br />
*http://www.trsek.com 340 source pascal code - game, mathematics, graphics, homework<br />
<br />
=== SWAG sites ===<br />
<br />
*http://gdsoft.com/swag/swag.html <br />
*http://www.bsdg.org/swag/index.html<br />
<br />
== Libraries ==<br />
<br />
=== GraphiX, Games, DirectX, OpenGL, OpenAL ===<br />
*http://www.delphi3d.net - OpenGL, Graphics, etc. <br />
*http://www.delphigl.com/index2.php - OpenGL, Graphics, etc. <br />
*http://www.sulaco.co.za - OpenGL, Graphics, etc. <br />
*http://www.delphigamer.com or http://pgd.netstarweb.com - PGD(Pascal Game Developement) <br />
*http://www.noeska.com - OpenGL, OpenAL, Graphics <br />
*http://www.noeska.com/doal - OpenAL <br />
*http://glscene.sourceforge.net/index.php - OpenGL library for Delphi, Kylix and Lazarus <br />
*http://www.sulaco.co.za/quake2 - The famous Quake2 game code translated to Object Pascal <br />
*http://clootie.narod.ru - DirectX for Delphi, C++Builder and FreePascal/Lazarus <br />
<br />
===database===<br />
*http://zeoslib.sourceforge.net/ native database access across different platforms, go-to http://zeos.firmos.at/ to see Zeoslib forum.<br />
*http://sourceforge.net/projects/fibl FreeIBComponents package porting for Lazarus.<br />
*http://source.online.free.fr SQLitePass components allowing connection to databases created with Kexi or SQLite Administrator.<br />
*http://www.progdigy.com/modules.php?name=UIB Database components for Firebird, Interbase and Yaffil<br />
*http://www.instantobjects.org ObjectPascal ORM (Delphi only at the moment)<br />
<br />
===full text search===<br />
*http://ioda.sourceforge.net/index.html ioda is a fulltext database: a word indexing and retrieving engine. It stores unique words from a file or database source in a btree and their repeaters in an flexible and highly space optimized list structure. Each stored word "knews" its source, position in the source and some (optional) info bytes. (writen in FPC)<br />
<br />
===Internet===<br />
*http://curl.haxx.se/libcurl/pascal/ curl is a command line tool for transferring files with URL syntax<br />
*http://www.psp.furtopia.org/cgi-bin/psp/index.psp Free Pascal Web Unit allows you to write binary CGI programs<br />
*http://synapse.ararat.cz/index.htm The SYNAPSE library aims to create a complete library of classes and functions<br />
*http://webrad.sourceforge.net/ WebRAD is a web application development framework and library of components for Delphi/Kylix that replaces HTML editing with a drag-and-drop approach. (dead delphi/kylix project, good to port)<br />
<br />
===Report===<br />
*http://lazreport.sourceforge.net LazReport it's based on the FreeReport project. This generator it's very fast. LazReport it'nt compatible with FastReport and FreeReport<br />
*http://sourceforge.net/projects/braslib/ Braslibrary is a report and others components pack for Delphi and Lazarus. '''It´s alfa release''' and have a lot of problems, but have a greath potential (p.e. justified text)<br />
*http://reportman.sourceforge.net ReportManager (Delphi only)<br />
<br />
===OLAP===<br />
*http://sourceforge.net/projects/fxds Desicion Cube Components (Delphi only)<br />
<br />
===Log===<br />
*http://log4delphi.sourceforge.net/ Log Components (Delphi only at the moment)<br />
<br />
===Corba===<br />
*http://www.m-g.ru/index/lang/eng/parent_id/30/level/1 MTDORB is free and opensource ORB for Delphi and Kylix. It is intended to be a fully compliant implementation of CORBA 2.3 standard. <br />
<br />
===Parallel Computing===<br />
*http://www.win.tue.nl/~ccremers/pascalmpi/index.html Using LAM/MPI in FreePascal<br />
<br />
== Documentation ==<br />
<br />
<br />
=== Tutorial Sites ===<br />
<br />
*http://ourworld.compuserve.com/homepages/tk_boyd/Tut.htm <br />
*http://www.arrakis.es/~sigecom/SitesIngles.htm<br />
*http://www-rab.larc.nasa.gov/nmp/nmpLinks.htm Numerical Methods in Pascal<br />
<br />
=== How to Write Source Code ===<br />
<br />
Why? Because the code you write should be read with ease by others and even youself.<br />
<br />
[http://community.borland.com/article/0,1410,10280,00.html Borland tutorial] <br><br />
[http://jedicodeformat.sourceforge.net/ JEDI tutorial and tools]<br />
<br />
===Others===<br />
*http://webster.cs.ucr.edu/ - 'Assembly Language Programing' <br />
*http://www.wotsit.org/ - 'Programer's file format collection' <br />
*http://www.gnu.org/manual/manual.html/ GNU <br />
*http://www.cs.utah.edu/dept/old/texinfo/ The Gnu Info Tree<br />
*http://ciips.ee.uwa.edu.au/~morris/Year2/PLDS210/ds_ToC.html<br />
<br />
<br />
== Contributors to this page ==<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=PageOfCodeSites version].<br />
<br />
Date format: mm/dd/yyyy<br />
<br />
Initial page entry [VlxAdmin] - 9/22/2003 <br><br />
Added Tutorial section [VlxAdmin] - 10/20/2003 <br><br />
Added some links and headings [VlxAdmin] - 10/27/2003 <br><br />
Added Documentation section [DarekMpage] - 4/20/2004 <br><br />
Added Graphics section [[User:Lightning | Razvan]] - 11/5/2004 <br><br />
Added coding tutorials [[User:Lightning | Razvan]] - 11/11/2004 <br><br />
Modified Graphics section [[User:Lightning | Razvan]] - 02/20/2005 <br><br />
Deleted http://www.vclcomponents.com/ Domain is expired [[User:Christian]]</div>Trsek