在Delphi中检索listview项值的正确方法是什么

时间:2012-07-21 02:34:18

标签: delphi tlistview

现在我正在使用以下代码来获取ListView项值,我想知道这是否是正确的方法,或者我应该采取另一种方式。

父项值的示例:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(ListView1.Selected.Caption);
end;

子项目值的示例:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(ListView1.Selected.SubItems.Strings[items_index_here]);
end;

1 个答案:

答案 0 :(得分:8)

您的第一个代码似乎没问题,但您应首先查看是否有Selected项:

if Assigned(ListView1.Selected) then  // or ListView1.Selected <> nil
  ShowMessage(ListView1.Selected.Caption);

您的第二个可以简化(并且应该包括我上面提到的相同检查):

if Assigned(ListView1.Selected) then
  ShowMessage(ListView1.Selected.SubItems[Index]);

TStrings后代(如TStringListTListItem.SubItems)具有默认属性,这是使用TStrings.Strings[Index]的快捷方式;你可以改用TStrings[Index]。您可以使用MyStringList.Strings[0]代替MyStringList[0],而这也适用于TMemo.LinesTListItem.SubItems等内容。您不需要SubItems.Strings[Index],但可以使用SubItems[Index]