Delphi TListView Trouble

У меня есть TListView в моей форме. Я добавляю в него несколько столбцов в зависимости от ввода, например:

 MyItem := StringListView.Columns.Add;
 MyItem.Caption := IntToStr(i);
 MyItem.Width := -2;

После этого я использую onData Событие для заполнения ListView следующим образом:

procedure TMatrixDictViewerFrame.StringListViewData(Sender: TObject;
  Item: TListItem);
var
  ItemCaption: string;
  ItemText: string;`

begin 

    ItemCaption := Format('[%d]', [Item.Index]);
    ItemText := FItems[Item.Index];

    Item.Caption := ItemCaption;
    Item.SubItems.Add(ItemText);

end;

Это работает нормально, так как в первом столбце у меня есть Itemcaptions, а во втором столбце я получаю Itemtexts. То, что я не мог понять, как заполнить ListView в зависимости от данных, которые я получаю. Например: у меня есть матрица A, которая является матрицей 3x3, и я хочу, чтобы ее элементы отображались в этом ListView, поэтому первая строка показывает первые 3 элемента строки, вторая строка показывает три строки второго элемента и так далее. Вопросы: как я могу получить доступ к третьему столбцу? Как я могу заполнить представление в соответствии с имеющимся у меня индексом (i,j)?

С наилучшими пожеланиями

1 ответ

Решение

Index свойство элемента списка сообщает вам строку. От вас ожидается заполнение всего ряда. Как это:

procedure TMatrixDictViewerFrame.StringListViewData(Sender: TObject; Item: TListItem);
begin 
  // A is a 3x3 matrix, that you obtain by means we don't know
  Item.Caption := FloatToStr(A[Item.Index, 0]);
  Item.SubItems.Add(FloatToStr(A[Item.Index, 1]));
  Item.SubItems.Add(FloatToStr(A[Item.Index, 2]));
end;
Другие вопросы по тегам