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;