1

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

父项值的示例:

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;
4

1 回答 1

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.SubItemsSubItems.Strings[Index]SubItems[Index]

于 2012-07-21T02:50:15.003 回答