コンテンツにスキップ

Visual Component Library

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。153.215.249.172 (会話) による 2019年5月8日 (水) 18:47個人設定で未設定ならUTC)時点の版 (最初のオブジェクト指向言語はSimulaSmalltalkではない。)であり、現在の版とは大きく異なる場合があります。

Visual Component Library (VCL) とは、視覚化された(ビジュアルな)ソフトウェアコンポーネントを元にして、Microsoft WindowsGUIアプリケーションを作成するためのソフトウェアライブラリおよびフレームワークである。ボーランドが、自社のソフトウェア統合開発環境 (IDE) であるDelphiC++ Builderのために開発した。Object Pascalで記述されている。

VCLはボーランドのRADツールと密接に統合されており、プログラミング言語でコードを記述することなくGUI部品の配置や外観設定をGUI(フォームエディター)で視覚的かつ直感的に行なうこともできるようになっている[1]。これが人気の元である。

後に、同等の機能を持つクロスプラットフォームのライブラリとしてComponent Library for Cross Platform (CLX) がDelphi、C++ Builder、Kylix用に開発されたが、VCLの人気の前には太刀打ちできなかった。

VCLはオブジェクト指向クラスライブラリであり、Object Pascalにおけるオブジェクト型であるSystem.TObjectクラスを頂点とする単一継承のオブジェクト階層をもっている。これはObject Pascalが(C++と異なり)実装の多重継承をサポートしていないからである[2]。代わりにVCLではインターフェイスを用いた型の多重継承が利用されている。例えばSystem.Classes.TComponentクラス[3]は、

TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)

というようにTPersistentクラスから派生し、さらにIInterfaceおよびIInterfaceComponentReferenceインターフェイスを実装する。

Object Pascalにおける継承の機能やメカニズムはJavaとよく似ており、のちにC#にも受け継がれることになった。

派生

1999年6月8日、インプライズ(ボーランド)はマイクロソフトに対し12,500万ドルでその特許使用を認める契約をし[4]、後にVCLの派生ライブラリとして.NET Framework基本クラスライブラリが公開され、現在ではC#Visual Basic .NETを中心としたWindowsアプリケーション開発における主力ライブラリとなっているほか、Mono.NET CoreによりWindows以外のプラットフォームにも広がりを見せている。特にWindows Formsは、VCLの設計や開発スタイルを強く受け継いでいる。

問題点

VCLはWindows専用であり、他プラットフォームへの移植性はない。また、Delphi側の仕様起因でUnicode対応が遅れていたが、Delphi 2009でUnicode対応が強化された[5]

関連項目

脚注

  1. ^ Object Pascalが言語機能としてサポートしているプロパティが、IDEと親和性が高いことも寄与している。
  2. ^ C++であっても、Microsoft Foundation Class (MFC) などのように単一継承のクラス階層で設計されているライブラリもある。
  3. ^ System.Classes.TComponent - RAD Studio API Documentation
  4. ^ 日経BP (1999年6月9日). “USNews Microsoft、かつてのライバルInpriseに資本参加”. 2009年8月4日閲覧。
  5. ^ Delphiにおける一般的なUnicodeへの移行テクニック

外部リンク