1

現在、次のコードを使用して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;
4

1 に答える 1

8

Selected最初にアイテムがあるかどうかを確認する必要があることを除いて、最初のコードは問題ないようです。

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

あなたの2番目は単純化することができます(そして私が上で述べたのと同じチェックを含めるべきです):

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 に答える