Difference between revisions of "Lazarus Packages/ja"

From Free Pascal wiki
Jump to navigationJump to search
m (→‎lazarusパッケージとは?: repair broken link)
 
(2 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
== lazarusパッケージとは? ==
 
== lazarusパッケージとは? ==
  
lazarusパッケージとは、ユニットやコンポーネントを集めたものです。それには、どのようにコンパイルできるかという情報や、IDEや他のパッケージや、プロジェクトで、どうやって使うか、といった情報が含まれています。Delphiと大きく違うところは、パッケージはOSに依存したライブラリではないということです。(Delphiの場合、パッケージは特定のアプリケーションやIDEで使われるために特別にコンパイルされたライブラリで、Delphiパッケージは、コンパイラマジックを必要としています。fpcは現在の時点では、この特定のOS環境に依存するコンパイラマジックを受け付けません。)
+
lazarusパッケージとは、ユニットやコンポーネントを集めたものです。それには、どのようにコンパイルできるかという情報や、IDEや他のパッケージや、プロジェクトで、どうやって使うか、といった情報が含まれています。Delphiと大きく違うところは、パッケージはOSに依存したライブラリではないということです。([[packages|Library Packages]]は特別にコンパイルされたライブラリで、アプリケーションやIDEで使われます。Delphiのパッケージは、コンパイラ内部でのサポートを必要としますが、コンパイラマジックを必要としています。fpcは現在の時点ではそのようなコンパイラマジックを受け付けませんし、もちろんそのようなマジックはOS環境に依存するものとなります)
  
現在、[[Free Pascal]]コンパイラは、スタティックパッケージしかサポートしません。ですから、パッケージをインストールしたり、アンインストールするときには、コンパイルして、IDEを再起動しなくてはなりません。
+
現在のところ、[[Free Pascal]]コンパイラは、スタティックな(静的にリンクされた)パッケージしかサポートしません。ですから、パッケージをインストールしたり、アンインストールしたりするときには、IDEのコンパイルと再起動が必要です。
  
 
lazarusパッケージは名前とバージョンによって識別され、区別されます。
 
lazarusパッケージは名前とバージョンによって識別され、区別されます。
 
  
 
== よくある質問 ==
 
== よくある質問 ==
Line 16: Line 15:
 
Q: 私はパッケージをインストールする必要はありますか?
 
Q: 私はパッケージをインストールする必要はありますか?
  
A: 必要としているパッケージが、IDEのコンポーネントパレットのコンポーネントのように、設計時の何らかの機能を含んでいるときに、インストールすればよいでしょう。それらを使わないときは、パッケージはインストールする必要はありません。プロジェクトでパッケージを使いたくなければ、インストールしないでください。
+
A: パッケージが、IDEのコンポーネントパレットのコンポーネントのように、フォーム設計の際に必要な場合に限り、インストールする必要があります。そうでなければ、パッケージをインストールする必要はありません。プロジェクトでパッケージを使いたいだけならば、インストールしないでください。
  
  
 
Q: パッケージをインストールしました。しかし、IDEがユニットを見つけてくれません。
 
Q: パッケージをインストールしました。しかし、IDEがユニットを見つけてくれません。
  
A: パッケージをインストールする、ということは、パッケージがIDEに統合されたことを意味します。あなたのプロジェクトに、ではありません。それらは、別々のものです。あなたのプロジェクトでパッケージを使いたいときは、メニューからProject -> Project Inspector -> Add -> New Requirement を選択してください。プロジェクトにIDEのおまけ機能が必要でなくなったら、パッケージをアンインストールしてください。
+
A: パッケージのインストールとは、パッケージをあなたのプロジェクトではなくIDEに統合することを意味します。この二つは違うものです。あなたのプロジェクトでパッケージを使いたいときは、メニューからProject -> Project Inspector -> Add -> New Requirement を選択してください。また、IDEに全く機能を付け加えないようなパッケージはアンインストールしてください。
  
 
== クイックスタート ==
 
== クイックスタート ==
Line 28: Line 27:
  
 
新規のパッケージを作る:
 
新規のパッケージを作る:
* File->New... -> Package -> Standard Package
+
* Package->New Package or File->New... -> Package -> Standard Package
 
* パッケージエディタが開きます。
 
* パッケージエディタが開きます。
 
* 左上のSaveボタンを使います。
 
* 左上のSaveボタンを使います。
* 'enviroment options'の中で設定したあなたの名前付けによっては、IDEは小文字で保存するように尋ねるかもしれませんが、yesとしてください。
+
* 'enviroment options'の中の'naming'の設定によっては、IDEはファイルを小文字で保存するか尋ねるかもしれません。yesとしてください。
 
これでめでたく最初のパッケージを作ることができました。
 
これでめでたく最初のパッケージを作ることができました。
  
 
新しいコンポーネントを追加する:
 
新しいコンポーネントを追加する:
 
* Addボタンを押す -> New component
 
* Addボタンを押す -> New component
* 先祖型コンボボックスからコンポーネントを選びます。たとえば、TBevelなど。
+
* 元になる型を示すコンボボックスからコンポーネントを一つ選びます。たとえば、TBevelなど。
 
* Okをクリック
 
* Okをクリック
 
* パッケージにファイルが追加され、エディタ内に表示されます。
 
* パッケージにファイルが追加され、エディタ内に表示されます。
 
* パッケージエディタの上にある'install'ボタンをクリックすると、パッケージがインストールされます。
 
* パッケージエディタの上にある'install'ボタンをクリックすると、パッケージがインストールされます。
 
* Lazarusはパッケージを保存し、IDEをリビルドするかどうか尋ねます。Yesを選択してください。
 
* Lazarusはパッケージを保存し、IDEをリビルドするかどうか尋ねます。Yesを選択してください。
* パッケージは静的にリンクされて、IDEの再起動が必要になります。
+
* パッケージは静的にリンクされるため、IDEの再起動が必要になります。
* Lazarusが再起動し、コンポーネントパレットに新しいコンポーネントが表示されます。(この例でいうと、「TBevel1」がAdditionalページに表示されるでしょう。).
+
* Lazarusが再起動すると、コンポーネントパレットに新しいコンポーネントが表示されます。(この例でいうと、「TBevel1」がAdditionalページに表示されるでしょう。).
* もし、コンポーネントパレットに新しいコンポーネントが見つからないなら、おそらく、新しくコンパイルしたLazarusを動かしていないからです。Lazarusの再構築の設定は Environment -> Environment options -> Files -> Lazarus directory でおこなうことができます。
+
* もし、コンポーネントパレットに新しいコンポーネントが見つからないなら、おそらく、新しくコンパイルしたLazarusを動かしていないからです。Lazarusをどこにリビルドするかの設定は Environment -> Environment options -> Files -> Lazarus directory でおこなうことができます。
Lazarusを直接呼び出すほかに、startlazarusコマンドもつ変えます。これは新しく作ったLazarsuをスタートします。たとえば、Lazarusの実行ファイルが ~/.lazarusにあり、Lazarusがインストールされたディレクトリに書き込み権限がない場合に使います。
+
Lazarusがインストールされたディレクトリに対する書き込み権限がない場合には、Lazarusを直接呼び出す代わりに、startlazarusコマンドも使えます。これはたとえば、 ~/.lazarusにある新しく生成されたLazarsuの実行ファイルを起動します。
  
 
これでめでたく最初のコンポーネントを入れた最初のパッケージをインストールできました。
 
これでめでたく最初のコンポーネントを入れた最初のパッケージをインストールできました。
Line 86: Line 85:
 
   ここでは、プロジェクトで使われているすべてのパッケージを確認したり変更することができます。
 
   ここでは、プロジェクトで使われているすべてのパッケージを確認したり変更することができます。
  
== 手順 ==
+
== 理屈 ==
  
どのLazarusパッケージにも.lpkファイルがあります。パッケージは名前とバージョンで識別されます。
+
各々のLazarusパッケージに.lpkファイルが一つずつあります。パッケージは名前とバージョンで識別されます。名前はlpkファイル名と同じでなくてはなりません。たとえば、次のように:
名前はlpkファイル名と同じでなくてはなりません。たとえば、次のように:
 
 
Name: Package1, Version: 1.0, Filename: /home/.../package1.lpk.
 
Name: Package1, Version: 1.0, Filename: /home/.../package1.lpk.
  
* IDEは自動的にメインのソースファイルを生成します。(package1.pas) 下を見てください。lpkファイルは必要とするパッケージの情報(どのファイルが必要か、どのようにコンパイルするか、他のプロジェクトやパッケージで必要とされる際に、何が必要となるか、など)をもっています。lpkファイルがあるディレクトリは "package directory"と呼ばれます。
+
* IDEは自動的にメインのソースファイルを生成します。(package1.pas) 下を見てください。lpkファイルは必要とするパッケージの情報(どのファイルが必要か、どのようにコンパイルするか、他のプロジェクトやパッケージで利用される際に、何が必要となるか、など)をもっています。lpkファイルがあるディレクトリは "package directory"と呼ばれます。
 
+
* IDEは全てのパッケージファイルのリストをもっています。(<config directory>/packagelinks.xml). IDEでパッケージを開くたびに、それがこのリストに追加されます。パッケージが開かれる度に、IDEは必要となる全てのパッケージを自動的に開きますが、それにはこのリストを使います。
* IDEは全てのパッケージファイルのリストをもっています。(<config directory>/packagelinks.xml). IDEでパッケージを開くたびに、それがこのリストに追加されます。パッケージが開かれるときに、IDEは自動的にすべての依存するパッケージをこのリストを使って開きます。
+
* 3つの基本となるパッケージがあります。FCL, LCL と SynEditです。これらはIDEの一部であるため、これらのパッケージは自動的に作られ、読み取り専用であり、lpkファイルもありません。
 +
* 通常、パッケージには1つのソースディレクトリがあり、そのディレクトリにはいくつかのPascalユニットがはいっています。通常、lpkファイルもそのディレクトリにあります。パッケージは、また1つの出力ディレクトリを持っています。デフォルトは、パッケージディレクトリ内の 'lib/$(TargetCPU)-$(TargetOS)/' です。
 +
* パッケージをコンパイルする前に、IDEは全部の依存するパッケージをチェックして、依存するパッケージが更新する必要があるかどうか、自動更新フラグがセットされているか調べて、もしそうなら、それらを先にコンパイルします。次いでIDEはパッケージのメインソースファイルを生成します。もし、lpkファイルの名前がpackage1.lpkであれば、メインソースファイルは package1.pasです。このファイルは、usesセクションにすべての使用するユニットを含み、また、Register手続きを含んでいます。この手続きはinitialization節で呼ばれます。
  
* 3つの基本となるパッケージがあります。FCL, LCL と SynEditです。これらは、IDEの一部であり、これらのパッケージは、自動的に作られ、ReadOnlyであり、lpkファイルはありません。
 
 
* 通常、パッケージはいくつかのPascalユニットがはいっている、1つのソースディレクトリがあります。通常lpkファイルもそこのディレクトリにあります。パッケージは、また1つの出力ディレクトリがあり、デフォルトは、'lib/$(TargetCPU)-$(TargetOS)/'の下のパッケージディレクトリです。
 
 
* パッケージがコンパイルされる前に、IDEは全部の依存するパッケージをチェックして、依存するパッケージが更新する必要があるかどうか、自動更新フラグがセットされているか調べて、それらを先にコンパイルします。それからIDEはパッケージのメインソースファイルを生成します。もし、lpkファイルの名前がpackage1.lpkであれば、メインソースファイルは package1.pasです。このファイルは、usesセクションにすべての使用するユニットを含み、initialization節にRegister関数を追加します。
 
 
例:
 
例:
  
Line 119: Line 114:
  
 
* その後、コンパイラが実行されて、パッケージが出力ディレクトリに生成されます。
 
* その後、コンパイラが実行されて、パッケージが出力ディレクトリに生成されます。
* コンパイルが成功した後で、ステートファイルが生成されます。ステートファイルは出力ディレクトリに置かれます。<packagename>.compiledという名前で、どのようにコンパイルされたか、という情報をもっています。この状態ファイルは、パッケージの更新が必要かどうかチェックするため、IDEで利用されます。
+
* コンパイルが成功すると、ステートファイルが生成されます。ステートファイルは出力ディレクトリに置かれます。<packagename>.compiledという名前で、どのようにコンパイルされたか、という情報をもっています。IDEはこの状態ファイルを用いてパッケージの更新が必要かどうかチェックします。
  
 
gtkopengl.compiled の例:
 
gtkopengl.compiled の例:
Line 132: Line 127:
 
  </CONFIG>
 
  </CONFIG>
  
* IDEは必要とする全てのパッケージを自動的に開きます。ここでいう全てのパッケージとは、インストールされているすべてのパッケージ、インストール設定で、自動インストールとマークされたすべてのパッケージ、開いているエディタ上のすべてのパッケージ、プロジェクトや他のパッケージで必要としているパッケージ、です。必要としないパッケージは、IDEがアイドル状態に、自動的にアンロードされます。
+
* IDEは必要とする全てのパッケージを自動的に開きます。ここでいう全てのパッケージとは、インストールされているすべてのパッケージ、インストール設定で、自動インストールとマークされたすべてのパッケージ、開いているエディタ上のすべてのパッケージ、プロジェクトや他のパッケージで必要としているパッケージ、です。必要としないパッケージは、IDEがアイドル状態になると、自動的にアンロードされます。
* IDEは同時に同じ名前のパッケージを開くことはしません。ユーザーがすでにインストールされているパッケージと同じ名前の他のパッケージファイルを開こうとすると、IDEは古いパッケージと置き換えるかどうか尋ねます。
+
* IDEは同時に同じ名前のパッケージを二つ開くことはしません。ユーザーがすでにインストールされているパッケージと同じ名前の他のパッケージファイルを開こうとすると、IDEは古いパッケージと置き換えるかどうか尋ねます。
* IDEは2つに分類される外部パッケージを持っています。インストールされたパッケージと、自動インストールパッケージです。自動インストールパッケージは、次にコンパイルされる時にIDEにリンクされます。これは2つの新しいファイルをconfigフォルダに生成します。staticpackages.inc と、 idemake.cfg です。後で、'make ide OPT=@/path/to/your/config/idemake.cfg' とすることで、IDEは自分自身をコンパイルします。
+
* 他にもIDEは二種類のパッケージを記録しています。インストールされたパッケージと、自動インストールパッケージです。自動インストールパッケージは、次にコンパイルされる時にIDEにリンクされます。これは2つの新しいファイルをconfigフォルダに生成します。staticpackages.inc と、 idemake.cfg です。次いで'make ide OPT=@/path/to/your/config/idemake.cfg' とすることで、IDEは自分自身をコンパイルします。
  
 
== ヒントと例題 ==
 
== ヒントと例題 ==
Please add any hints, tips or gotchas here.
+
ここにヒントや例題などを書いてください。
  
*To rename a package, use 'save as'.
+
*パッケージの名前を変更するには、'save as'を使ってください。
  
 
Example
 
Example
Line 160: Line 155:
 
  "$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" which will be added
 
  "$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" which will be added
 
  to whatever project uses this package.
 
  to whatever project uses this package.
 +
 +
== コンポーネントを既存のパッケージに追加するには ==
 +
 +
コンポーネントを含んだファイルを既存のパッケージに追加するには、次のようにすればできます:
 +
 +
* パッケージファイルを開きます。
 +
* 新しい要素をパッケージに追加するため'Add' をクリックします。
 +
* 'Add to package' ダイアログから unit タブを選びます。
 +
* 追加するファイルを選びます。
 +
* ユニットに Register 手続きがあるなら、'Has register procedure' をチェックします。これをチェックしないと、コンポーネントはコンポーネントパレットに追加されません。
 +
* 'Add unit' をクリックします。
 +
* リコンパイルして、パッケージをインストールします。
 +
 +
これだけで、コンポーネントがコンポーネントパレットに現れることになります。
 +
 +
== Register 手続き ==
 +
コンポーネントは Lazarus に登録されてはじめてコンポーネントパレットに現れます。 この登録を行うのが Register 手続きです。この手続きはインストールプロパティやコンポーネント用のコンポーネントエディタと同じく、ユニットの interface 節に現れる必要があり、その手続きの中で RegisterComponent を実行する必要があります。
 +
 +
一つのパッケージの中に、複数の Register 手続きがあってもかまいませんが、パッケージエディタで、登録用手続きをもつユニットがどれか指定する必要があります。そうすれば、Lazarusはパッケージをインストールする時どの手続きを呼ばなければならないかわかります。
 +
 +
登録手続きをもつユニットをマークするには、二つの方法があります:
 +
 +
上記のように、ユニットをパッケージに追加する操作の間に行うことができます。また、パッケージダイアログの中でユニットを選び、details パネルの中の 'Register' チェックボックスをチェックすることもできます。プロパティを変更した後、リコンパイルしてインストールするのを忘れないで下さい。
  
 
== 貢献している人とコメント ==
 
== 貢献している人とコメント ==
  
 
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusPackages version].
 
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusPackages version].

