FCL/ja
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
Bahasa Indonesia (id) │
日本語 (ja) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Free Component Library (FCL)はどのようなプロジェクトでも良く使うコンポーネント(ほとんどはクラス)を提供しているユニットの集合です。
それらはDelphiのVisual Component Library(VCL)と互換性をもつようにして作られてはいますが、FCLは厳密に、ノンビジュアルなコンポーネントとして設計されています。 また、FCLはVCLよりも優れている部分が多くあります。 (訳注:FCLはGUIやフォームに依存しないものが分離されている。そのためコンソールでも使えるなど応用範囲が広くなっている。FCLでは仕様をはっきりさせようとしており、品質が高く、多くのFPCプロジェクトを支える柱となっている。一方、LCLはGUIやフォームに依存するものが集められOS間でビジュアルな統一をしようとするため、かなり使えるものではあるが、仕様的な統一の難しさがある。)
現在の開発状況やりようできるコンポーネントを知るにはFree Component Libraryを見てください。
(Lazarusのこちらのページと一致していない部分があります。 Reference for 'fcl' ).
最新の状況はソースリポジトリもチェックしてみてください。 いくつかプラットホームに分かれたファイルがあることに注意してください。
いくつかのFCLコンポーネントが使われている例を示します。
使い方
FCLコンポーネントを使うにはプログラムやユニットのuses節でFCLコンポーネント名を指定します。 デフォルトのコンパイラ設定では、FCLディレクトリがユニットの検索に含まれています。 コマンドラインコンパイラでは適切な検索パスを -Fu<path-to-fcl-units>オプションで指定することができます。
サブパッケージ
Currently (future 2.2.2+) the FCL is divided into several subpackages: 現在(2.2.2以降)では、FCLはいくつかのサブパッケージにわかれています。
- fcl-base/ja 基本ユニット
- fcl-async/ja 非同期I/O
- fcl-db/ja 一般的なデータベースのサポート+ドライバ
- fcl-fpcunit/ja ユニットテストフレームワーク
- fcl-image/ja 画像の読み書き
- fcl-json/ja javascriptオブジェクトストリーミング
- fcl-net/ja ネットワーク関連
- fcl-passrc/ja パスカルの字句解析
- fcl-process/ja プロセス制御
- fcl-registry/ja レジストリ
- fcl-web/ja WEB開発のヘルパー
- fcl-xml/ja XML (DOM)に関するもの
文書
現在のところFCLは文書化されていません。 Reference for 'fcl'を見ていただき、自由に参加してください。 Delphiと互換性のあるユニットについては、Delphiの文書も参考になるでしょう。 FreePascalのソースファイルはいつでも見れるようになっています。 source repository.
例
次のプログラムはContnrsユニットのTObjectListをFCLで使う例です。 Contnrsユニットはリスト、スタック、キューなどのいろいろなコンテナを提供しています。
<delphi> program TObjectListExample;
uses Classes, { from RTL for TObject } Contnrs; { from FCL for TObjectList } type TMyObject = class(TObject) { just some application-specific class } private FName: String; { with a string field } public constructor Create(AName: String); { and a constructor to create it with a given name } property Name: String read FName; { and a property to read the name } end; constructor TMyObject.Create(AName: String); begin inherited Create; FName := AName; end; var VObjectList: TObjectList; { for a list of objects; it is a reference to such a list! } begin VObjectList := TObjectList.Create { create an empty list } with VObjectList do begin Add(TMyObject.Create('Thing One')); Writeln((Last as TMyObject).Name); Add(TMyObject.Create('Thing Two')); Writeln((Last as TMyObject).Name); end; end.</delphi>
このプログラムはオブジェクト指向モード(-Mobjfpc や -Mdelphiオプション)でコンパイルします。
FCLコンポーネント
This is not an exhaustive list (to avoid duplication of effort). It only mentions some important components, or components that are otherwise not easy to find.
- Classes
- Base classes for Object Pascal extensions in Delphi mode
- Contnrs
- Some common container classes
- FPCUnit
- Unit testing framework (based on Kent Beck's unit testing framework, e.g. cf. JUnit), documenting article about FPCUnit
- XMLRead, XMLWrite and DOM
- Detailed at the XML Tutorial