如何绘制箭头以显示两个TcxGrid中记录之间的链接数据?

时间:2013-07-08 20:05:04

标签: delphi devexpress tcxgrid devexpress-windows-ui

我的应用程序中有两个网格(TcxGrid),每个网格位于表单的一侧。两个网格都显示链接数据,尽管它们可以分开垂直滚动。 我想在中间面板中绘制箭头,显示记录链接到的另一个网格的行,如下例所示:

GridA   GridB
+---+   +---+
| a |---| a |
| b |   | i |
| c |\  | h |
| d | \ | g |
| e |  \| h |
| f |   | b |
+---+   +---+

绘制过程很简单。我的麻烦在于确定记录位置。 我如何发现每个网格行/记录的垂直位置,考虑到可以在两个网格中进行分组?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我发现可以通过这种方式获得网格记录的垂直位置:

网格视图具有属性ViewData.RowsRows是一个数组,它的每个元素都有RecordIndex属性。因此,您可以迭代Rows数组并测试其RecordIndex是否与您找到的数组相同,如果为真,则获取属性ViewInfo.ClientBounds.Top

示例:

for i := 0 to gdMovimentoTV.ViewData.RowCount - 1 do 
  if gdMovimentoTV.ViewData.Rows[i].RecordIndex = iSomeRecordIndex then begin
    if Assigned(gdMovimentoTV.ViewData.Rows[i].ViewInfo) then begin
      Result := gdMovimentoTV.ViewData.Rows[i].ViewInfo.ClientBounds.Top;
      Break;
    end;