Latest revision as of 16:27, 7 August 2008

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) português (pt) русский (ru) slovenčina (sk)

Lazarusのパッケージシステムの概要

lazarusパッケージとは?

lazarusパッケージとは、ユニットやコンポーネントを集めたものです。それには、どのようにコンパイルできるかという情報や、IDEや他のパッケージや、プロジェクトで、どうやって使うか、といった情報が含まれています。Delphiと大きく違うところは、パッケージはOSに依存したライブラリではないということです。(Library Packagesは特別にコンパイルされたライブラリで、アプリケーションやIDEで使われます。Delphiのパッケージは、コンパイラ内部でのサポートを必要としますが、コンパイラマジックを必要としています。fpcは現在の時点ではそのようなコンパイラマジックを受け付けませんし、もちろんそのようなマジックはOS環境に依存するものとなります)

現在のところ、Free Pascalコンパイラは、スタティックな(静的にリンクされた)パッケージしかサポートしません。ですから、パッケージをインストールしたり、アンインストールしたりするときには、IDEのコンパイルと再起動が必要です。

lazarusパッケージは名前とバージョンによって識別され、区別されます。

よくある質問

Q: 私はパッケージをインストールする必要はありますか?

A: パッケージが、IDEのコンポーネントパレットのコンポーネントのように、フォーム設計の際に必要な場合に限り、インストールする必要があります。そうでなければ、パッケージをインストールする必要はありません。プロジェクトでパッケージを使いたいだけならば、インストールしないでください。


