実行時に既存の列の間に新しい列を追加すると、サブアイテムのインデックスは想定とは異なります。
たとえば、2 番目と 3 番目の列の間に新しい列を追加すると、列/サブ項目は次のようになります。
colums[0] | colums[1] | (new) columns[2] | columns[3]
caption | subitems[0] | subitems[2] | subitems[1]
しかし、私は仮定します:
colums[0] | colums[1] | (new) columns[2] | columns[3]
caption | subitems[0] | subitems[1] | subitem[2]
いくつかの条件下でサブアイテムのコンテンツを動的に更新できるようにする必要があります。そのため、Column.Index = X の列のサブアイテムは Item.SubItems[X-1] にあるという仮定に依存したいと思います。
これはデフォルトで指定された動作だと思いますか? もしそうなら、列に従ってサブアイテムを更新するために何を提案しますか? 最近追加された列に属するサブアイテム インデックスを保存する可能性があります。
注: Columns.Tag プロパティは既に使用されています。
Delphi XE と XE2 を使用していますが、Delphi 7 以降と互換性がある必要があります。