现在,我正在使用以下代码来获取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;
最佳答案
您的第一个代码看起来不错,除了您应该先检查是否有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
后代(例如TStringList
和TListItem.SubItems
)具有默认属性,这是使用TStrings.Strings[Index]
的快捷方式;您可以改为使用TStrings[Index]
。可以使用MyStringList.Strings[0]
代替MyStringList[0]
,这也适用于TMemo.Lines
和TListItem.SubItems
之类的东西。您不需要SubItems.Strings[Index]
,而只需使用SubItems[Index]
。关于delphi - 在Delphi中检索listview项目值的正确方法是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11589025/