几小时后,我无法在这里或其他地方找到任何关于此问题的参考。 问题表明多设备应用程序(因此FMX不是VCL),Android和Windows都有(我不知道iOS)。
设置:
在表单上放置一个网格(TGrid
或TStringGrid
)。
通过添加列使网格大于表单,确保需要水平滚动。
在网格选项中,选择绘制ColLines
,RowLines
和AlternatingRowBackground
。
RowSelect
也可以为True,以便一次突出显示整行。
问题:水平滚动时,网格中先前隐藏的部分未显示任何RowLines
或背景(ColLines
已精心绘制),或从{ {1}}。
无论色谱柱限制如何,都会切割着色和绘图。调整窗口大小以适应网格(在Windows操作系统上)时,在先前隐藏的列上绘制颜色和线条。
我已尝试过RowSelect
和OnDrawColumnCell
事件:
OnHScrollChange
:没有结果StringGrid.Repaint, Self.Invalidate
:放慢速度
应用Application.HandleMessage, Application.ProcessMessages
:放慢速度并弄乱应用StringGrid.Canvas.Clear(0)
更改为客户,无,适合,内容,比例:无结果请问,有人知道在水平滚动时按预期方式显示网格的方法吗?
编辑2016年8月12日:德尔福10.1(柏林)无关紧要
答案 0 :(得分:1)
好的,我找到了。最后。
为了突出显示在选择它时整个行(甚至隐藏部分),必须使用样式。
我没有深入进行风格编辑,但这里有什么要看:
TGrid
,TStringGrid
),右键单击网格并选择编辑默认样式或编辑自定义样式打开 FireMonkey样式设计器窗口(有关详细信息,请参阅DocWiki)gridstyle > background > content > selection
Align
的{{1}}属性默认为selection
:这就是为什么突出显示不会传播到整个排! None
,您就完成了。其他值不会起作用。 (Horizontal
,Contents
:突出显示整个网格)(Client
,Fit
:突出显示以网格为中心)令人惊讶的是,在Delphi 10.1中,默认配置是相同的,但如果需要,选择正确地分布在整个行上......
注意:Center
是gridstyle
; TLayout
是background
; TRectangle
是content
; TLayout
为selection