こんにちは、私は TControl の子孫を開発しています。THTMLBaseControl と名付けましょう。このコントロールは実行時に、そのコントロールの設定に基づいて HTML コードのみを生成および出力します。そのため、Windows Messaging システムを含む基本 TControl クラスとメソッドのすべての追加プロパティは次のとおりです。実際には実行時に使用されず、メモリ オーバーヘッドが発生します。
そのコントロールを TControl から継承する必要があるため、デザイン時にすべての IDE デザイナ機能を使用できます。
しかし、実行時には、設計時に必要なこれらのプロパティのほとんどすべてが必要ありません。
また、すべてのコントロールがその THTMLBaseControl から継承されているため、コントロール クラスごとにラッパー クラスを作成することはできません。コードが大量に複製されるためです。
したがって、実行時に必要なのは、クラスがインスタンス化される前に、親クラスを変更して、TControl のように「TComponent」から継承された TmyBaseControl という名前の別の TControl に似たクラスに基づいてインスタンス化できるようにすることですが、そうではありません。 TControl のすべてのメモリ オーバーヘッドがあり、THTMLBaseControl に必要なプロパティとメソッドのみが含まれます。
私は実際にGUIを持っていません.rutimeはHTMLのみを提供するWebサーバーであり、intrawebとRaudusが行うことですが、常に問題はすべてTControlに基づいているため、実行時に作成して生成する必要があります使用されていない大量のメモリとプロセスのオーバーヘッド。また、実行時にインスタンス化された THTMlBaseControl の子孫が、TControl からではなく TmyBaseControl からすべてのプロパティとメソッドを継承するような解決策があるかもしれません。
VMT をハッキングする方法があるのを見てきましたが、おそらく他の解決策があり、それを見ていません。NewInstance、ClassParent、および TnstanceSize クラス メソッドの変更は既に完了していますが、どのクラスからのものかを指定する必要があり、継承された THTMLBaseControl クラスごとに同じ手順を実行する必要があります。
そして、すべてのために:これは単なる疑いです。コンポーネントをTEdit、TPanelなどのコントロールにする必要があり、デザイナーIDEで表示および編集可能にする必要があります。独自のTControlクラスを作成することもできますが、再利用できるかどうかを考えていました.コードはすでに存在します。
よろしく