( ゚Д゚)ノ Delギコ猫のプログラミング相談室part2

このエントリーをはてなブックマークに追加
753Delギコ
    ∧ ∧  /
    (,,゚Д゚)<  クラスフィールド?
     |つ つ  \
   @   |  
    ∪ ∪

ひらぽん氏が話題を負ってくれたので紹介してみる。
こういう事がやりたいんじゃないの?
2chのどこかで教えてもらったけど、どこか忘れた。

 TMyClass = class(TObject)
 private
  FName: String;
 public
  constructor Create;
  destructor Destroy; override;
  class function ClassList: TObjectList;//クラスメソッド
  property Name: String read FName write FName;
 end;

{ TMyClass }

var
 MyClassList: TObjectList; //Unit内Object

class function TMyClass.ClassList: TObjectList;
begin
 Result := MyClassList;
 //Unit内Objectをクラスメソッドを利用してアクセス
end;

constructor TMyClass.Create;
begin
 MyClassList.Add(Self);
 //クラスを生成するたびにListに登録
end;

destructor TMyClass.Destroy;
begin
 MyClassList.Extract(Self);
 //クラスを破棄するときにListから破棄
 inherited;
end;

initialization
 MyClassList := TObjectList.Create;
 //Unit内Objectはここで生成

finalization
 MyClassList.Free;
 //Unit内Objectの破棄

end.