問題タブ [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.
delphi-7 - 仮想TreeViewがtoUseExplorerThemeを失う
virtualtreeview(DesignTime)でグリッド線とtoUseExplorerThemeを有効にしました。
実行時にグリッド線を削除したいのですが、toUseExplorerThemeプロパティが失われているようです。これはバグですか、それとも何か見落としましたか?セット/オプションに戻そうとしましたが、うまくいきませんでした。XPマニフェストもあります。
ここに少しのコードがあります:
ご協力ありがとうございました。
delphi-7 - VirtualStringTree複数のノードを解放する方法
X個のルートとX個の子ノードを持つVirtualStringTreeがあります。
すべてのルートには、特別なNodeDataが割り当てられています。すべての子ノードには、別のNodeDataが割り当てられています。OnFreeNodeがどれであるかをどうやって知ることができますか?原因どのレコードが割り当てられているかを知らずにデータを解放することはできません。何か案は?
delphi - VirtualStringTreeで整列されたテキストとグリッド線
XヘッダーとXルートを持つvirtualstringtree(グリッドラインが有効)があります。中央にあり、すべてのヘッダー(独立)を通過するテキストが1つしかないルートに、子(少なくとも1つ)を追加したいと思います。したがって、ヘッダーなどのサイズを変更しても、テキストは常にVirtualStringTreeの実際のクライアントサイズに揃えられます。
これは可能ですか?もしそうなら、どのように?
delphi-7 - VirtualStringTree OnNodeRightClick
ノード(または一般的にはVirtualStringTree)を右クリックすると起動するプロシージャまたは何かを探しています
次のシナリオがあります。
- VSTをリストビューに近づけています。
- マウスでルートノードを複数選択することしかできません(マウスボタンを押したままマウスを動かす)
- 任意の子ノード(右または左)をクリックすると、選択されます(+ [VSelected]状態)
- ルートノードを右クリックすると、自動的に選択され、ポップアップメニューが開きます。
ここで、すべての子ノードに対して(1つの共通)に対して異なるポップアップメニューを作成したいと思います(選択されている場合のみ)。
あなたが私が何を意味するのか理解できることを願っています、あなたの助けに感謝します。
delphi - VirtualStringTree ですべてのルートまたはすべての子ノードを選択する方法は?
すべてのルート ノードまたはすべての子ノード (VirtualTreeView 内のすべてのノードではない) を選択したいと考えています。
このコードを使用して、すべてのルート ノードを選択しようとしました。
小さな不具合があることがわかります。選択が不完全であるか、スタックしています。私は何を間違っていますか?
編集:
MultiSelectionを使用しています。
delphi - マスター詳細グリッドビューにVirtualStringTreeを使用することは可能ですか?
さて、ここで本当にトリッキーなものがあります...ヘッダーをChildNodeに描画/使用したいと思います。子ノードをテーブルで指定できるようにサブノードにヘッダーがあると見栄えがするので、このアイデアは合理的だと思います。VSTにある機能はありますか、それともまったく不可能ですか?
ご協力いただきありがとうございます。
delphi - TVirtualStringTree にアイコンを無効な状態で表示させるにはどうすればよいですか?
ディレクトリ内のファイルを TVirtualStringTree に表示する必要があります。そのため、SHGetFileInfo を使用してファイルのアイコンを取得します。しかし、「通常の」アイコンしか取得できないようです (次のスクリーンショットの左側)。もしそうなら、TVirtualStringTree はアイコンを「無効」として描画できますか? ノードを無効にしたのと同じように。スクリーンショットをご覧ください:
更新しました
Soft Gems フォーラムにも同様のスレッドがあります。アイコンの四角形を取得してから、自分でアイコンを描画できます。私は TcxImageList を使用しており、「無効」アイコンを簡単に描画できます。最初に GetImageIndex イベントで存在しない画像インデックスを割り当てたので、アイコンを描画する余地があります。次に、次のコードを使用して描画します。
delphi - OnNewTextイベントの後にVirtualTreeViewを再描画するのはいつですか?
このコードを使用してVirtualStringTreeに入力し、アイテムの名前を変更できるようにします。
問題-InitializeTree()
が最初に呼び出さVirtualStringTree1->FocusedNode
れて割り当てられると、正しく割り当てられます(NULLではありません)。
ただし、このInitializeTree()
関数が内部で呼び出されOnNewText
、名前変更イベントの後にデータベースからツリーを実際に再ロードする場合、割り当て後FocusedNode
はNULLのままです。したがって、明らかに、イベントFocusedNode
内からツリーを再ロードして割り当てることはできません。OnNewText
新しいツリーをリロードして再割り当てするための遅延呼び出しを実装しましFocusedNode
た-迅速でダーティなタイマーを実装することで(遅延関数呼び出しにPostMessageを使用できたかもしれませんが、これは単なるばかげた例です)-タイマー内で割り当てた後、それはもはやNULLではなく、期待どおりに機能します。
ツリーのリロードを実装するための最適な方法を誰かに教えてもらえますか?たとえば、新しく設定しても安全でFocusedNode
、NULLに再割り当てされない特定のイベントを使用できますか?これを達成する唯一の方法は遅延関数呼び出しですか、それともトラップするためのより良いイベントがありますか(たとえば、OnNewText
これがフォーカスされたノードの設定を許可しない場合に発生した場合)。もちろんこれは機能しますが、これを行うためのより良い方法があるかどうか興味があります。
delphi - VirtualStringTree:OnBeforeCellPaint後のノードヒットボックスを修正
特定のノードのイメージリストからアイコンを表示する必要があるフォームのvirtualstringtreeコントロールが必要です。これは正常に機能しますが、特定のノードについては、ノードおよび正方形と同じ高さのカスタム描画アイコンも表示する必要があります。
OnBeforeCellPaintイベントを使用してこれらの画像を描画し、ContentRectを変更して、アイテムに必要な余分なスペースに対応しています。
(+4は、画像リストからロードされたものと同じテキストの「アイコン」からの間隔を持つためにあります)
この方法はうまく機能しているようで、ノードは正しく描画され、選択長方形も同様に描画されます。ただし、ノードをクリックするためのヒットボックスは更新されていないようです。元のContentRectをクリックしてノードを選択する必要があります。
ヒットボックスを更新するにはどうすればよいですか?
delphi - TVirtualStringTreeからすべてのノードを削除するにはどうすればよいですか?
イベントハンドラでVirtualStringTreeの子孫を含むすべてのノードを削除するには、VirtualStringTreeを含むフォームを閉じますか?