プロパティ書き込みメソッド
アクセス メソッド(プロパティ) への移動
プロパティの書き込みメソッドは、そのプロパティと同じ型のパラメータを 1 つ取る手続きです(後述の場合を除く)。このパラメータは、参照渡しでも値渡しでもどちらでもよく、また、どのような名前でもかまいません。慣例により、書き込みメソッドの名前は、プロパティ名の前に Set を付け加えたものになります。たとえば、Count というプロパティの書き込みメソッドは SetCount になります。パラメータに渡された値は、プロパティの新しい値になります。書き込みメソッドでは、プロパティの内部記憶域に適切なデータを格納するのに必要なあらゆる操作を実行する必要があります。
パラメータを 1 つだけ取るという規則の例外は、配列プロパティの場合と、インデックス指定子を使用するプロパティの場合だけです。どちらの場合も、インデックス値を第 2 パラメータとして渡します。なお、インデックス指定子を使用すると、複数のプロパティで共有される単一の書き込みメソッドを作成できます。インデックス指定子の詳細については、「Delphi 言語ガイド:インデックス」を参照してください。
書き込みメソッドを宣言しない場合、プロパティは読み取り専用になります。
一般に、書き込みメソッドでは、プロパティ値を変更する前に、新しい値が現在の値と異なるかどうかを検査します。たとえば、以下は Count という整数プロパティの簡単な書き込みメソッドの例ですが、ここでは、FCount というフィールドに新しい値を格納しています。
procedure TMyComponent.SetCount(Value: Integer);
begin
if Value <> FCount then
begin
FCount := Value;
Update;
end;
end;
void __fastcall TMyComponent::SetCount( int Value )
{
if ( Value != FCount )
{
FCount = Value;
Update();
}
}