1

我在将一些数据输入 TGrid 单元格时遇到了一些困难,有人可以给我一些代码示例以及如何将数据插入 TGrid 单元格的评论吗?当我使用 StringGrid 时,为了在 C++ Builder 中更精确,我可以使用

StringGrid1->Cells[1][0] = "Hello world";

这将在第一行第二列的单元格中插入“hello world”消息。我怎样才能对 TGrid 做同样的事情?以及如何使用 TCheckColumn?我有很多困难,因为我找不到任何好的文档。
我正在寻找,但在任何地方都没有这方面的指南。

4

1 回答 1

0

TL;DR:
您需要将数据存储在自己的数据结构中,并通过OnGetValue事件将其传递给显示的网格。


我在评论中@nolaspeaker 提供的 MonkeyStyler链接中找到了答案。

TGrid 内部不存储任何数据。

您需要自己存储数据。当显示网格中的单元格时,将OnGetValue(Sender: TObject; const Col, Row: Integer; var Value: TValue)触发该事件。

您可以为此实现事件处理程序,并返回给定单元格的数据。

例如,假设您有一个非常简单的网格,它只在第一列的每个单元格中显示“hello”,在第二列的每个单元格中显示“world”。
您的OnGetValue活动将如下所示:

procedure MyOnGetValueHandler(Sender: TObject; const Col, Row: Integer; var Value: TValue);
begin
  if Col = 0 then
    Value := 'hello'
 else 
 if Col = 1 then
    Value := 'world';
end;
于 2016-07-14T13:35:17.213 回答