Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi Firemonkey TGrid的用法_Delphi_Firemonkey_Tgrid - Fatal编程技术网

Delphi Firemonkey TGrid的用法

Delphi Firemonkey TGrid的用法,delphi,firemonkey,tgrid,Delphi,Firemonkey,Tgrid,我试图在Delphi Firemonkey GUI库中使用TGrid,我在这里摔得很惨 此时,我的表单中有一个TGrid,由三个单元格、一个字符串单元格和两个复选框单元格组成 在当前执行时,将显示网格,其中包含三个单独的列。但是,不会将任何内容保存到字符串单元格中,除非双击该单元格,否则不会显示复选框单元格。单击复选框单元格以外的位置时,复选框将消失 我想我错过了一些关键的步骤。我为TGrid类找到了一个函数,OnGetValue和OnSetValue。我想这些肯定与我的问题有关,但问题是我完全

我试图在Delphi Firemonkey GUI库中使用TGrid,我在这里摔得很惨

此时,我的表单中有一个TGrid,由三个单元格、一个字符串单元格和两个复选框单元格组成

在当前执行时,将显示网格,其中包含三个单独的列。但是,不会将任何内容保存到字符串单元格中,除非双击该单元格,否则不会显示复选框单元格。单击复选框单元格以外的位置时,复选框将消失

我想我错过了一些关键的步骤。我为TGrid类找到了一个函数,
OnGetValue
OnSetValue
。我想这些肯定与我的问题有关,但问题是我完全不知道如何使用它们

每个调用一个
(发送方:TObject;const ACol:Integer;const ARow:Integer;const Value:TValue)

我对发送方做了一个假设,就像在为其他控件创建事件时,您将
self
作为发送方的参数传入。ACol和ARow很明显。但是我对TValue参数感到迷茫,因为我似乎无法理解TValue到底是什么。Embarcadero提供了TValue,但它没有告诉我很多有用的东西

在这一点上,我只是想简单地让一个单元格显示它的值,而不是在你点击的时候失去它的值。我知道我一定错过了什么,但我就是不知道该去哪里找。感觉这个网站上的所有问题以及其他与TGrid for Delphi相关的问题都已经过时了(我看到它们一直延伸到2003年)。

我最终发现了这个问题

长话短说,数据不在TGrid中(这在我看来很糟糕,但我现在明白了原因)

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

OnGetValue和OnSetValue

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

OnSetValue的作用正好相反,它从GUI向您的结构数据提供行和列

希望这能对将来的人有所帮助,我花了一段时间才发现Embarcadero没有告诉你什么,或者至少给你指了个地方看看

定义这两种方法的方式与指南中的解释类似。

我最终发现了这一点

长话短说,数据不在TGrid中(这在我看来很糟糕,但我现在明白了原因)

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

OnGetValue和OnSetValue

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

OnSetValue的作用正好相反,它从GUI向您的结构数据提供行和列

希望这能对将来的人有所帮助,我花了一段时间才发现Embarcadero没有告诉你什么,或者至少给你指了个地方看看


定义这两种方法的方式与指南中的解释类似。

在旁注中,我不确定您如何看待这些可以追溯到2003年的方法,Firemonkey当时甚至不存在。也许它不是Firemonkey,我只是看到与TGrid相关的东西可以追溯到很久以前,当我试图寻找那些人提到的方法时,它们已经不存在了。答案是显示如何使用TGrid的Delphi代码。我偶然发现了这个答案,它非常模糊。我发现哪一个更有用。顺便说一句,我不知道你怎么看这些可以追溯到2003年的,Firemonkey当时根本不存在。也许它不是Firemonkey,我只是看到与TGrid相关的东西可以追溯到很久以前,当我试图寻找那些人提到的方法时,它们已经不存在了。答案是显示如何使用TGrid的Delphi代码。我偶然发现了这个答案,它非常模糊。我发现哪个更有用一点。