問題タブ [tframe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - 動的に割り当てられた TFrame のコンポーネントのオブジェクトをどこで解放しますか?
を含むフォームがありTFrame
ます。には、動的に入力される がTFrame
含まれています。ComboBox
各ComboBox
エントリには、関連付けられたオブジェクトがあります。のオーバーライドされたデストラクタTFrame
が呼び出されるまでに、関連付けられたオブジェクトを解放することなく、 内の ItemComboBox
がすでにクリアされています。これは、デザイナー ビューでフォームに をドロップするか、所有者としてComboBox
nil または を使用してコードで動的に作成した場合に発生します。TFrame
現在、包含のOnDestroy
イベントを使用して、包含TForm
のクリーンアップ手順を呼び出していTFrame
ます。
TFrame
のコンテナによる明示的なプロシージャ呼び出しを必要としないより良い方法はありますか? ComboBox
動的に追加されたオブジェクトをどこで解放するのが理想的ですか?
delphi - TFrame を使用して、TForm と同じように TCanvas プロパティに適切にアクセスするにはどうすればよいですか?
通常のフォームで行うのと同じように、実行時にフレーム Canvas に描画する必要がありますが、何らかの理由で、TCustomFrame と TCustomForm の両方が Canvas を処理する同じ親クラスに由来する場合でも、Canvas プロパティをフレームに追加しないことにしました。 .
PaintWindow プロシージャをオーバーライドして何かを描画できる部分まで動作させましたが、実行時に Canvas プロパティを使用できないようです。コードの大きな塊が欠けているかのようです。
これが私が今までやってきたことです:
ハンドルを適切に割り当てていないか、ペイントイベントが欠落していると思いますか?
delphi - 動的に作成されたフレームを解放する方法は?
Delphi 2010 では... フォームがあります。フォームの左側に Treeview があります。マルチレベルの階層を示しています。タイプ A、B、C、D、E の 5 種類のデータがあるとします。フォームの右側には、TFrame を作成するパネルがあります。Treeview でタイプ「A」のデータ要素をクリックすると、フォームの右側に TFrame が作成され、tFrame「A」が表示されます。基本的に、TreeView のさまざまな階層の詳細を表示しています。5 種類のデータはそれぞれ、異なる種類の TFrame を使用します。TFrame を動的に作成することはできますが、TFrame を削除/解放する場所と方法を理解するのが困難ですか?
前の TFrame の TYPE を示す変数を作成する必要がありますか? TFrame を削除する適切な方法は何ですか? TFrame.Free と一緒ですか?フレーム A の作成、フレーム A のフリー、フレーム B の作成、フレーム B のフリー、フレーム A の作成 (再び) などが必要になる場合があることを覚えておいてください。
私は...の線に沿って何かを試しました...
これは機能しているように見えますが、奇妙な動作を引き起こします (ボタンが消えてしまいます)。また、5 種類の TFrame をすべてグローバル変数として定義する必要があることも意味します。
ありとあらゆる考えに感謝します。
ありがとう、
GS
delphi - firemonkey は実行時にフレームを破壊します
柔軟性のために、さまざまなフレーム (ユーザーが一緒に構築できる可視の「モジュール」 - ダッシュボードなど) が作成され、firemonkey フォームで破棄されます (それらのいくつかは 2 回以上)
リソースのためにコントロールまたはフレームを破棄することは、vcl では簡単でした。
しかし、firemonkeyでこれを(強制的に)行う方法は?(「Free」は「object.release」のみになり、他の参照があるように見えるため、コントロールを破棄しませんでした-しかし、1つのフレームを保持する変数は「作成」と「無料」でのみ使用されます)
delphi - カスタム TFrame の子孫をコンポーネントとして作成する
私は、TFrame を拡張して独自の公開プロパティを持つことについて、stackoverflow に関する多くの記事を読みました。
私は基本的にジョン・トーマスのアプローチに従いました
ここでコードを繰り返します:
新しいフレーム コンポーネントがコンポーネント パレットに表示されます。新しいフレームをフォームに追加して動作します。
ただし、ファイル - >新規 - >その他 - > vclフレームによって作成されたように、新しいフレームをスタンドアロンユニットとして使用する必要があります
私はすべてのフレームを別々のユニットで作成し、必要に応じてフォームに挿入しています。
私の新しいMyFrameがそのように機能するために何をすべきですか?
delphi - TcxPageControl が TFrame でホストされている場合、TcxTabSheet に追加されたコンポーネントが実行時に表示されない
TFrame
を含む再利用可能なものを構築していますTcxPageControl
。アイデアは、フレームがフォームにドロップされ、そのフォームに固有のページを追加できるということです。
これは正常に機能し、デザイナーを使用してページを正常に追加でき、実行時にそれらのタブ ページが表示されます。ただし、問題は、TcxTabSheet
ドントにドロップされるコンポーネントです。
フレーム自体 (つまり、フォームにドロップされたものではなく、ベース フレーム) にページを追加し、その上にコンポーネントをドロップすると、それらが表示されます。ただし、コンポーネントをフォームから同じページにドロップすると、ドロップしません。
ここには明らかに何かが欠けていますが、ページコントロールはどのフォームでも( から表示されているかどうかに関係なくTFrame
)同じように機能すると思っていましたが、明らかに気に入らないものがあるようです。
これはバグですか、それとも私が正しくやっていないだけですか?
注-プロパティを表示したいので、「パレットに追加」オプションを使用してフレームをコンポーネントとして追加していTPageControl
ます(重要な場合)