Q: パッケージをインストールしました。しかし、IDEがユニットを見つけてくれません。

A: パッケージのインストールとは、パッケージをあなたのプロジェクトではなくIDEに統合することを意味します。この二つは違うものです。あなたのプロジェクトでパッケージを使いたいときは、メニューからProject -> Project Inspector -> Add -> New Requirement を選択してください。また、IDEに全く機能を付け加えないようなパッケージはアンインストールしてください。

クイックスタート

パッケージシステムを使う操作方法です。次のようにしてください。

新規のパッケージを作る:

  • Package->New Package or File->New... -> Package -> Standard Package
  • パッケージエディタが開きます。
  • 左上のSaveボタンを使います。
  • 'enviroment options'の中の'naming'の設定によっては、IDEはファイルを小文字で保存するか尋ねるかもしれません。yesとしてください。

これでめでたく最初のパッケージを作ることができました。

新しいコンポーネントを追加する:

  • Addボタンを押す -> New component
  • 元になる型を示すコンボボックスからコンポーネントを一つ選びます。たとえば、TBevelなど。
  • Okをクリック
  • パッケージにファイルが追加され、エディタ内に表示されます。
  • パッケージエディタの上にある'install'ボタンをクリックすると、パッケージがインストールされます。
  • Lazarusはパッケージを保存し、IDEをリビルドするかどうか尋ねます。Yesを選択してください。
  • パッケージは静的にリンクされるため、IDEの再起動が必要になります。
  • Lazarusが再起動すると、コンポーネントパレットに新しいコンポーネントが表示されます。(この例でいうと、「TBevel1」がAdditionalページに表示されるでしょう。).
  • もし、コンポーネントパレットに新しいコンポーネントが見つからないなら、おそらく、新しくコンパイルしたLazarusを動かしていないからです。Lazarusをどこにリビルドするかの設定は Environment -> Environment options -> Files -> Lazarus directory でおこなうことができます。

