- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
之前,我使用此VirtualStringTree
来显示所有节点,并使用Node.Index
来检查OnBeforeCellPaint<内的奇数行和偶数行
事件。
但是当我过滤节点时,我意识到 Node.Index
与用作备用行无关,如下面的屏幕截图所示:
有什么想法/解决方案可以解决这个问题吗?
最佳答案
procedure TMainForm.IpTreeBeforeCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect);
begin
if Node.Index mod 2 = 0
then TargetCanvas.Brush.Color := $00F7E6D5
else TargetCanvas.Brush.Color := $00FBF2EA;
if Sender = ipTree then
if IpAddresses[ PVirtualNode( Node ).Index ].Highlighted then
TargetCanvas.Brush.Color := clYellow;
TargetCanvas.FillRect( CellRect );
end;
这是我的代码,这没有考虑子节点。它为每行交替颜色。但是,如果您确实有 child ,则始终可以使用
iLevel := Sender.GetNodeLevel( Node );
如果是偶数,则将所有子节点绘制为与父节点相同的颜色。
关于delphi - 如何在过滤后的 TVirtualStringTree 上制作适当的替代行颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39202612/
VirtualStringTree的可视树结构始终停留在第一列(索引为0的那一列)。当您通过拖动列标题来更改列顺序时,树可能看起来很奇怪(下图)。是否有可能总是在第一个可见列中看到该结构? 最佳答案
我有一个带有 toFullRowSelect 的 VST(有几列)。我想在节点上启用拖放。 问题是,只有直接单击节点标题标题,才能开始拖动节点。如果单击的是行选择而不是节点标题,则拖动操作将不会启动,
我有一个 TVirtualStringTree(版本 5.2.2),我需要向它的节点添加对象而不是记录。 我已经查看了该问题提供的答案: Delphi, VirtualStringTree - cla
这是重现问题的非常小的项目(VirtualStringTree 版本 6.5): type TForm1 = class(TForm) vstTest: TVirtualStringTre
当启用 toThemeAware 时,VirtualTrees.pas 5.0.0 版本中的复选框处理似乎已损坏。 csUncheckedNormal 的节点被绘制为选中 + 热。 要使用 DrawE
我想根据搜索条件突出显示 VirtualStringTree 节点中的文本,如下例所示: 请问有什么建议吗? 最佳答案 感谢 TLama 的回答(How to underline or highlig
我已经学会了如何使用 TVirtualStringTree,并且发现它非常好。我有一个名为 PackedList 的自定义非可视列表,它由另一个线程填充。我想实时显示 TVirtualStringTr
攀登 TVirtualTreeView 的学习高峰,我尝试创建一个自定义后代,以确保在调整控件大小时,最后一列的宽度完全填充控件的宽度,而不需要水平滚动条。 我看到了许多与“AutoFitColumn
我有一个应用程序,可以从二进制日志文件加载记录并将其显示在虚拟 TListView 中。一个文件中可能有数百万条记录,并且显示可以由用户过滤,所以我不会一次性加载内存中的所有记录,并且ListView
在我们的应用程序中,我正在从 TStringGrid 组件迁移到 TVirtualStringTree 组件。正在显示大量数据(最多 50000 行和 5 列)。一列包含一行或多行文本。我设法在字符串
我有一个 VirtualStringTree,其 Header.Column 设置为 taLeftJustify(默认)。 有没有一种方法可以将该列的单元格/节点设置为 taRightJustify,
我试图让 VST 在其高度和宽度发生变化时自动调整大小。 我对其他放置的 VCL 组件没有这个问题,其中一些具有像 TImage 这样的属性“Stretch”,可以让它们自动调整。 VST 保持固执并
我有两个 VirtualStringTree,第一个 VST 已填充数据,我想检查第二个 VST 并添加第一个 VST 中尚未存在的节点。或者我想添加第二个 VST 中不与第一个 VST 重复的节点。
我们正在使用某种搜索表单,最近对其进行了修改。它的功能是标准搜索表单的功能:在顶部的一些框中输入一些条件,点击“搜索”按钮,然后在下面的网格中显示结果。但它很丑陋,而且功能非常有限,所以我的一位同事在
我正在学习 TVirtualStringTree 的用法,并且必须实现增量搜索。当用户在 TEdit 中输入字符时,我想将焦点节点移动到树中的第一个合格节点。 我正在阅读我能找到的所有演示和示例代码,
之前,我使用此VirtualStringTree来显示所有节点,并使用Node.Index来检查OnBeforeCellPaint<内的奇数行和偶数行 事件。 但是当我过滤节点时,我意识到 Node.
我有一个包含 4 列的 VirtualStringTree (VST) 的简单示例,在第二列或第三列中我可以有更多适合默认列宽度的文本。我启用了 hoAutoSpanColumns,因此大文本将与其他
如果我没记错的话,在 a 中不可能有不可见的节点。TVirtualStringTree TreeView ,因为没有启用、可见或其他属性来这样做。我的说法正确吗? 如果是,我是如何设法拥有不可见节点的
如何使用自己的自定义按钮(图像)来替换 VST 中的默认 [-]/[+] 按钮? 我想改用箭头( 、 ),同时也支持 RTL bidi 模式( 、 )。 编辑:我知道 bsTriangle 样式(Bu
我需要填充(用黑色)下图中突出显示的白色小方 block 。 我尝试添加额外的列。我尝试扩展 PaintInfo.PaintRectangle。我已经尝试了“金额”列中我能想到的所有设置。我没有主意了
我是一名优秀的程序员,十分优秀!