Delphi 如何在水平滚动上进行网格刷新

Delphi 如何在水平滚动上进行网格刷新,delphi,scroll,grid,firemonkey,delphi-xe7,Delphi,Scroll,Grid,Firemonkey,Delphi Xe7,几个小时后,我在这里或其他地方都找不到关于这个问题的任何参考资料。 问题在于Android和Windows的多设备应用程序(因此FMX不是VCL)(我不知道iOS的情况) 设置: 在表单上放置网格(TGrid或TStringGrid)。 通过添加列使网格大于表单,确保需要水平滚动。 在网格选项中,选择绘制ColLines、RowLines和AlternatingRowBackground。 RowSelect也可以为True,一次高亮显示整行 问题:水平滚动时,网格先前隐藏的部分不显示任何行线或

几个小时后,我在这里或其他地方都找不到关于这个问题的任何参考资料。 问题在于Android和Windows的多设备应用程序(因此FMX不是VCL)(我不知道iOS的情况)

设置: 在表单上放置网格(
TGrid
TStringGrid
)。 通过添加列使网格大于表单,确保需要水平滚动。 在网格选项中,选择绘制
ColLines
RowLines
AlternatingRowBackground
RowSelect
也可以为True,一次高亮显示整行

问题:水平滚动时,网格先前隐藏的部分不显示任何
行线或背景(
柯林斯
画得很好),也不从
行选择
突出显示。 无论列的限制如何,都会剪切着色和绘图。调整窗口大小以适应网格(在Windows操作系统上)时,颜色和线条会很好地绘制在先前隐藏的列上

我已经尝试了
OnDrawColumnCell
OnHScrollChange
事件:

  • StringGrid.Repaint,Self.Invalidate
    :无结果
  • Application.HandleMessage,Application.ProcessMessages
    :减速 应用程序
  • StringGrid.Canvas.Clear(0)
    :放慢速度,搞乱应用程序
  • 调试版本和发布版本之间的更改:无结果
  • 更改
    网格。将
    与客户端对齐,无、适合、内容、比例:无结果
请问,有人知道当水平滚动时,如何使网格显示如预期的那样吗



编辑日期:2016年8月12日:德尔福10.1(柏林)与此无关

好的,我找到了。终于

要使高亮显示在选择整行(甚至隐藏部分)时扩散到整行,必须使用样式

我没有深入了解样式编辑,但这里有一些内容:

  • 使用表单上的网格组件(
    TGrid
    TStringGrid
    ),右键单击网格并选择编辑默认样式编辑自定义样式,以打开FireMonkey样式设计器窗口(有关详细信息,请参阅)
  • 在结构视图中,转到:
    gridstyle>background>content>selection
  • 对象检查器中,
    选择
    对齐
    属性默认为
    :这就是高亮显示不会扩展到整行的原因
  • 将该值更改为
    水平
    ,即可完成操作。其他值不会起作用。(
    内容
    客户端
    :突出显示整个网格)(
    适合
    居中
    :突出显示在网格上居中)
令人惊讶的是,在Delphi10.1中,默认配置是相同的,但是如果需要,选择正确地分布在整行上


注:
gridstyle
TLayout
<代码>背景
树形
<代码>内容
TLayout
<代码>选择是
TRectangle

您使用的是什么版本的Delphi?我对Delphi XE7更新1和Delphi XE8有同样的问题。我使用的是Delphi XE7更新1。我已经编辑了我的帖子。我已经为你添加了相应的标签:)我试了很多,但我有同样的问题。我建议你看看这里:@whosrdaddy:谢谢你的标记和编辑