問題タブ [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.

0 投票する
1 に答える
75 参照

locking - TVirtualStringTree で選択したノードをロックするには?

いくつかのチェックされたノードを持つ TVirtualStringTree があります。処理後、これらのノードの一部はアプリケーションによって選択され、ダブルクリックで将来使用できるようになります。

私の問題は、アプリケーションがそれらのノードのいくつかを選択した後、いずれかのノードをクリックまたはダブルクリックすると、選択が失われることです。アプリケーションだけが選択を変更できるようにする必要があります。これらの選択は、必要な間は選択されたままにしておく必要があります。

選択をユーザーにロックする方法はありますか? プロパティを設定してみました

TreeOptions. MiscOptions. ReadOnly← 真

ただし、コンポーネントでエラーが発生します。

SelectionOptionsプロパティを見ましたが、問題を解決するためのサブプロパティが見つかりませんでした。

0 投票する
1 に答える
435 参照

delphi - 動的データ構造を持つ TVirtualStringTree を定義する方法

TVirtualStringTreeいくつかの異なる SQL テーブルからデータを動的にロードして表示したいと考えています。これは、各列のヘッダーとコンテンツに、毎回異なるタイプのデータが含まれることを意味します。

私の問題は、メモリ使用量、レコードの定義、およびこの場合のポインターに関して最適化する方法です。

私の考えは、次のようにすることでした:

実際には、レコードの 2 つのフィールドのみにデータが含まれます: DataType(常に) および 2 番目のフィールドは、DataType定義によって異なります (例: AsString) AsInteger。ノードが初期化されるときにメモリとして割り当てられる他のフィールドもですか? DataTypeまた、各ノードに割り当てられているという事実も好きではありません。このレコードを最適化する簡単な方法が必要です。

いくつかの提案をしてください。

0 投票する
2 に答える
1090 参照

delphi - TVirtualStringTree.OnGetImageIndex で画像を重ねる

ImageList1コンポーネントの画像をvtTestオーバーレイとして表示したいと思います。

私はインターネットとここSOで多くのリソースを見つけました-このように-しかし、どれも正しく機能させることができません。

私は非常に些細なことを見逃していると確信していますが、それが何であるかわかりません。


私が得るもの:  ここに画像の説明を入力       私が欲しいもの:  ここに画像の説明を入力


これは、私の問題を示す基本的な例を含むフォームです。

Unit1.pas

Unit1.dfm


ヒント:

  • VirtualTrees のバージョンは、Delphi XE4 では 5.2.1 です。
  • ImageIndex := 1;vtTestGetImageIndex関数で実行されます - ブレークポイントが設定されると、デバッガーはそこで停止します
  • index01do の画像はTImageList
  • オーバーレイなしで、さまざまな種類のノードにさまざまな画像を使用できます
0 投票する
0 に答える
272 参照

delphi - Delphi XE8 と VirtualStringTree を使用してノードを適切に追加、ロード、保存する

チェックボックスなどを含む基本的なツリービュー機能に virtualstringtree を使用しています。
元のドキュメント (2006 年以降) を使用しましたが、仮想文字列ツリーは問題ないように見えますが、保存したデータの読み込みでエラーが発生します。

InitNodeではなくを使用する必要があると思いますMAddVSTStructure

このコンテキストでノードを追加する適切な方法を誰かが提案できますか?
これがおそらく、ロード プロシージャが情報をロードする理由ですが、ロードされたノードをクリックするとアクセス違反が発生します。

0 投票する
0 に答える
138 参照

delphi - TVirtualStringGrid - ノードを正しくコピーして貼り付ける

VirtualStringTree.CopyTo の良い例を教えてください。ノードを追加、削除するアプリケーションを作成しましたが、CopyTo を正しく動作させることができません。私の目標は、CopyTo 関数を使用して、ノードとその子を別の場所にコピーすることです。CopyTo 関数は、savenode および loadnode 関数を使用しているようです...

明確化: LoadNode および SaveNode メソッドを見ました。

次のタイプの TTreedata に対して、次のロードおよび保存メソッドを作成しました。

選択したノードでコピー機能を使用し、デバッグ モードで関数 LoadNode にステップ インすると、アドレス 000000000000000 行のアクセス違反 (Delphi XE8) 書き込みが発生します。

ありがとう