Lazarusがインストールされたディレクトリに対する書き込み権限がない場合には、Lazarusを直接呼び出す代わりに、startlazarusコマンドも使えます。これはたとえば、 ~/.lazarusにある新しく生成されたLazarsuの実行ファイルを起動します。

これでめでたく最初のコンポーネントを入れた最初のパッケージをインストールできました。

パッケージのためのIDEメニュー

  • File->New... -> Package -> Standard Package

新しいパッケージを作ります。

  • Project -> Project Inspector
 ここで、現在開いているプロジェクトで必要とされているパッケージを見ることができます。
 新しくパッケージへの依存関係を追加することや、不要になったパッケージへの依存を削除することができます。
  • Run -> Compiler options -> Inherited
 ここでコンパイラオプションをどのパッケージから継承するかを見ることができます。

Components ->

 - 'Open package'
   すべてのパッケージを開くことができるダイアログを表示します。
   
 - 'Open package file'
   .lpk ファイルを開きます。
   
 - 'Open package of current unit'
   現在ソースエディタで開いているファイルに属している.lpk ファイルを開きます。
   
 - 'Open recent package'
   最近開いたパッケージファイル(lpk file)を開きます。
   
 - 'Add active unit to a package'
   ソースエディタで開いているユニットをパッケージに追加します。
   
 - 'Package Graph'
   開いているすべてのパッケージの一覧と相関図を表示します。
   
 - 'Configure installed packages'
   IDEにインストールされているパッケージの一覧を編集します。一度に個々のインストール、アンインストールがおこなえます。

