delphi - VirtualStringTree.HotColor 不与 toHotTrack 一起使用
问题描述
我添加了toHotTrack
toVST.TreeOptions.PaintOptions
并将其更改VST.Colors.HotColor
为clGreen
,但HotColor
没有应用于HotNode
并且只有节点的文本带有下划线。
- 如何解决这个问题呢?
- 是否可以删除下划线并仅适用
HotColor
于它?
解决方案
Colors.HotColor
用于更改,而Font.Color
不是Brush.Color
。的使用toHotTrack
仅更改Font.Color
和添加fsUnderLine
到Font.Style
,请参阅实现部分。
if (toHotTrack in FOptions.FPaintOptions) and (Node = FCurrentHotNode) then
begin
if not (tsUseExplorerTheme in FStates) then
begin
Canvas.Font.Style := Canvas.Font.Style + [fsUnderline];
Canvas.Font.Color := FColors.HotColor;
end;
end;
但是,它很容易更改,例如在OnBeforeCellPaint
. 如果您不想要 ,则需要从fsUnderline
中删除,在这种情况下不需要。toHotTrack
TreeOptions.PaintOptions
procedure VSTBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas;
Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode;
CellRect: TRect; var ContentRect: TRect);
begin
if (CellPaintMode = cpmPaint) and (Node = vstStrom.HotNode) then
begin
TargetCanvas.Brush.Color := clGreen;
TargetCanvas.FillRect(CellRect);
end;
end;
推荐阅读
- python - Django:objects.raw() 在使用 Postgresql 时显示错误,但在使用 sqlite3 数据库时工作正常
- docker - 未列出 Docker 容器
- php - PHP 创建 Zip 文件
- powershell - 在控制台上以编程方式更改字体类型和大小
- php - Laravel 媒体存储最佳实践
- numpy - NumPy:如何检查非拥有数组的前导维度?
- python - 如何获取气体量 web3py?
- python - discord bot 脚本在 vps 中不能正常工作?
- windows - 批处理命令删除任务计划程序中指定目录中的每个目录和文件
- azure-devops - 强制取消正在运行的 Azure 管道