プロパティの新しいデフォルト値を宣言する

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

既存のコンポーネントの変更:インデックス への移動

Delphi は,フォームのデータをフォームファイルに保存する際,デフォルト値と異なる値のプロパティしか保存しません。こうすることでフォームファイルの容量が小さくなり,フォームの読み込みも高速化されます。このため,プロパティを作成したりデフォルト値を変更した場合は,そのプロパティの新しいデフォルト値を宣言します。フォームファイル,プロパティの読み込み,デフォルト値の詳細は,「コンポーネントを設計時に利用できるようにする」を参照してください。

プロパティのデフォルト値を変更するには,そのプロパティの名前を再宣言して default 指令と新しい値を記述します。プロパティ全体を宣言する必要はありません。再宣言するのは,プロパティの名前とデフォルト値だけです。

次に,メモコンポーネントを変更してワードラップを行わないようにする例を示します。オブジェクト宣言の published 部で WordWrap プロパティを再宣言し,デフォルト値として False を記述しています。



 type
   TWrapMemo = class(TMemo)
   .
   .
   .
   published
     property WordWrap default False;
   end;



 
 //ヘッダーファイル
 class PACKAGE TYellowMemo : public TMemo
 {
 public:
     virtual __fastcall TYellowMemo(TComponent* Owner);
 __published:
     __property Color = {default=clYellow};
 };



 
 //実装ファイル
 __fastcall TYellowMemo::TYellowMemo(TComponent* AOwner) : TMemo(AOwner)
 {
   Color = clYellow;
   WordWrap = false;
 }



 
 //デフォルト値 false の WordWrap を含むヘッダーファイル
 class PACKAGE TYellowMemo : public TMemo
 {
 public:
     virtual __fastcall TYellowMemo(TComponent* Owner);
 __published:
     __property Color = {default=clYellow};
     __property WordWrap = {default=false};
 };



プロパティのデフォルト値を指定しただけではコンポーネントの動作は変化しません。コンポーネントのコンストラクタで値を初期化する必要があります。デフォルト値を再宣言すると,Delphi には WordWrap をフォームファイルに書き込む時期がわかります。