オブジェクトの生成
2-2 :オブジェクトの複数生成2


  Unit2.pas            / 2-1   2-3   2-4  
前節 2-1 では Unit1 のソースを記述しましたが、今回は Unit2 のソースを記述します。
Unit1 でタイマーが呼び出していた個所を中心に見てみましょう。



手順

1: ファイル > 新規作成 > ユニット を選択して下さい。
2: 以下のソースを書き写す。  (コピーアンドペーストでも OK ですが、若干のエラーが発生します)



unit Unit2;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
 Dialogs, ExtCtrls;

type
 TCatWalk = class(TImage)  //イメージコンポーネントを継承する
  constructor Create (AOwner: TComponent); override;
  procedure Move;
 end;

var      //オブジェクト数を宣言
 CatWalk1: TCatWalk;
 CatWalk2: TCatWalk;
 CatWalk3: TCatWalk;
 CatWalk4: TCatWalk;
 CatWalk5: TCatWalk;
 CatWalk6: TCatWalk;
 CatWalk7: TCatWalk;
 CatWalk8: TCatWalk;

implementation

uses Unit1;   // Unit1 を使用

constructor TCatWalk.Create (AOwner: TComponent);
begin
 inherited
  Create (AOwner);    //コンポーネントの作成
  Parent := Cat;       //出現位置を、Cat( Unit1 )とする
  Transparent := True;  // ネコの背景を透過する
end;



// Unit1 で呼び出していた個所
procedure TCatWalk.Move;
begin
 Picture.LoadFromFile('Cat1.bmp');

 case Random(16) of
  0 :begin Top := 10; Left := 10; end;
  1 :begin Top := 10; Left := 90; end;
  2 :begin Top := 10; Left := 180; end;
  3 :begin Top := 10; Left := 270; end;

  4 :begin Top := 90; Left := 10; end;
  5 :begin Top := 90; Left := 90; end;
  6 :begin Top := 90; Left := 180; end;
  7 :begin Top := 90; Left := 270; end;

  8 :begin Top := 180; Left := 10; end;
  9 :begin Top := 180; Left := 70; end;
  10:begin Top := 180; Left := 180; end;
  11:begin Top := 180; Left := 270; end;

  12:begin Top := 270; Left := 10; end;
  13:begin Top := 270; Left := 70; end;
  14:begin Top := 270; Left := 180; end;
  15:begin Top := 270; Left := 270; end;
 end;
end;

end.
トップに戻る /  前に戻る /  次へ