Delphi Firemonkey TGrid用法

时间:2016-07-29 21:17:56

标签: delphi firemonkey tgrid

我正在尝试在Delphi Firemonkey GUI库中使用TGrid,而且我在这里的表现非常糟糕。

此时,我的表格中有一个TGrid,包括三个单元格,一个字符串单元格和两个复选框单元格。

在当前执行时,Grid会显示三个单独的列。但是,除非双击单元格,否则不会将任何内容保存到字符串单元格中,也不会显示复选框单元格。当您单击复选框单元格时,复选框将消失。

我认为我错过了一些重要的步骤。我找到了TGrid类的函数OnGetValueOnSetValue。我认为这些必须与我的问题有关,但问题是我完全不知道如何使用它们。

每次都要求(Sender: TObject; const ACol: Integer; const ARow: Integer; const Value: TValue)

我正在与发件人做出假设,就像为其他控件创建事件时一样,您将传递self作为Sender的参数。 ACol和ARow非常明显。但我迷失了TValue参数,因为我似乎无法弄清楚TValue究竟是什么。 Embarcadero为TValue提供this documentation,但它并没有告诉我很多有用的东西。

此时,我只是想让一个单元格显示其值,而不是在你点击时失去它的价值。我知道我必须遗漏一些东西,但我不知道该往哪里看。感觉就像这个网站上的所有问题和其他与TGrid for Delphi相关的问题都已经过时了(我看到它们一直延伸到2003年)。

1 个答案:

答案 0 :(得分:3)

我最终找到了这个this guide

长话短说,数据不在TGrid内(这看起来很糟糕,但我现在可以理解为什么了。)

为了显示数据,TGrid对象本身需要两个事件(而不是列):

OnGetValue和OnSetValue

OnGetValue从数据结构中请求数据,因此需要一行和一列来定位结构中的数据。它将它放入GUI中。

OnSetValue则相反,它通过行和列从GUI提供结构数据。

希望这可以帮助将来的某个人,我花了一段时间才知道Embarcadero没有告诉你什么,或者至少指着你看看。

定义这两种方法的方式类似于指南中的说明。

相关问题