問題タブ [tvirtualstringtree]
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.
locking - TVirtualStringTree で選択したノードをロックするには?
いくつかのチェックされたノードを持つ TVirtualStringTree があります。処理後、これらのノードの一部はアプリケーションによって選択され、ダブルクリックで将来使用できるようになります。
私の問題は、アプリケーションがそれらのノードのいくつかを選択した後、いずれかのノードをクリックまたはダブルクリックすると、選択が失われることです。アプリケーションだけが選択を変更できるようにする必要があります。これらの選択は、必要な間は選択されたままにしておく必要があります。
選択をユーザーにロックする方法はありますか? プロパティを設定してみました
TreeOptions
.MiscOptions
.ReadOnly
← 真
ただし、コンポーネントでエラーが発生します。
SelectionOptionsプロパティを見ましたが、問題を解決するためのサブプロパティが見つかりませんでした。
delphi - 動的データ構造を持つ TVirtualStringTree を定義する方法
TVirtualStringTree
いくつかの異なる SQL テーブルからデータを動的にロードして表示したいと考えています。これは、各列のヘッダーとコンテンツに、毎回異なるタイプのデータが含まれることを意味します。
私の問題は、メモリ使用量、レコードの定義、およびこの場合のポインターに関して最適化する方法です。
私の考えは、次のようにすることでした:
実際には、レコードの 2 つのフィールドのみにデータが含まれます: DataType
(常に) および 2 番目のフィールドは、DataType
定義によって異なります (例: AsString
) AsInteger
。ノードが初期化されるときにメモリとして割り当てられる他のフィールドもですか? DataType
また、各ノードに割り当てられているという事実も好きではありません。このレコードを最適化する簡単な方法が必要です。
いくつかの提案をしてください。
delphi - TVirtualStringTree.OnGetImageIndex で画像を重ねる
ImageList1
コンポーネントの画像をvtTest
オーバーレイとして表示したいと思います。
私はインターネットとここSOで多くのリソースを見つけました-このように-しかし、どれも正しく機能させることができません。
私は非常に些細なことを見逃していると確信していますが、それが何であるかわかりません。
私が得るもの: 私が欲しいもの:
これは、私の問題を示す基本的な例を含むフォームです。
Unit1.pas
Unit1.dfm
ヒント:
- VirtualTrees のバージョンは、Delphi XE4 では 5.2.1 です。
- 行
ImageIndex := 1;
はvtTestGetImageIndex
関数で実行されます - ブレークポイントが設定されると、デバッガーはそこで停止します - index
0
と1
do の画像はTImageList
- オーバーレイなしで、さまざまな種類のノードにさまざまな画像を使用できます
delphi - Delphi XE8 と VirtualStringTree を使用してノードを適切に追加、ロード、保存する
チェックボックスなどを含む基本的なツリービュー機能に virtualstringtree を使用しています。
元のドキュメント (2006 年以降) を使用しましたが、仮想文字列ツリーは問題ないように見えますが、保存したデータの読み込みでエラーが発生します。
InitNode
ではなくを使用する必要があると思いますMAddVSTStructure
。
このコンテキストでノードを追加する適切な方法を誰かが提案できますか?
これがおそらく、ロード プロシージャが情報をロードする理由ですが、ロードされたノードをクリックするとアクセス違反が発生します。
delphi - TVirtualStringGrid - ノードを正しくコピーして貼り付ける
VirtualStringTree.CopyTo の良い例を教えてください。ノードを追加、削除するアプリケーションを作成しましたが、CopyTo を正しく動作させることができません。私の目標は、CopyTo 関数を使用して、ノードとその子を別の場所にコピーすることです。CopyTo 関数は、savenode および loadnode 関数を使用しているようです...
明確化: LoadNode および SaveNode メソッドを見ました。
次のタイプの TTreedata に対して、次のロードおよび保存メソッドを作成しました。
選択したノードでコピー機能を使用し、デバッグ モードで関数 LoadNode にステップ インすると、アドレス 000000000000000 行のアクセス違反 (Delphi XE8) 書き込みが発生します。
ありがとう