1

名前だけで動的にフォームを作成する方法はありますか? コンセプトはこんな感じです。メイン フォームがあり、ユーザーの選択によって、多数の定義済みフォームを作成し、メイン フォームのページ コントロールのタブアイテムにドッキングする必要があります。私はフォームの名前を知っており、それらのそれぞれをいつ作成するかを知っていますが、これらのフォームを単一のプロシージャ呼び出しで作成するより良い方法があり、コードにこれらのすべての情報が含まれていないかどうかを知りたいです.

Win 7のDelphi XE3 firemonkey。

助けてくれてありがとう

4

2 に答える 2

1

クラス参照がある場合にのみ、オブジェクトを作成できます。文字列名を指定して何かのクラス参照を取得するには、 を呼び出しますFindClass。結果に対してコンストラクターを呼び出します。必要なコンストラクターへのアクセスをコンパイラーが許可する前に、結果を別のメタクラスに型キャストする必要がある場合があります。VCL では を使用できますがTFormClassTComponentClassすべての FireMonkey オブジェクトはTComponent; 重要な部分は、適切なコンストラクターにアクセスできることであり、必要なコンストラクターが導入される場所です。

登録済みのクラスに対してのみ機能します。フォーム クラスは Delphi によって自動的に登録されるはずですが、登録されていない場合は、RegisterClasses手動で呼び出すかRegisterFmxClasses、クラスをグループに入れる必要がある場合に使用できます。

Delphi.About.com には VCL のデモがあります。

于 2012-12-23T07:04:42.680 に答える