デルファイ:どのようにデルファイのコントロールの親を変更するには?

私は2つの異なるdllを作成していましたが、TCustomPanelから異なるコントロールが駆除されていますが、この2つのコントロールには同じインターフェースがあり、このインターフェースはsetparentプロシージャを所有しています!

これは質問です:私はdllからコントロールを作成するとき、コントロールの親を(dllから)変更したいときに、コントロールのForm1オブジェクトの親を最初に設定する必要があります。親が、私はもう子コントロールを見ることができません:(

新しい親(Left and TopとWidth and Height)で子コントロールの位置を確認しました。問題はありません。 私は親オブジェクトのクラス名をチェックしましたが、問題はありません(彼は私に新しい親コントロールクラス名を表示します)

私は子コントロールと新しい親コントロールのコントロールを確認しました。

私は親を変更しようとした後、画面上のコントロールを見ることができません!

注:この2つのコントロール(子と親)は、異なるdllから来ています

ご協力いただきありがとうございます

コード

<����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�コントロールdllのクラスオブジェクト

<����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

����これをメインフォームで試しています:フォームにTButtonとTPanelを追加し、プログラムを実行しました。ボタンをクリックすると、TVLCVideoオブジェクトの親を変更できますが、画面上にオブジェクトが表示されません。

ButtonとPanel1はランタイムコンポーネントではなく、設計時にフォームに追加しました!

これはボタンonclickイベントです:

<���������������������������������������������������������������������������

����コンパイラまたはランタイムからエラーメッセージを受け取っていません。私はちょうど親を変更した後、TVLCVideoコントロールを見ることができません:(

私はDelphi 2010を使用しています

1
追加された 編集された
ビュー: 1
なぜパッケージの代わりにDLLを使用していますか?
追加された 著者 Joe White,
繰り返しますが、私は質問します:なぜあなたはパッケージの代わりにDLLを使用していますか? DLLを使用しているときは、各DLLにはTWinControlクラスのコピーがあります(他のすべてはTObjectまであります)。パッケージを使用する場合、同じモジュール性が得られますが、すべてが同じTWinControlクラスを使用するので、型キャスティングは適切に機能します。モジュールの読み込みは設計されたパッケージです。あなたがそれらを使用しない場合、あなたは奇妙な問題を抱えます。あなたがパッケージを使用していないために奇妙な問題があるかどうかはわかりませんが、非常にうまくいく可能性があります。
追加された 著者 Joe White,
あなたはVCLのインスタンスを複数持っています。それは動作しません。パッケージを使用するか、VCL数を1に保つ完全なプラグインAPIを記述します。
追加された 著者 David Heffernan,
StackOverflowへようこそ。コードを提供していない質問に答えるのは本当に難しく、あなたの説明はあまり明確ではありません。私たちは、あなたが私たちに語っていること以外のあなたの問題についての情報はなく、スクリーンやコードはここから見ることができないことを覚えておいてください。私たちと一緒に作業しなければならないのは、あなたが求める質問だけです。明確な詳細を提供していない場合(または少なくとも問題の明確な説明といくつかのコードを読んでください)、問題を解決することは非常に困難です。 :)
追加された 著者 Ken White,
すべてのコントロールはメインアプリケーションのモジュールのように。メインアプリケーションは空ですが、フォームに何もコントロールしていません。彼はモジュールからすべてのランタイムを作成する必要があります。たぶん私は将来(プラグインのような)新しいモジュールを書くことができます
追加された 著者 relativ,
こんにちはケン、あなたの返事をありがとう。もう一度それを確認できますか?
追加された 著者 relativ,

答えはありません

0