Project -> Project Inspector

 ここでは、プロジェクトで使われているすべてのパッケージを確認したり変更することができます。

理屈

各々のLazarusパッケージに.lpkファイルが一つずつあります。パッケージは名前とバージョンで識別されます。名前はlpkファイル名と同じでなくてはなりません。たとえば、次のように: Name: Package1, Version: 1.0, Filename: /home/.../package1.lpk.

  • IDEは自動的にメインのソースファイルを生成します。(package1.pas) 下を見てください。lpkファイルは必要とするパッケージの情報(どのファイルが必要か、どのようにコンパイルするか、他のプロジェクトやパッケージで利用される際に、何が必要となるか、など)をもっています。lpkファイルがあるディレクトリは "package directory"と呼ばれます。
  • IDEは全てのパッケージファイルのリストをもっています。(<config directory>/packagelinks.xml). IDEでパッケージを開くたびに、それがこのリストに追加されます。パッケージが開かれる度に、IDEは必要となる全てのパッケージを自動的に開きますが、それにはこのリストを使います。
  • 3つの基本となるパッケージがあります。FCL, LCL と SynEditです。これらはIDEの一部であるため、これらのパッケージは自動的に作られ、読み取り専用であり、lpkファイルもありません。
  • 通常、パッケージには1つのソースディレクトリがあり、そのディレクトリにはいくつかのPascalユニットがはいっています。通常、lpkファイルもそのディレクトリにあります。パッケージは、また1つの出力ディレクトリを持っています。デフォルトは、パッケージディレクトリ内の 'lib/$(TargetCPU)-$(TargetOS)/' です。
  • パッケージをコンパイルする前に、IDEは全部の依存するパッケージをチェックして、依存するパッケージが更新する必要があるかどうか、自動更新フラグがセットされているか調べて、もしそうなら、それらを先にコンパイルします。次いでIDEはパッケージのメインソースファイルを生成します。もし、lpkファイルの名前がpackage1.lpkであれば、メインソースファイルは package1.pasです。このファイルは、usesセクションにすべての使用するユニットを含み、また、Register手続きを含んでいます。この手続きはinitialization節で呼ばれます。

