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