Sign in Join
Wiki copytemporary

Lazarus Packages/ja: what changed

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

OldNewLine
11# Lazarusのパッケージシステムの概要
22
33## lazarusパッケージとは?
44
55lazarusパッケージとは、ユニットやコンポーネントを集めたものです。それには、どのようにコンパイルできるかという情報や、IDEや他のパッケージや、プロジェクトで、どうやって使うか、といった情報が含まれています。Delphiと大きく違うところは、パッケージはOSに依存したライブラリではないということです。([[packages|Library Packagesは]]特別にコンパイルされたライブラリで、アプリケーションやIDEで使われます。Delphiのパッケージは、コンパイラ内部でのサポートを必要としますが、コンパイラマジックを必要としています。fpcは現在の時点ではそのようなコンパイラマジックを受け付けませんし、もちろんそのようなマジックはOS環境に依存するものとなります)
66
77現在のところ、[[Free Pascal|Free Pascalコンパイラは]]、スタティックな(静的にリンクされた)パッケージしかサポートしません。ですから、パッケージをインストールしたり、アンインストールしたりするときには、IDEのコンパイルと再起動が必要です。
88
99lazarusパッケージは名前とバージョンによって識別され、区別されます。
1010
1111## よくある質問
1212
1313Q: 私はパッケージをインストールする必要はありますか?
1414
1515A: パッケージが、IDEのコンポーネントパレットのコンポーネントのように、フォーム設計の際に必要な場合に限り、インストールする必要があります。そうでなければ、パッケージをインストールする必要はありません。プロジェクトでパッケージを使いたいだけならば、インストールしないでください。
1616
1717Q: パッケージをインストールしました。しかし、IDEがユニットを見つけてくれません。
1818
1919A: パッケージのインストールとは、パッケージをあなたのプロジェクトではなくIDEに統合することを意味します。この二つは違うものです。あなたのプロジェクトでパッケージを使いたいときは、メニューからProject -\> Project Inspector -\> Add -\> New Requirement を選択してください。また、IDEに全く機能を付け加えないようなパッケージはアンインストールしてください。
2020
2121## クイックスタート
2222
2323パッケージシステムを使う操作方法です。次のようにしてください。
2424
2525新規のパッケージを作る:
2626
2727- Package-\>New Package or File-\>New... -\> Package -\> Standard Package
2828- パッケージエディタが開きます。
2929- 左上のSaveボタンを使います。
3030- 'enviroment options'の中の'naming'の設定によっては、IDEはファイルを小文字で保存するか尋ねるかもしれません。yesとしてください。
3131
3232これでめでたく最初のパッケージを作ることができました。
3333
3434新しいコンポーネントを追加する:
3535
3636- Addボタンを押す -\> New component
3737- 元になる型を示すコンボボックスからコンポーネントを一つ選びます。たとえば、TBevelなど。
3838- Okをクリック
3939- パッケージにファイルが追加され、エディタ内に表示されます。
4040- パッケージエディタの上にある'install'ボタンをクリックすると、パッケージがインストールされます。
4141- Lazarusはパッケージを保存し、IDEをリビルドするかどうか尋ねます。Yesを選択してください。
4242- パッケージは静的にリンクされるため、IDEの再起動が必要になります。
4343- Lazarusが再起動すると、コンポーネントパレットに新しいコンポーネントが表示されます。(この例でいうと、「TBevel1」がAdditionalページに表示されるでしょう。).
4444- もし、コンポーネントパレットに新しいコンポーネントが見つからないなら、おそらく、新しくコンパイルしたLazarusを動かしていないからです。Lazarusをどこにリビルドするかの設定は Environment -\> Environment options -\> Files -\> Lazarus directory でおこなうことができます。
4545
4646Lazarusがインストールされたディレクトリに対する書き込み権限がない場合には、Lazarusを直接呼び出す代わりに、startlazarusコマンドも使えます。これはたとえば、 ~/.lazarusにある新しく生成されたLazarsuの実行ファイルを起動します。
4747
4848これでめでたく最初のコンポーネントを入れた最初のパッケージをインストールできました。
4949
5050## パッケージのためのIDEメニュー
5151
5252- File-\>New... -\> Package -\> Standard Package
5353
5454新しいパッケージを作ります。
5555
5656- Project -\> Project Inspector
5757
58-` ここで、現在開いているプロジェクトで必要とされているパッケージを見ることができます。`\
59-` 新しくパッケージへの依存関係を追加することや、不要になったパッケージへの依存を削除することができます。`
58+```text
59+ ここで、現在開いているプロジェクトで必要とされているパッケージを見ることができます。
60+ 新しくパッケージへの依存関係を追加することや、不要になったパッケージへの依存を削除することができます。
61+```
6062
6163- Run -\> Compiler options -\> Inherited
6264
63-` ここでコンパイラオプションをどのパッケージから継承するかを見ることができます。`
65+```text
66+ ここでコンパイラオプションをどのパッケージから継承するかを見ることができます。
67+```
6468
6569Components -\>
6670
67-` - 'Open package'`\
68-`   すべてのパッケージを開くことができるダイアログを表示します。`\
69-`   `\
70-` - 'Open package file'`\
71-`   .lpk ファイルを開きます。`\
72-`   `\
73-` - 'Open package of current unit'`\
74-`   現在ソースエディタで開いているファイルに属している.lpk ファイルを開きます。`\
75-`   `\
76-` - 'Open recent package'`\
77-`   最近開いたパッケージファイル(lpk file)を開きます。`\
78-`   `\
79-` - 'Add active unit to a package'`\
80-`   ソースエディタで開いているユニットをパッケージに追加します。`\
81-`   `\
82-` - 'Package Graph'`\
83-`   開いているすべてのパッケージの一覧と相関図を表示します。`\
84-`   `\
85-` - 'Configure installed packages'`\
86-`   IDEにインストールされているパッケージの一覧を編集します。一度に個々のインストール、アンインストールがおこなえます。`
71+``` pascal
72+ - 'Open package'
73+ すべてのパッケージを開くことができるダイアログを表示します。
74+
75+ - 'Open package file'
76+ .lpk ファイルを開きます。
77+
78+ - 'Open package of current unit'
79+ 現在ソースエディタで開いているファイルに属している.lpk ファイルを開きます。
80+
81+ - 'Open recent package'
82+ 最近開いたパッケージファイル(lpk file)を開きます。
83+
84+ - 'Add active unit to a package'
85+ ソースエディタで開いているユニットをパッケージに追加します。
86+
87+ - 'Package Graph'
88+ 開いているすべてのパッケージの一覧と相関図を表示します。
89+
90+ - 'Configure installed packages'
91+ IDEにインストールされているパッケージの一覧を編集します。一度に個々のインストール、アンインストールがおこなえます。
92+```
8793
8894Project -\> Project Inspector
8995
90-` ここでは、プロジェクトで使われているすべてのパッケージを確認したり変更することができます。`
96+```text
97+ ここでは、プロジェクトで使われているすべてのパッケージを確認したり変更することができます。
98+```
9199
92100## 理屈
93101
94102各々のLazarusパッケージに.lpkファイルが一つずつあります。パッケージは名前とバージョンで識別されます。名前はlpkファイル名と同じでなくてはなりません。たとえば、次のように: Name: Package1, Version: 1.0, Filename: /home/.../package1.lpk.
95103
96104- IDEは自動的にメインのソースファイルを生成します。(package1.pas) 下を見てください。lpkファイルは必要とするパッケージの情報(どのファイルが必要か、どのようにコンパイルするか、他のプロジェクトやパッケージで利用される際に、何が必要となるか、など)をもっています。lpkファイルがあるディレクトリは "package directory"と呼ばれます。
97105- IDEは全てのパッケージファイルのリストをもっています。(\<config directory\>/packagelinks.xml). IDEでパッケージを開くたびに、それがこのリストに追加されます。パッケージが開かれる度に、IDEは必要となる全てのパッケージを自動的に開きますが、それにはこのリストを使います。
98106- 3つの基本となるパッケージがあります。FCL, LCL と SynEditです。これらはIDEの一部であるため、これらのパッケージは自動的に作られ、読み取り専用であり、lpkファイルもありません。
99107- 通常、パッケージには1つのソースディレクトリがあり、そのディレクトリにはいくつかのPascalユニットがはいっています。通常、lpkファイルもそのディレクトリにあります。パッケージは、また1つの出力ディレクトリを持っています。デフォルトは、パッケージディレクトリ内の 'lib/\$(TargetCPU)-\$(TargetOS)/' です。
100108- パッケージをコンパイルする前に、IDEは全部の依存するパッケージをチェックして、依存するパッケージが更新する必要があるかどうか、自動更新フラグがセットされているか調べて、もしそうなら、それらを先にコンパイルします。次いでIDEはパッケージのメインソースファイルを生成します。もし、lpkファイルの名前がpackage1.lpkであれば、メインソースファイルは package1.pasです。このファイルは、usesセクションにすべての使用するユニットを含み、また、Register手続きを含んでいます。この手続きはinitialization節で呼ばれます。
101109
102110例:
103111
104-`This file was automatically created by Lazarus. Do not edit!`\
105-`This source is only used to compile and install`\
106-`the package GTKOpenGL 1.0.`\
107-` unit GTKOpenGL;`\
108-`interface`\
109-`uses GTKGLArea, GTKGLArea_Int, NVGL, NVGLX, LazarusPackageIntf;`\
110-`implementation`\
111-`procedure Register;`\
112-`begin`\
113-`  RegisterUnit('GTKGLArea', @GTKGLArea.Register);`\
114-`end;`\
115-`initialization`\
116-`  RegisterPackage('GTKOpenGL', @Register)`\
117-`end.`
112+``` pascal
113+This file was automatically created by Lazarus. Do not edit!
114+This source is only used to compile and install
115+the package GTKOpenGL 1.0.
116+unit GTKOpenGL;
117+interface
118+uses GTKGLArea, GTKGLArea_Int, NVGL, NVGLX, LazarusPackageIntf;
119+implementation
120+procedure Register;
121+begin
122+ RegisterUnit('GTKGLArea', @GTKGLArea.Register);
123+end;
124+initialization
125+ RegisterPackage('GTKOpenGL', @Register)
126+end.
127+```
118128
119129- その後、コンパイラが実行されて、パッケージが出力ディレクトリに生成されます。
120130- コンパイルが成功すると、ステートファイルが生成されます。ステートファイルは出力ディレクトリに置かれます。\<packagename\>.compiledという名前で、どのようにコンパイルされたか、という情報をもっています。IDEはこの状態ファイルを用いてパッケージの更新が必要かどうかチェックします。
121131
122132gtkopengl.compiled の例:
123133
124-`<?xml version="1.0"?>`\
125-`<CONFIG>`\
126-`  <Compiler Value="/usr/bin/ppc386" Date="781388725"/>`\
127-`  <Params Value=" -Rintel -S2cgi -CD -Ch8000000 -OG1p1`\
128-`    -Tlinux -gl -vewnhi -l -Fu../../../lcl/units`\
129-`    -Fu../../../lcl/units/gtk -Fu../../../packager/units`\
130-`    -Fu. -FElib/ gtkopengl.pas"/>`\
131-`</CONFIG>`
134+```text
135+<?xml version="1.0"?>
136+<CONFIG>
137+ <Compiler Value="/usr/bin/ppc386" Date="781388725"/>
138+ <Params Value=" -Rintel -S2cgi -CD -Ch8000000 -OG1p1
139+ -Tlinux -gl -vewnhi -l -Fu../../../lcl/units
140+ -Fu../../../lcl/units/gtk -Fu../../../packager/units
141+ -Fu. -FElib/ gtkopengl.pas"/>
142+</CONFIG>
143+```
132144
133145- IDEは必要とする全てのパッケージを自動的に開きます。ここでいう全てのパッケージとは、インストールされているすべてのパッケージ、インストール設定で、自動インストールとマークされたすべてのパッケージ、開いているエディタ上のすべてのパッケージ、プロジェクトや他のパッケージで必要としているパッケージ、です。必要としないパッケージは、IDEがアイドル状態になると、自動的にアンロードされます。
134146- IDEは同時に同じ名前のパッケージを二つ開くことはしません。ユーザーがすでにインストールされているパッケージと同じ名前の他のパッケージファイルを開こうとすると、IDEは古いパッケージと置き換えるかどうか尋ねます。
135147- 他にもIDEは二種類のパッケージを記録しています。インストールされたパッケージと、自動インストールパッケージです。自動インストールパッケージは、次にコンパイルされる時にIDEにリンクされます。これは2つの新しいファイルをconfigフォルダに生成します。staticpackages.inc と、 idemake.cfg です。次いで'make ide OPT=@/path/to/your/config/idemake.cfg' とすることで、IDEは自分自身をコンパイルします。
136148
137149## ヒントと例題
138150
139151ここにヒントや例題などを書いてください。
140152
141153- パッケージの名前を変更するには、'save as'を使ってください。
142154
143155Example
144156
145-`I will use the tiOPF framework as an example  The tiOPF has the`\
146-`following directory layout, due to the fact that it compiles for FPC,`\
147-`Delphi 5-7, D2005 and D2006.`\
157+``` pascal
158+I will use the tiOPF framework as an example The tiOPF has the
159+following directory layout, due to the fact that it compiles for FPC,
160+Delphi 5-7, D2005 and D2006.
148161
149-`Source                <= full path \Programming\3rdParty\tiOPF\Source`\
150-` \Compilers`\
151-`    \Delphi7          <= Delphi 7 package files live here`\
152-`    \D2005`\
153-`    \FPC              <= the tiOPF.lpk lived here`\
154-` \Core                <= core unit files`\
155-` \Options             <= optional unit file for extra features`\
156-` \GUI`\
162+Source <= full path \Programming\3rdParty\tiOPF\Source
163+ \Compilers
164+ \Delphi7 <= Delphi 7 package files live here
165+ \D2005
166+ \FPC <= the tiOPF.lpk lived here
167+ \Core <= core unit files
168+ \Options <= optional unit file for extra features
169+ \GUI
157170
158-`Using this example, I included in the "Options - Usage - Units"`\
159-`editbox the following paths:`\
160-`"$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" which will be added`\
161-`to whatever project uses this package.`
171+Using this example, I included in the "Options - Usage - Units"
172+editbox the following paths:
173+"$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" which will be added
174+to whatever project uses this package.
175+```
162176
163177## コンポーネントを既存のパッケージに追加するには
164178
165179コンポーネントを含んだファイルを既存のパッケージに追加するには、次のようにすればできます:
166180
167181- パッケージファイルを開きます。
168182- 新しい要素をパッケージに追加するため'Add' をクリックします。
169183- 'Add to package' ダイアログから unit タブを選びます。
170184- 追加するファイルを選びます。
171185- ユニットに Register 手続きがあるなら、'Has register procedure' をチェックします。これをチェックしないと、コンポーネントはコンポーネントパレットに追加されません。
172186- 'Add unit' をクリックします。
173187- リコンパイルして、パッケージをインストールします。
174188
175189これだけで、コンポーネントがコンポーネントパレットに現れることになります。
176190
177191## Register 手続き
178192
179193コンポーネントは Lazarus に登録されてはじめてコンポーネントパレットに現れます。 この登録を行うのが Register 手続きです。この手続きはインストールプロパティやコンポーネント用のコンポーネントエディタと同じく、ユニットの interface 節に現れる必要があり、その手続きの中で RegisterComponent を実行する必要があります。
180194
181195一つのパッケージの中に、複数の Register 手続きがあってもかまいませんが、パッケージエディタで、登録用手続きをもつユニットがどれか指定する必要があります。そうすれば、Lazarusはパッケージをインストールする時どの手続きを呼ばなければならないかわかります。
182196
183197登録手続きをもつユニットをマークするには、二つの方法があります:
184198
185199上記のように、ユニットをパッケージに追加する操作の間に行うことができます。また、パッケージダイアログの中でユニットを選び、details パネルの中の 'Register' チェックボックスをチェックすることもできます。プロパティを変更した後、リコンパイルしてインストールするのを忘れないで下さい。
186200
187201## 貢献している人とコメント
188202
189203This page has been converted from the epikwiki [version](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusPackages).
190204
191205---
192206*From the Free Pascal wiki, page "Lazarus Packages/ja", as it stood on 2008-08-07 after a change by TheCreativeCAT, 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