我的表单上有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中,所以第一行显示前三行元素,第二行显示第二行三个元素,依此类推。问题:如何访问第三列?如何根据我拥有的索引(i,j)填充视图?
祝你好运
答案 0 :(得分:0)
列表项的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;