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やフォームに依存しないものが分離されている。そのためコンソールでも使えるなど応用範囲が広くなっている。仕様をはっきりさせようと努力しており、品質は日々目に見えて改善がすすんでおり、多くのプロジェクトを支える柱となっている。一方、LCLはGUIやフォームに依存するものが集められOS間でビジュアルな統一をしようとするため、仕様的な難しさに直面しており、現在のところ品質的にはFCLに及ばない部分が多いが、かなり使える。)
現在の開発状況やりようできるコンポーネントを知るには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)に関するもの
文書
Currently, the FCL is not documented (feel free to contribute; also take a look at Reference for 'fcl'). For Delphi compatible units, you could consult the Delphi documentation. You can always take a look at the source files in the source repository.
Example
The following program illustrates the use of the class TObjectList in the FCL unit Contnrs (providing various containers, including lists, stacks, and queues):
<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>
This program must be compiled in an object-oriented mode, such as -Mobjfpc or -Mdelphi.
FCL Components
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