1

使用する必要があります:

property ThumbnailWidth: integer read FThumbnailWidth 
  write FThumbnailWidth default 170;
property ThumbnailHeight: integer read FThumbnailHeight 
  write FThumbnailHeight default 120;

また

property ThumbnailHeight: Integer read GetThumbnailHeight 
  write SetThumbnailHeight;
property ThumbnailWidth: Integer read GetThumbnailWidth 
  write SetThumbnailWidth;

双方向は大丈夫ですか?

4

1 に答える 1

4

場合によります。:-)

副作用が必要ない場合は、最初のサンプルのように、プライベート変数に直接アクセスできる場合があります。

ただし、多くの場合、画面の更新、計算の実行、その他の内部値の変更など、プロパティ値が変更されたときに必要な操作が他にもあります。その場合、getterand setter( Delphi ではreadandwriteメソッド) が必要です。

Delphi はメソッドをコンポーネント ユーザーから隠しているため、ほとんどの場合、最初にメソッドを使用することを好みます。多くの場合、内部値に直接アクセスするだけで他に影響はありませんが、後で変更する必要がある場合は、作業が少なくなります。

メソッドの使用には他の用途もあります。他のプロパティを変更する必要がある場合は、それらが持つ副作用をトリガー (または回避) する必要がある場合があります。publishedプロパティにアクセスすることで、メソッドでそれを行うことができます (ThumbnailHeight比例を保つためにサムネイルの幅を変更する場合など)。表示を更新する必要がある場合)、またはそうでない場合に内部フィールドにアクセスする場合 (internalFThumbnailHeightを直接使用することによって)。

ダイレクト アクセスメソッドとアクセス メソッドの違いについては、ドキュメントのプロパティの定義を参照してください(後者は最初のものに多くの情報を追加しませんが、読み取り/書き込みメソッドへのリンクがいくつかあります)。

于 2013-04-12T02:46:31.177 に答える