私はVFI(ビジュアルフォーム継承)を使用しており、インスタンス化されたフォームのコンポーネントがフォームクラスまたはフォームスーパークラスに属しているかどうかを確認する必要があります。Delphi - ビジュアルフォーム継承 - コンポーネントベースクラス検出
私はlblCodigoがTFormCodigoとcpPanel/lblStatusに対してローカルであることを検出したいfrmCodigoのいずれの場合において
unit1
TFormStatus = class(TForm)
cpPanel: TPanel;
lblStatus: TLabel;
end;
unit 2
TFormCodigo = class(TFormStatus)
lblCodigo: TLabel;
end;
frmCodigo: TFormCodigo:
コンポーネントを継承しています。
for i:=0 to Self.ComponentCount-1 do begin
if "InheritedComponent" (Self.Components[i]) then ...
end;
RTTIをオブジェクトプロパティに使用すると、このようなことは可能ですが、コンポーネントが可能であるかどうかはわかりません。
ありがとうございました。
を示している本当の問題は、次のとおりです。** **あなたが知りたいのはなぜ?私は、この質問の背後にある問題に対する「適切な」OO解決策があると確信しています。おそらく仮想メソッドです。 –
@UlrichそのOPは、自己検査したいフレームワークのようなコードで動作している可能性があります。しかし、はい、私は疑問の背後にある動機づけを理解することに不思議に思います。 –
@David:投稿されたコードは非常に「具体的」に見えます。 :-) –