Как нарисовать стрелки, чтобы показать связанные данные между записями в двух TcxGrid?
У меня есть две сетки (TcxGrid) в моем приложении, каждая в стороне от формы. Обе сетки показывают связанные данные, хотя их можно прокручивать вертикально по отдельности. Я хочу нарисовать стрелки на средней панели, показывая линию другой сетки, с которой связана запись, как в этом примере:
GridA GridB
+---+ +---+
| a |---| a |
| b | | i |
| c |\ | h |
| d | \ | g |
| e | \| h |
| f | | b |
+---+ +---+
Процесс розыгрыша прост. Моя проблема с определением позиций записи. Как узнать, каково вертикальное положение каждой строки / записи сетки, учитывая, что в обеих сетках может быть группировка?
Заранее спасибо.
1 ответ
Я обнаружил, что вертикальное положение записи сетки может быть получено следующим образом:
Вид сетки имеет свойство ViewData.Rows
, Rows
является массивом, и каждый его элемент имеет 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;