Delphi で引数にクラス型?を渡す
関数に汎用性を持たせたり、動的生成したコンポーネントを探す場合に、クラス名で参照したい時がある
以下、クラス名でTComponentを探す例
(後ろから調べて最初に見つかったのを一つ返す)
以下、クラス名でTComponentを探す例
(後ろから調べて最初に見つかったのを一つ返す)
type TComponentClass = class of TComponent; function FindComponentClass(OwnerComponent: TComponent; FindClass: TComponentClass): TComponent; var I: Integer; begin Result := nil; for I := OwnerComponent.ComponentCount - 1 downto 0 do begin if (OwnerComponent.Components[I] is FindClass) then begin Result := OwnerComponent.Components[I]; Exit; end; end; end;
FindComponentClass(Self, TButton); みたいな感じで利用する
コメント