我第一次使用TDBGrid
。
我甚至没有注意到对象检查器中的Columns
属性,一切都很顺利:网格已经填满。
然后我看到Columns
属性并尝试了。当我使用对象insector将项添加到网格的Columns
属性时,它们并不是所有这些都在运行时显示。对我来说,FieldName
属性看起来很重要。看起来它是正确的,但某些列中没有值。
如果我将此属性留空(根本没有列),则控件似乎在运行时自行填充它,我确实看到了所有列。我可以忍受这个。当我在运行时设置列标题时,它可以正常工作,但设置列宽不会。
[更新]感谢您的反馈。我慢慢学习。现在我看到发生了什么。我想要计算五列中的三列。其中两个来自INNER JOIN,第三个来自SELECT ... FROM_UNIXTIME(<table>.time_stamp)
的SQL'演员'。
如果我在设计时没有定义列,那么当我执行SELECT时,这些值会在运行时填充。 Cnn有人告诉我如何在设计时进行设置吗?感谢
答案 0 :(得分:2)
在dbGrid上定义列的最佳方法是双击数据集以创建表单知道的变量(持久字段)。您可以编辑这些变量的各种属性,例如DisplayLabel,DisplayWidth和DisplayFormat。
您还可以通过双击双击客户端数据集时出现的对话框来添加计算字段。
答案 1 :(得分:2)
运行时和设计时设置列之间的功能没有区别。那就是:可以做什么设计时也可以在运行时完成,反之亦然。
当te Columns
属性保持为空时,一旦打开数据集,网格默认填充它在链接数据集中找到的所有字段。根据相应字段的类型,长度和名称,所有列特定设置(如对齐,宽度,标题标题等)都将设置为默认值。这是懒惰的方式,这肯定是足够的。
出于以下一个或多个原因,您可以使用自己的设置或修改columns属性:
VarChar
字段或Char
字段,其长度通常会导致字符串太宽而无法正常显示和/或用户互动),这些自己的设置可以在时间和运行时完成。
使用designtime列编辑器是需要这些自定义的首选和RAD方式。通过双击网格或属性或通过网格的上下文菜单打开编辑器。如果链接的数据集处于活动状态,则启用命令添加所有字段,这与您根本没有选择任何字段(即第二段中所述的默认行为)完全相同。 / p>