ウィキのコピーミラー

これは pascal.chat のウィキのミラーです。編集、履歴、ログインはそちらで行います。

FCL/ja

Bahasa Indonesia · Deutsch · English · Español · Français · Suomi · Русский · 中文(中国) · 日本語

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>オプションで指定することができます。

サブパッケージ

現在(2.2.2以降)では、FCLはいくつかのサブパッケージにわかれています。

文書

現在のところFCLは文書化されていません。 Reference for 'fcl'を見ていただき、自由に参加してください。 Delphiと互換性のあるユニットについては、Delphiの文書も参考になるでしょう。 FreePascalのソースファイルはいつでも見れるようになっています。 source repository.

例

次のプログラムはContnrsユニットのTObjectListをFCLで使う例です。 Contnrsユニットはリスト、スタック、キューなどのいろいろなコンテナを提供しています。

pascal
 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.

このプログラムはオブジェクト指向モード(-Mobjfpc や -Mdelphiオプション)でコンパイルします。

FCLコンポーネント

重複があるので詳しくは記述しませんが、ここでは主要なもののみ記述します。

Classes
DelphiモードにおけるObjectPascalの拡張の基本クラスです。(訳注:FPCモードでも使える)

Contnrs
いくつかの共通のコンテナクラス

FPCUnit
ケント・ベック(Kent Beck)のユニットテストフレームワークがFPCで動作します。(参考:JUnit), documenting article about FPCUnit

XMLRead, XMLWrite ,DOM
XMLの読み書きやDOMの詳細XML Tutorial


From the Free Pascal wiki, page "FCL/ja", as it stood on 2020-02-14 after a change by Trev, 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.

第1版、最終更新:WikiArchive 。