System.Contnrs.TComponentList.Remove
Delphi
function Remove(AComponent: TComponent): NativeInt; inline;
C++
HIDESBASE System::NativeInt __fastcall Remove(System::Classes::TComponent* AComponent);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.Contnrs.pas System.Contnrs.hpp |
System.Contnrs | TComponentList |
説明
Remove は,指定したコンポーネントをリストから削除し,(OwnsObjects が true の場合は)そのコンポーネントを解放します。
Remove メソッドを呼び出すと,インデックスが未定義でもリストから特定コンポーネントを削除できます。戻り値は,目的のコンポーネントが削除される前に保持していた Items 配列内のインデックスになります。指定したコンポーネントがリストに見つからない場合,Remove は -1 を返します。OwnsObjects が true の場合,Remove は,コンポーネントをリストから削除したうえで解放します。
コンポーネントを削除すると,それ以降のすべてのコンポーネントのインデックス位置が繰り上げられ,Count プロパティがデクリメントされます。同じコンポーネントがリストに複数でてくる場合には,Remove は最初のオブジェクトだけを削除します。このため,OwnsObjects が true の場合に複数回でてくるコンポーネントを削除すると,リストの 2 つめ以降のコンポーネントが空参照になってしまいます。
インデックス位置(オブジェクト参照ではなく)を使って削除するコンポーネントを指定するには,Delete メソッドを呼び出してください。
コンポーネントを解放せずにリストから削除するには,Extract メソッドを呼び出します。