Firemonkey:设置tGrid或替代网格/列表组件的样式(虚拟)

Art*_*tis 7 delphi tgrid firemonkey

我正在尝试基于FireMonkey创建我的第一个应用程序,然后我撞墙了.我能找到的唯一虚拟列表控件是tGrid.

这个组件非常好,但我无法弄清楚如何扩展或自定义它.我知道有tCheckbox列,tImage列等,但如果我需要一个ButtonColumn或类似的东西怎么办?

另外,我想基于它所代表的数据的状态来设置一行样式.

示例:如果行中表示的数据具有"Error = True",则应以红色显示.

有人有类似的问题吗?或者找到备用虚拟列表/网格组件?或者甚至只是关于使用tGrid组件的一些提示.这些组件在所有数据库应用程序中都非常重要,因此它应该是一个非常常见的请求

另外,作为一个注释,我不认为TGrid支持拖放行?

我查看了 Firemonkey版本的VirtualTreeViewFiremonkey以及大量数据

az0*_*z01 6

如果查看源代码,TCheckColumn只有15行代码.如果您需要创建自己的列后代类,那么它非常简单.这是一个解决方案,否则,你可以动态地创建在你的细胞一些组件,然后检查道具(TColumn.CellControlByRow()返回的TControl和孩子将是你放什么在里面)时投下的孩子.

当你想要"设计"你的行时,我建议你自己编写一个TColumn课程,即使你可以在OnPaint活动中进行绘画.

  • 如果有人有兴趣; 我通过覆盖TColumn的UpdateColumn过程解决了单元格的样式.在这里我添加了一个类似于GetValue,GetCellStyleLookup的函数,它就像GetValue一样在网格中发布.所以现在我可以根据虚拟内容将样式(使用样式编辑器创建)应用于任何Cell.我不知道这是否是最佳/预期的做法,但它确实有效.鉴于这些稀疏的文档,我没有时间去弄清楚别的东西. (3认同)