変更されたコンポーネントの作成と登録
既存のコンポーネントの変更:インデックス への移動
すべてのコンポーネントを同じように作成します。 ユニットの作成、コンポーネント クラスの派生、登録、ツール パレットへのインストールを行います。 このプロセスの概要については、「新しいコンポーネントの作成」を参照してください。
たとえば、次の仕様に従って、コンポーネント作成の一般的な手順を実行します。
- コンポーネントのユニットを Memos と呼びます。
- TMemo から TWrapMemo という新しいコンポーネント タイプを派生させます。
- ツール パレットの [Samples] ページに TWrapMemo を登録します。
- その結果、ユニットは次のようになります。
unit Memos;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, StdCtrls;
type
TWrapMemo = class(TMemo)
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TWrapMemo]);
end;
end.
#include <vcl.h>
#pragma hdrstop
#include "Yelmemo.h"
//---------------------------------------------------------------------------
#pragma package(smart_init);
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//
static inline void ValidCtrCheck(TYellowMemo *)
{
new TYellowMemo(NULL);
}
//---------------------------------------------------------------------------
__fastcall TYellowMemo::TYellowMemo(TComponent* Owner)
: TMemo(Owner)
{
}
//---------------------------------------------------------------------------
namespace Yelmemo
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TYellowMemo)};
RegisterComponents("Samples", classes, 0);
}
}
#ifndef YelMemoH
#define YelmemoH
//---------------------------------------------------------------------------
#include <sysutils.hpp>
#include <controls.hpp>
#include <classes.hpp>
#include <forms.hpp>
#include <StdCtrls.hpp>
//---------------------------------------------------------------------------
class PACKAGE TYellowMemo : public TMemo
{
private:
protected:
public:
__published:
};
//---------------------------------------------------------------------------
#endif
ここで新しいコンポーネントをコンパイルしてインストールすると、その祖先である TMemo と全く同様に動作します。 次のセクションでは、コンポーネントに簡単な変更を加えます。