2012-01-11 17 views
4

私たちは、Delphiで、このような操作を行うことができるかどうかを知りたい: 私は民間の手順を持っている:Delphiで2番目のパラメータをsetterに与える方法は?

procedure SetMySend(const oValue: TTM_MySend_Profile; 
    displayValue: string = '...'); 

私は公共の財産を持っている:

property MySend: TTM_MySend_Profile displayLocateID '...' 
    read FMySend write SetMySend; 

私は、ここで、パラメータdisplayValueを与えることができますセッターの第2パラメータ?私はこれをコンパイルすることはできません。

私はそれを行う正しい方法を理解することができず、私はDelphiでこれを行うことができるかどうか疑問に思います。手伝ってくれてありがとう!

+1

AFAIK、あなたはできません... – RBA

+0

IMHO、これは特定のカテゴリにする必要があります...質問のようなもの私は前に思ったことはありません... @ spspli、それは間違って取得しないでください2つのパラメータを持つセッターを持つことは珍しい... – RBA

+0

1つのプロパティに2つのものを設定すると便利なのはなぜですか?別々に設定してみませんか? –

答えて

6

プロパティのプロパティセッターには、プロパティと同じタイプのパラメーターが1つしかありません。書き込もうとしているコードの種類を記述できる構文はありません。ここでは関係しないarray propertiesを無視しています。

あなたがする必要があるのは、SetMySend機能に余分なパラメータを供給する専用のセッターを書くことです。

procedure SetMySend(const Value: TTM_MySend_Profile; 
    const displayValue: string); overload; 
procedure SetMySend(const Value: TTM_MySend_Profile); overload; 
property MySend: TTM_MySend_Profile read FMySend write SetMySend; 

そして実装では、あなたが似たようなを達成するためにindex specifiersを乗っ取ることができますが、私はそれをお勧めしません

procedure TMyClass.SetMySend(const Value: TTM_MySend_Profile); 
begin 
    SetMySend(Value, '...'); 
end; 

を書きます。

関連する問題