私はdelphi 7を使用しており、私のプロジェクトには多くの利用可能なフォームがあります。使用可能なすべてのフォーム クラス名を取得するために実行しようとしましapplication.component[i].classname
たが、作成されたフォーム クラス名のリストしか取得できません。
プロジェクトで利用可能なすべてのフォームクラス名をリストボックスに取得する方法はありますか?
私はdelphi 7を使用しており、私のプロジェクトには多くの利用可能なフォームがあります。使用可能なすべてのフォーム クラス名を取得するために実行しようとしましapplication.component[i].classname
たが、作成されたフォーム クラス名のリストしか取得できません。
プロジェクトで利用可能なすべてのフォームクラス名をリストボックスに取得する方法はありますか?
組み込みのクラス レジストリを使用できます。
RegisterClass(TMyForm)
。これは、通常、クラスを定義するユニットの初期化セクションから行います。FindClass
、クラス名を渡して呼び出します。FindClass
が を継承するクラスを返すことを確認してくださいTForm
。Application.CreateForm
、単に呼び出してフォーム インスタンスを作成します。Create
インスタンス化は次のようになります。
var
MyClass: TPersistentClass;
Form: TForm;
....
MyClass := FindClass(ClassName);
if MyClass.InheritsFrom(TForm) then
Form := TFormClass(MyClass).Create(AnOwner);