問題タブ [tcollection]
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 - 定義済みのクラスで TCollection を使用する
(注:これは私の最後の質問に多少関連しています)。
Delphi で TCollection を使用するのは初めてで、1 対多のクラス/プロパティとアイテムの関係を処理するさまざまな方法に頭を悩ませています。TCollection と TCollectionItem を調べてみると、いくつかの質問に出くわしました。
1) TForm プロパティに TCollection または TOWNedCollection を使用することは可能ですか? (まだ試していませんが、組み込みの Object Inspector 機能が問題を引き起こすかどうかを事前に考えています)。
2) TCollectionItem から直接派生できない、すでに定義されている別の場所のクラスを TCollection で使用したい場合 (つまり、「TCollectionItem」の「as」のようなもの)、それは実現できますか? もしそうなら、それはインターフェースを介して達成するものですか?...または最良のアプローチは何でしょうか?
delphi - 編集可能な列を持つ TCollection PropertyEditor
私自身の TCollection の子孫のために、コレクション プロパティ エディタを拡張したいと考えています。TCollectionItem の他のプロパティの列をもっと見たいです。それはとても簡単なので、私はラッキーです。私がやりたいことは、これら3つのメソッドをオーバーライドすることだけでした
コレクションのアイテムの列の数、列のタイトル、および列の値を取得します。
次に、属性セルを編集します。ここで楽しいことは終わりです。私は自分で完全なコレクション エディタを作成しましたか (ColnEdit.pa ユニットの TCollectionEditor のコピーまたは子孫として)。
もっと単純なものがあることを願っていますが、それ以外の場合は、複雑な TCollectionEditor を構築する例に興味があります。
チャオ・ハインツ Z.
delphi - 追加後に Delphi TCollection カウントが増加しない
私はタイプを持っています
- TNotifyReply = クラス(TCollectionItem)
- TNotifyReplylist = クラス (TOwnedCollection)
NotifyReplylist := TNotifyReplylist.Create(self, TNotifyReply);
この関数を呼び出した後 (任意の回数)、ゼロのままカウントします
ここで何が起こっているのですか?
delphi - delphi 7:オブジェクトコレクションのアイテムを見つけるにはどうすればよいですか?
オブジェクトのコレクション内のアイテムを名前で検索して取得するにはどうすればよいですか?
商品名の数量を編集したい。
これどうやってするの?ありがとうございました
arrays - Dll から TCollection またはオブジェクトの配列を返す
dll 関数から自分のオブジェクト (TCollection から派生) を返そうとしました。私は FastMemoryManager を使用しましたが、成功しませんでした...そのため、いくつかのオブジェクトの動的配列を返そうとしました。
もちろん、dll 関数のセットの配列の長さ。実際にはうまく機能しますが、割り当てられたメモリは解放されません。
(私はWindowsのtarsk managerで測定しています)。動的配列を解放する方法はありますか? dll 関数を呼び出す手順はスレッド内にあり、最終的には次のようになります。
Setlength(MyObjectArray, 0) と MyObjectArray := nilの代わりに使用すると、
FreeAndNil(MyObjectArray) 例外が発生しました。
なにか提案を?
delphi - 出来ますか?任意のコンテンツを含む TPanel コンテナのストレージを実装する TCollection の子孫
Delphi でのコンポーネント開発は初めてなので、知りたいのですが、自分のタスクを実装することはまったく可能ですか。
TScrollBox に基づいてビジュアル コンポーネント (ユーザー コントロール) を作成する必要があります。これは TPanel の束を表し、すべてのパネルはその TScrollBox 内で「上」に配置され、異なる高さを持つことができます。これは TCollection (追加、削除、並べ替え) として機能する必要があり、設計時にユーザーがこれらのパネルに他のコントロールを追加できるようにする必要があります。
コンポーネント用にこれらのクラスを作成しました:
このコンポーネントは設計時に正常に動作しています。スタック内のパネルを追加/削除できます。任意のパネルにコントロール (TCheckbox など) をドロップすると、「そのパネルが所有」と表示されます: たとえば、このチェックボックスをドラッグできませんパネル外。
ただし、このチェックボックスは DFM ファイルに保存されず、[構造] ウィンドウには表示されません。
TPanel のコンテンツを手動でシリアライズ/デシリアライズする必要があると思いますが、その方法がわかりません。インターネット上で例が見つかりません。そのような実装が可能であれば、ガイドラインを教えてください。
追加:
これは、3 つのパネルをグリッドに追加した後の DFM ファイル フラグメントの外観です。
ご覧のとおり、すべてのアイテムは空ですが、チェックボックスとラジオボタンをアイテム #3 にドロップしました。
c++ - TCollection の再帰読み取り
私は再帰が非常に苦手で、これまで使用したことがありません。私はそれの理論を知っています..それが役立つというわけではありません:))私の問題では、TCollectionとTCollectionItemなどを含むTCollectionの構造があります..すべてのTCollectionItemを読み取る再帰関数を作成する必要があります。ここにグラフィカルなビューがあります:
TCollection->TCollectionItem(s)->TCollection->TCollectionItem(s)
TCollection は、その下に 1 つまたは 2、3 個の TCollection を持つことも、何も持たないこともできます。
次にいくつかの例を示します。
TCollection->TCollectionItem
TCollection->TCollectionItem->TCollection->TCollectionItem->TCollection->TCollectionItem
など..
私が問題をひどく説明したかどうか教えてください..何か不明な点があれば聞いてください:)
ご支援ありがとうございます!
delphi - TCollectionに追加されたときにTCollectionアイテムのインデックス番号を取得する
コレクションアイテムをコレクションに追加すると、インデックスはゼロベースになることを知っています。これを1ベースにして、。というプロパティに値を表示したいと思いますId
。誰かが私がコードでこれについてどうやって行くことができるか教えてもらえますか?
delphi - Tcollectionを使用してvclオブジェクト参照をdephiに保存する
私はdelphi2009とVCLコンポーネントを使用しています。プライベートフィールドが2つしかないアイテムTStreetで構成されるTStreetsというコレクションを作成しました。次に、クラスTMyObjectの他のオブジェクトを(参照を使用して)追跡するために、Tstreetクラスに別のフィールド/プロパティを追加する必要があります。
例:TStreetコレクションに5つの要素が含まれ、実行時に10個のオブジェクト(TMyObject)がアプリケーションに存在するとします。TMyObjectの各オブジェクトは1つのTStreetにのみ属することができるため、TStreetごとにオブジェクトのすべての参照を保存してから、1つ以上のオブジェクト参照を1つのTStreetから別のTStreetに移動できるようにする必要があります。オブジェクト参照を保存するTStreetの下に別のコレクションを作成する必要がありますか?
行く道は正しいですか?
delphi - Delphi TCollection - 実行時にアイテムを変更できないようにすることは可能ですか?
Delphi 7 を使用して、子孫の TCollection/TCollectionItem セットがあります。これらは設計時のみに設定することを意図しており、実行時に変更しないでください。これどうやってするの?設計時は常に必要な編集を許可する必要がありますが、実行時は、コレクション内のアイテムを追加、削除、または再インデックス化できるようにしたくありません。これらの各アイテムのプロパティ、はい、有効にしたいです。ただし、実際のアイテムを変更するのは設計時のみです。