コンポーネントの作成と登録(グリッド)

提供: RAD Studio
移動先: 案内検索

グリッドのカスタマイズ:インデックス への移動

すべてのコンポーネントを同じように作成します。 ユニットの作成、コンポーネント クラスの派生、登録、コンパイル、ツール パレットへのインストールを行います。 新しいコンポーネントの作成 を参照。

たとえば、次の仕様に従って、コンポーネント作成の一般的な手順を実行します。

  1. コンポーネントのユニットを CalSamp という名前で保存します。
  2. TCustomGrid から TSampleCalendar という新しいコンポーネント タイプを派生させます。
  3. ツール パレットの [Samples] カテゴリに TSampleCalendar を登録します。

その結果作成されるVCL アプリケーション内の TCustomGrid から派生したユニットは、次のようになります。

 unit CalSamp;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids;
 
 type
   TSampleCalendar = class(TCustomGrid)
   end;
 
 procedure Register;
 
 implementation
 
 procedure Register;
 begin
   RegisterComponents('Samples', [TSampleCalendar]);
 end;
 
 end.
 #include <vcl\vcl.h>
 #pragma hdrstop
 #include "CalSamp.h"
 //---------------------------------------------------------------------------
 #pragma package(smart_init);
 //---------------------------------------------------------------------------
 static inline TSampleCalendar *ValidCtrCheck()
 {
   return new TSampleCalendar(NULL);
 }
 //---------------------------------------------------------------------------
 namespace Calsamp
 {
   void __fastcall PACKAGE Register()
   {
     TComponentClass classes[1] = {__classid(TSampleCalendar)};
     RegisterComponents("Samples", classes, 0); //VCL アプリケーションで別のページを使用
   }
 }
 #ifndef CalSampH
 #define CalSampH
 //---------------------------------------------------------------------------
 #include <vcl\sysutils.hpp>
 #include <vcl\controls.hpp>
 #include <vcl\classes.hpp>
 #include <vcl\forms.hpp>
 #include <vcl\grids.hpp>
 //---------------------------------------------------------------------------
 class PACKAGE TSampleCalendar : public TCustomGrid
 {
   private:
   protected:
   public:
   __published:
 };
 //---------------------------------------------------------------------------
 #endif

ここでカレンダー コンポーネントをインストールすると、これが [Samples] カテゴリに表示されます。 利用可能なプロパティは、最も基本的なコントロール プロパティのみです。 次のステップで、もっと特化したプロパティをカレンダーのユーザーに利用できるようにします。

メモ: コンパイルしたばかりのサンプル カレンダー コンポーネントはインストールできますが、フォーム上にはまだ配置しないでください。 TCustomGrid コンポーネントには、抽象 DrawCell メソッドがあり、再宣言してからでないと、インスタンス オブジェクトは作成できません。 DrawCell メソッドのオーバーライドについては、「セルの内容を設定する」で説明されています。

関連項目