我正在尝试创建我的第一个基于 FireMonkey 的应用程序,但我遇到了困难。 我能找到的唯一虚拟列表控件是 tGrid。
这个组件非常好,但我不知道如何扩展或自定义它。 我知道有 tCheckbox 列、tImage 列等,但是如果我需要 ButtonColumn 或类似的东西怎么办?
我还想根据行所代表的数据的状态来设置行的样式。
示例:如果行中表示的数据具有“Error=True”,则应显示为红色。
有人遇到过类似的问题吗?或者找到替代的虚拟列表/网格组件?或者甚至只是一些有关使用 tGrid 组件的技巧。 这些组件在所有数据库应用程序中都非常重要,因此它应该是一个非常常见的请求。
另外,请注意,我认为 TGrid 不支持行拖放?
我看过了 Firemonkey version of VirtualTreeView 和 Firemonkey and large amounts of data
最佳答案
如果您查看源代码,TCheckColumn 只有 15 行代码。如果您需要创建自己的列后代类,那么这非常简单。 这是一种解决方案,否则您可以在单元格中动态创建一些组件,然后在检查 Prop 时强制转换子组件(TColumn.CellControlByRow() 返回一个 TControl 并且子组件将是您放入其中的组件)。
当您想要“设计”行时,我建议您编写自己的 TColumn 类,即使您可以在 OnPaint 事件中进行绘画。
关于delphi - Firemonkey:设计 tGrid 或替代网格/列表组件的样式(虚拟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7987449/