掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
リスト項目の削除方法の違いについて (ID:48170)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
papyさん、修復ありがとうございました。某所ではもう帰ってくるなといわれているようなのでw (Mr.XRAYさん、ご安心ください。ステハンでは書き込みませんので、イヤミを書く必要はありませんよ) さて書き直し3回目なので面倒で説明が端折られているところがあるかもしれませんが、もしStarterでなければ "Use the source, Luke!"ということで。 Deleteは引数がInteger型で、これはX番目のアイテムを削除、ということです。 Removeは引数がポインタ型で、これはリストの先頭から検索して、最初に見つかったアイテムを削除、になります。 Extractは引数がやはりポインタ型でRemoveとあまり変わらないように見えます。TListでは実際に違いはありません。 ではどこで違いが出るのかというと、派生クラスのTObjectListでOwnObjectsがTrueの場合で、Delete/Removeは アイテムを削除するときにそのアイテムのFreeを呼び出すようになっていますが、Extractでは見つかったアイテムを 戻値にした後でnilに置き換え、その上でDeleteするようになっています。つまりExtractはリストからアイテムを 『取り出す』、という動作になっています。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.