プロパティを作成する理由

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

プロパティの作成:インデックス への移動


アプリケーション開発者の立場から言うと、プロパティは変数のようなものです。開発者は、フィールドの場合と同じようにして、プロパティの値を設定したり読み取ることができます (ただ 1 つ、変数では可能でプロパティで不可能なのは、var パラメータとして渡すことです)。

プロパティは、以下の点で単純なフィールドよりも強力です。

  • アプリケーション開発者は設計時にプロパティを設定することができます。実行時にしか使用できないメソッドと違って、開発者はプロパティを使ってアプリケーションの実行前にコンポーネントをカスタマイズできます。プロパティは[オブジェクト インスペクタ]に表示できるため、プログラマの作業が簡単になります。いくつものパラメータを使ってオブジェクトを作成するのではなく、[オブジェクト インスペクタ]から値を渡すことができます。[オブジェクト インスペクタ]では、プロパティに代入した直後からその内容を確認できます。
  • プロパティによって実装の詳細を隠蔽することができます。たとえば、内部的には暗号化された形式で格納されているデータを、プロパティの値としては暗号化されていないように表示することができます。また、値が単純な数値であったとしても、コンポーネントがデータベースの値を検索したり、複雑な計算によって導き出している場合があります。プロパティを使用すると、一見単純な代入に複雑な効果を加えることができます。フィールドへの代入に見えるものが、複雑な処理を実装したメソッドの呼び出しであるということも可能です。
  • プロパティは仮想メソッドにすることができます。つまり、アプリケーション開発者には 1 つのプロパティに見えても、コンポーネントによって実装が異なる場合があります。

単純な例が、すべての VCL コントロールに含まれている Top プロパティです。Top に新しい値を代入すると、格納された値が変更されるだけではなく、コントロールの位置が変更されて再描画されます。また、プロパティの設定が及ぼす影響は、必ずしも 1 つのコンポーネントに限定されません。たとえば、スピード ボタンDown プロパティを True に設定すると、同じグループ内の他のすべてのスピード ボタンの Down プロパティが False に設定されます。