例:

This file was automatically created by Lazarus. Do not edit!
This source is only used to compile and install
the package GTKOpenGL 1.0.
unit GTKOpenGL; interface uses GTKGLArea, GTKGLArea_Int, NVGL, NVGLX, LazarusPackageIntf; implementation procedure Register; begin RegisterUnit('GTKGLArea', @GTKGLArea.Register); end; initialization RegisterPackage('GTKOpenGL', @Register) end.
  • その後、コンパイラが実行されて、パッケージが出力ディレクトリに生成されます。
  • コンパイルが成功すると、ステートファイルが生成されます。ステートファイルは出力ディレクトリに置かれます。<packagename>.compiledという名前で、どのようにコンパイルされたか、という情報をもっています。IDEはこの状態ファイルを用いてパッケージの更新が必要かどうかチェックします。

gtkopengl.compiled の例:

<?xml version="1.0"?>
<CONFIG>
  <Compiler Value="/usr/bin/ppc386" Date="781388725"/>
  <Params Value=" -Rintel -S2cgi -CD -Ch8000000 -OG1p1
    -Tlinux -gl -vewnhi -l -Fu../../../lcl/units
    -Fu../../../lcl/units/gtk -Fu../../../packager/units
    -Fu. -FElib/ gtkopengl.pas"/>
