Sign in Join
Wiki copytemporary

Lazarus Packages/sk: what changed

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

OldNewLine
11# Prehlad balíkového systému Lazarus
22
33## Čo je balík v Lazaruse?
44
55Balíček v Lazarus je zoznam unít a komponentov, ktoré obsahujú informácie o tom ako majú byť skompilované a ako môžu byť použité inými balíkmi, alebo IDE. Oproti Delphi, balíky niesu obmedzené len na knižnice a môžu byť nezávislé od operačného systému. (Delphi: [[packages|Balíček v Delphi]] je špecialne skompilovaná knižnica používaná aplikáciami, prostredím alebo obomi. Balíky Delphi vyžadujú od prekladača špeciálnu funkciu ktorú fpc v tomto momente ešte nemá a ktorá je závislá na operačnom systéme).
66
77Momentálne podporuje prekladač [[Free Pascal]] len statické balíky. Kvôli tomu musíte skompilovať a reštartovať prostredie pri každej inštalácií alebo odinštalácií balíka.
88
99Balík lazarusu je identifikovaný menom a verziou.
1010
1111## FAQ
1212
1313**Otázka**: Potrebujem inštalovať balíček?
1414
1515**Odpoveď**: Balíček potrebujete inštalovať len, ak obsahuje položky pre dobu návrhu (*designtime*), ako komponenty pre Paletu komponentov IDE. Ak tieto položky nepoužívate, balíček inštalovať nepotrebujete. Ak chcete len použiť balíček vo svojom projekte, neinštalujte ho.
1616
1717**Otázka**: Nainštaloval som balíček, ale IDE nevie nájsť jednotky
1818
1919**Odpoveď**: Inštalácia balíčka znamená, že balíček je integrovaný do IDE, nei do Vášho projektu. To sú dve odlišné veci. Pre použitie balíčka vo svojom projekte, použite **Project -\> Project Inspector -\> Add -\> New Requirement** a odinštalujte balíček, ak neobsahuje žiadne rozšírenie IDE.
2020
2121## Rýchly štart
2222
2323Aby ste videli balíkový systém v akcií urobte následovné:
2424
2525Vytváranie nového balíku:
2626
2727- **File-\>New... -\> Package -\> Standard Package**
2828- Otvorí sa editor balíkov
2929- Použite tlačidlo Save hore vlavo.
3030- V závislosti od Vášho nastavenia 'naming' vo Voľbách prostredia sa vás IDE opýta, či má uložiť súbor s malými písmenami. Stlačte Áno.
3131
3232Gratulujem: Práve ste vytvorili svôj prvý balík.
3333
3434Pridávanie nového komponentu:
3535
3636- Použite tlačidlo **Add -\> New component**
3737- Vyberte si komponent v zozname predkov typu combobox. Napr.: TBevel.
3838- Kliknite OK
3939- Súbor bude pridaný do balíčka a otvorený v editore.
4040- Nainštalujte balík pomocou tlačidla 'install' na vrchu editora balíkov.
4141- Lazarus uloží balík a spýta sa či má byť IDE prebudované. Sltačte Áno.
4242- Balíky sú staticky linkované takže je potrebný reštart IDE.
4343- Reštartujte Lazarus a pozrite či máte svoj komponent v lište komponentov (Napr.: TBevel1 bude na 'Additional' stránke).
4444
4545Gratulujem: Práve ste nainštalovaly svoj prvý balík so svojim prvým komponentom.
4646
4747## Položky menu IDE pre balíčky
4848
4949File-\>New... -\> Package -\> Standard Package
5050
5151- vytvorí nový balíček
5252
5353Project -\> Project Inspector
5454
5555- zobrazuje, ktoré balíčky sú vyžadované projektom, ktorý je práve otvorený
5656- môžete tu pridať/odobrať závislosti
5757
5858Run -\> Compiler options -\> Inherited
5959
6060- zobrazuje voľby prekladača, a z ktorého balíčka sú zdedené
6161
6262Components -\>
6363
6464- **Open loaded package**: dialóg zobrazujúci všetky otvorené balíčky a ich stav
6565- **Open package file (.lpk)**: otvoriť súbor .lpk
6666- **Open package of current unit**: otvoriť súbor .lpk, ktorý patrí súboru v Editore zdrojového kódu
6767- **Open recent package**: otvoriť súbor naposledy otvoreného balíčka (súbor .lpk)
6868- **Add active unit to a package**: pridá jednotku v Editore zdrojového kódu do balíčka
6969- **Package Graph**: Diagram balíčkov, zobrazuje všetky otvorené balíčky a ich závislosti
7070- **Configure installed packages**: upraviť zoznam balíčkov nainštalovaných v IDE - nainštalovať/odinštalovať viacero balíčkov naraz
7171
7272Project -\> Project Inspector
7373
7474- tu možno upravovať všetky balíčky použité projektom
7575
7676## Teória
7777
7878Každý balíček Lazarus má súbor .lpk. Balíček je identifikovaný svojim menom a verziou. Meno musí súhlasiť s menom súboru .lpk. Napríklad:
7979
80-`Name: Package1, Version: 1.0, Filename: /home/.../package1.lpk.`
80+```text
81+Name: Package1, Version: 1.0, Filename: /home/.../package1.lpk.
82+```
8183
8284- IDE automaticky vytvára hlavný súbor zdrojového kódu (package1.pas). Súbor .lpk obsahuje informácie o vyžadovaných balíčkoch, použitých súboroch, ako ich kompilovať a čo je potrebné pre použitie balíčka inými balíčkami/projektmi. Adresár, v ktorom sa nachádza súbor .lpk, je volaný "adresár balíčka".
8385- IDE udržiava zoznam všetkých balíčkových súborov (\<config directory\>/packagelinks.xml). Vždy keď otvoríte balíček v IDE, je pridaný do tohoto zoznamu. Keď otvoríte balíček, IDE automaticky otvorí všetky vyžadované balíčky pomocou tohoto zoznamu.
8486- Tri základné balíčky: FCL, LCL a SynEdit, sú súčasťou IDE a tak sú vytvorené automaticky, len na čítanie a nemajú súbor .lpk.
8587- Bežné balíčky majú zdrojový adresár s jednotkami Pascalu. Normálne je tam aj súbor .lpk. Balíček má aj výstupný adresár, predvolene to je podadresár 'lib/\$(TargetCPU)-\$(TargetOS)/' a adresári balíčka.
8688- Pred samotnou kompiláciou balíčka IDE skontroluje všetky vyžadované balíčky a ak ich je potrebné aktualizovať a majú nastavený príznak autoaktualizácie, sú najprv preložené. Potom IDE vytvorí hlavný súbor zdrojového kódu, ak bol súbor .lpk napríklad package1.lpk, potom hlavný súbor zdrojového kódu bude package1.pas. Tento súbor obsahuje v sekcii uses všetky jednotky a procedúru 'Register', ktorá je volaná v sekcii intialization.
8789
8890Napríklad
8991
90-`This file was automatically created by Lazarus. Do not edit!`\
91-`This source is only used to compile and install`\
92-`the package GTKOpenGL 1.0.`\
93-` unit GTKOpenGL;`\
94-`interface`\
95-`uses GTKGLArea, GTKGLArea_Int, NVGL, NVGLX, LazarusPackageIntf;`\
96-`implementation`\
97-`procedure Register;`\
98-`begin`\
99-`  RegisterUnit('GTKGLArea', @GTKGLArea.Register);`\
100-`end;`\
101-`initialization`\
102-`  RegisterPackage('GTKOpenGL', @Register)`\
103-`end.`
92+``` pascal
93+This file was automatically created by Lazarus. Do not edit!
94+This source is only used to compile and install
95+the package GTKOpenGL 1.0.
96+unit GTKOpenGL;
97+interface
98+uses GTKGLArea, GTKGLArea_Int, NVGL, NVGLX, LazarusPackageIntf;
99+implementation
100+procedure Register;
101+begin
102+ RegisterUnit('GTKGLArea', @GTKGLArea.Register);
103+end;
104+initialization
105+ RegisterPackage('GTKOpenGL', @Register)
106+end.
107+```
104108
105109- Potom je volaný prekladač a balíček je preložený do výstupného adresára.
106110- Po úspešnom preklade je vytvorený stavový súbor. Stavový súbor je vložený do výstupného adresára, volá sa \<menobalíčka\>.compiled a obsahuje informácie o tom, ako bol balíček preložený. Tento stavový súbor je použitý v IDE pre kontrolu či jepotrebná aktualizácia.
107111
108112Príklad: gtkopengl.compiled:
109113
110-`<?xml version="1.0"?>`\
111-`<CONFIG>`\
112-`  <Compiler Value="/usr/bin/ppc386" Date="781388725"/>`\
113-`  <Params Value=" -Rintel -S2cgi -CD -Ch8000000 -OG1p1`\
114-`    -Tlinux -gl -vewnhi -l -Fu../../../lcl/units`\
115-`    -Fu../../../lcl/units/gtk -Fu../../../packager/units`\
116-`    -Fu. -FElib/ gtkopengl.pas"/>`\
117-`</CONFIG>`
114+```text
115+<?xml version="1.0"?>
116+<CONFIG>
117+ <Compiler Value="/usr/bin/ppc386" Date="781388725"/>
118+ <Params Value=" -Rintel -S2cgi -CD -Ch8000000 -OG1p1
119+ -Tlinux -gl -vewnhi -l -Fu../../../lcl/units
120+ -Fu../../../lcl/units/gtk -Fu../../../packager/units
121+ -Fu. -FElib/ gtkopengl.pas"/>
122+</CONFIG>
123+```
118124
119125- IDE otvára všetky potrebné balíčky automaticky. To znamená, že otvára všetky nainštalované balíčky, všetky balíčky označené pre inštaláciu (auto install), všetky balíčky s otvoreným Editor, všetky balíčky vyžadované projektom a všetky balíčky vyžadované inými balíčkami. Nepotebné balíčky sú automaticky uvoľnené, keď má IDE trochu času.
120126- IDE nikdy neotvára dva balíčky s rovnakým menom naraz. Keď používateľ otvorí iný balíček s rovnakým menom ako má už otvorený balíček, IDE sa spýta na jeho nahradenie.
121127- IDE spravuje dve samostatné množiny balíčkov: **nainštalované** balíčky a **automaticky nainštalované** balíčky. Automaticky nainštalované balíčky budú pripojené k IDE pri nasledujúcom preklade IDE. Na to si vytvára v konfiguračnom adresári dva nové súbory: staticpackages.inc a idemake.cfg. Potom pre preloženia seba samého volá:
122128
123-`make ide OPT=@/path/to/your/config/idemake.cfg`
129+```text
130+make ide OPT=@/path/to/your/config/idemake.cfg
131+```
124132
125133## Pokyny a tipy
126134
127135Prosím, pridajte každý pokyn, či tip tu.
128136
129137- pre premenovanie balíčka použite 'Save as'.
130138
131139Príklad
132140
133141Ako príklad použijem tiOPF. tiOPF má takúto štruktúru adresára, keďže je preložený pre FPC, Delphi 5-7, D2005 a D2006.
134142
135-`Source                <= úplná cesta \Programming\3rdParty\tiOPF\Source`\
136-` \Compilers`\
137-`    \Delphi7          <= tu je balíček pre Delphi 7`\
138-`    \D2005`\
139-`    \FPC              <= tu je tiOPF.lpk`\
140-` \Core                <= súbory základných jednotiek`\
141-` \Options             <= súbory voliteľných jendotiek, pre dodatočné funkcie`\
142-` \GUI`
143+```text
144+Source <= úplná cesta \Programming\3rdParty\tiOPF\Source
145+ \Compilers
146+ \Delphi7 <= tu je balíček pre Delphi 7
147+ \D2005
148+ \FPC <= tu je tiOPF.lpk
149+ \Core <= súbory základných jednotiek
150+ \Options <= súbory voliteľných jendotiek, pre dodatočné funkcie
151+ \GUI
152+```
143153
144154Pre použitie tohoto príkladu som pridal do "Options - Usage - Units" nasledujúce cesty:
145155
146-`"$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" `
156+```text
157+"$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI"
158+```
147159
148160ktoré budú pridané do každého projektu používajúceho tento balíček.
149161
150162## Pridanie existujúcej komponenty do balíčka
151163
152164Pokiaľ chcete pridat súbor obsahujúci nejakú komponentu do existujúceho balíčka, postupujte takto:
153165
154166- Otvorte súbor balíčka
155167- Kliknite na 'Add', aby ste pridali novú položku do balíčka
156168- Vyberte zalóžku v okne 'Add to package'
157169- Vyberte súbor ktorý chcete pridať
158170- Zaškrtnite políčko 'Has Register procedure' v prípade, že súbor obsahuje registrovaciu procedúru (Register). Ak toto nespravíte, komponenta sa nezobrazí na palete komponentov.
159171- Kliknite 'Add unit'
160172- Prekompilujte a nainštalujte balíček.
161173
162174To je všetko - komponenta by teraz mala byť na palete komponentov.
163175
164176## Registrovacia procedúra Register
165177
166178Aby sa mohla komponenta zobraziť na palete komponentov, musí byť zaregistrovaná v Lazarovi. Toto sa deje v registrovacej procedúre. Táto procedúra sa musí objaviť v interface sekcii unity a musí obsahovať jeden alebo viacej volaní RegisterComponent, takisto tiež parametre inštalácie a editor pre komponenty.
167179
168180V balíčku sa môže nachádzať viac ako jedna procedúra Register. V editore balíčko (Package Editor) musí Lazarovi povedať, ktoré unity majú procedúru Register, aby vedel, ktorú zavolať po nainštalovaní balíčka.
169181
170182Sú dva spôsoby, ako označiť unitu obsahujúci procedúru Register:
171183
172184- Môžete tak spraviť pri pridávaní unít do balíčka (pozri tiež Pridanie existujúcej komponenty do balíčka)
173185- Alebo môžete vybrať unitu v nastavení balíčka a zaškrtnúť políčko "Register" v okne Details
174186
175187Nezabudnite prekompilovať a nainštalovať balík po zmene parametrov.
176188
177189## Spolupracovníci a komentáre
178190
179191This page has been converted from the epikwiki [version](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusPackages).
180192
181193- dokončenie prekladu a aktualizácia z originálu --Komunista 18:45, 2 January 2008 (CET)
182194
183195---
184196*From the Free Pascal wiki, page "Lazarus Packages/sk", as it stood on 2008-12-29 after a change by Adamm, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history