私は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);