オブジェクト変数の使い方

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

オブジェクト モデルの利用:インデックス への移動

オブジェクト変数は,同じ型か代入互換性のある型の別のオブジェクト変数に代入できます。特に,値を代入するオブジェクト変数の型が上位と下位の関係にある場合,代入先が上位であれば代入できます。たとえば,次のような TSimpleForm 型宣言と変数宣言部があるとします。変数宣言部には AFormSimple の 2 つの変数が宣言されています。

type
  TSimpleForm = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;
var
  AForm: TForm;
  SimpleForm: TSimpleForm;

AFormTForm 型に属し,SimpleFormTSimpleForm 型に属します。TSimpleFormTForm の下位オブジェクトなので,次の代入文は有効です。

AForm := SimpleForm;

ボタンの OnClick イベントのイベントハンドラを記述したとします。ボタンをクリックすると,この OnClick のイベントハンドラが呼び出されます。どのイベントハンドラにも TObject 型の Sender パラメータがあります。

procedure TForm1.Button1Click(Sender: TObject);
begin
.
.
.
end;

Sender 型が TObject に属しているため,Sender には任意のオブジェクトを割り当てられます。Sender の値は常に,発生したイベントに応答するコントロールやコンポーネントを指しています。予約語 is を使って Sender を調べると,イベントハンドラを呼び出したコンポーネントやコントロールの型がわかります。次に例を示します。

if Sender is TEdit then
  DoSomething
else
  DoSomethingElse;

関連項目