</CONFIG>
  • IDEは必要とする全てのパッケージを自動的に開きます。ここでいう全てのパッケージとは、インストールされているすべてのパッケージ、インストール設定で、自動インストールとマークされたすべてのパッケージ、開いているエディタ上のすべてのパッケージ、プロジェクトや他のパッケージで必要としているパッケージ、です。必要としないパッケージは、IDEがアイドル状態になると、自動的にアンロードされます。
  • IDEは同時に同じ名前のパッケージを二つ開くことはしません。ユーザーがすでにインストールされているパッケージと同じ名前の他のパッケージファイルを開こうとすると、IDEは古いパッケージと置き換えるかどうか尋ねます。
  • 他にもIDEは二種類のパッケージを記録しています。インストールされたパッケージと、自動インストールパッケージです。自動インストールパッケージは、次にコンパイルされる時にIDEにリンクされます。これは2つの新しいファイルをconfigフォルダに生成します。staticpackages.inc と、 idemake.cfg です。次いで'make ide OPT=@/path/to/your/config/idemake.cfg' とすることで、IDEは自分自身をコンパイルします。

ヒントと例題

ここにヒントや例題などを書いてください。

  • パッケージの名前を変更するには、'save as'を使ってください。

Example

I will use the tiOPF framework as an example  The tiOPF has the
following directory layout, due to the fact that it compiles for FPC,
Delphi 5-7, D2005 and D2006.

Source                <= full path \Programming\3rdParty\tiOPF\Source
 \Compilers
    \Delphi7          <= Delphi 7 package files live here
    \D2005
    \FPC              <= the tiOPF.lpk lived here
 \Core                <= core unit files
 \Options             <= optional unit file for extra features
 \GUI

Using this example, I included in the "Options - Usage - Units"
editbox the following paths:
"$(PkgOutDir);..\..\Core;..\..\Options;..\..\GUI" which will be added
to whatever project uses this package.

コンポーネントを既存のパッケージに追加するには

コンポーネントを含んだファイルを既存のパッケージに追加するには、次のようにすればできます:

  • パッケージファイルを開きます。
  • 新しい要素をパッケージに追加するため'Add' をクリックします。
  • 'Add to package' ダイアログから unit タブを選びます。
  • 追加するファイルを選びます。
  • ユニットに Register 手続きがあるなら、'Has register procedure' をチェックします。これをチェックしないと、コンポーネントはコンポーネントパレットに追加されません。
  • 'Add unit' をクリックします。
  • リコンパイルして、パッケージをインストールします。

これだけで、コンポーネントがコンポーネントパレットに現れることになります。

Register 手続き

コンポーネントは Lazarus に登録されてはじめてコンポーネントパレットに現れます。 この登録を行うのが Register 手続きです。この手続きはインストールプロパティやコンポーネント用のコンポーネントエディタと同じく、ユニットの interface 節に現れる必要があり、その手続きの中で RegisterComponent を実行する必要があります。

一つのパッケージの中に、複数の Register 手続きがあってもかまいませんが、パッケージエディタで、登録用手続きをもつユニットがどれか指定する必要があります。そうすれば、Lazarusはパッケージをインストールする時どの手続きを呼ばなければならないかわかります。

登録手続きをもつユニットをマークするには、二つの方法があります:

上記のように、ユニットをパッケージに追加する操作の間に行うことができます。また、パッケージダイアログの中でユニットを選び、details パネルの中の 'Register' チェックボックスをチェックすることもできます。プロパティを変更した後、リコンパイルしてインストールするのを忘れないで下さい。

貢献している人とコメント

This page has been converted from the epikwiki version.