gpt4 book ai didi

delphi - 如何使网格在水平滚动时刷新

转载 作者:行者123 更新时间:2023-12-03 15:57:57 26 4
gpt4 key购买 nike

几小时后,我在此处或其他地方找不到任何对此问题的引用。该问题出现在 Android 和 Windows 的多设备应用程序(因此是 FMX 而不是 VCL)中(我不知道 iOS 的情况)。

设置:在表单上放置网格(TGridTStringGrid)。通过添加列使网格大于表单,确保需要水平滚动。在网格选项中,选择绘制 ColLinesRowLinesAlternatingRowBackgroundRowSelect 也可以为 True,以一次突出显示整行。

问题:水平滚动时,网格先前隐藏的部分不会显示任何 RowLines 或背景(ColLines 绘制得很好) ),或从 RowSelect 突出显示。无论列数限制如何,都会删除着色和绘图。当调整窗口大小以适应网格(在 Windows 操作系统上)时,颜色和线条会很好地绘制在之前隐藏的列上。

我已经尝试过,对于 OnDrawColumnCellOnHScrollChange 事件:

  • StringGrid.Repaint、Self.Invalidate:无结果
  • Application.HandleMessage、Application.ProcessMessages:减慢速度该应用程序
  • StringGrid.Canvas.Clear(0):减慢并弄乱应用程序
  • 调试版本和发布版本之间的更改:无结果
  • Grid.Align 更改为 Client、None、Fit、Contents、Scale:无结果

请问,有人知道如何使网格在水平滚动时按预期显示吗?

<小时/>

编辑 2016 年 8 月 12 日:Delphi 10.1(柏林)不关心

最佳答案

好的,我找到了。最后。

为了在选择它时突出显示整个行(甚至是隐藏的部分),必须使用样式

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

  • 使用表单上的网格组件(TGridTStringGrid),右键单击网格并选择编辑默认样式编辑自定义样式以打开FireMonkey样式设计器窗口(有关详细信息,请参阅DocWiki)
  • 结构 View 中,转到:gridstyle > 背景 > 内容 > 选择
  • 对象检查器中,选择Align属性默认为None:这就是为什么突出显示不会遍布整行!
  • 将值更改为水平即可完成。其他值不会起作用。 (Contents, Client :突出显示整个网格) (Fit, Center :突出显示以网格为中心)

令人惊讶的是,在 Delphi 10.1 中,默认配置是相同的,但如果需要,选择会正确分布在整行上...

注意:gridstyleTLayout背景TRectanglecontentTLayout选择TRectangle

关于delphi - 如何使网格在水平滚动时刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31386360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com