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); みたいな感じで利用する
コメント