[Overview][Constants][Types][Classes][Procedures and functions][Variables] | Reference for unit 'Classes' (#fcl)

# TStringList

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

Standard implementation of the TStrings class.

## Declaration

`type TStringList = class(TStrings)`
`protected`
`procedure Changed; virtual;` |  | Called when the list of strings was modified.
`procedure Changing; virtual;` |  | Called when the list is changing.
`function Get(); override;` |  | Overrides the standard read handler for the TStrings.Strings property.
`function GetCapacity; override;` |  | Overrides the standard read handler for the TStrings.Capacity property.
`function GetCount; override;` |  | Overrides the standard read handler for the TStrings.Count property.
`function GetObject(); override;` |  | Overrides the standard read handler for the TStrings.Objects property.
`procedure Put(); override;` |  | Overrides the standard write handler for the TStrings.Strings property.
`procedure PutObject(); override;` |  | Overrides the standard write handler for the TStrings.Objects property.
`procedure SetCapacity(); override;` |  | Overrides the standard write handler for the TStrings.Capacity property.
`procedure SetUpdateState(); override;` |  | Overrides the standard TStrings.SetUpdateState call.
`public`
`destructor Destroy; override;` |  | Destroys the stringlist.
`function Add(); override;` |  | Implements the TStrings.Add function.
`procedure Clear; override;` |  | Implements the TStrings.Add function.
`procedure Delete(); override;` |  | Implements the TStrings.Delete function.
`procedure Exchange(); override;` |  | Implements the TStrings.Exchange function.
`function Find(); virtual;` |  | Locates the index for a given string in sorted lists.
`function IndexOf(); override;` |  | Overrides the TStrings.IndexOf property.
`procedure Insert(); override;` |  | Overrides the TStrings.Insert method.
`procedure Sort; virtual;` |  | Sorts the strings in the list.
`procedure CustomSort();`
`property Duplicates: TDuplicates; [rw]` |  | Describes the behaviour of a sorted list with respect to duplicate strings.
`property Sorted: Boolean; [rw]` |  | Determines whether the list is sorted or not.
`property OnChange: TNotifyEvent; [rw]` |  | Event triggered after the list was modified.
`property OnChanging: TNotifyEvent; [rw]` |  | Event triggered when the list is about to be modified.
`end;`

## Inheritance

`TStringList` |  | Standard implementation of the TStrings class.
`TStrings` |  | Class to manage arrays or collections of strings
`TPersistent` |  | Base class for streaming system and persistent properties.
`TObject`

## Description

TStringList is a descendent class of TStrings that implements all of the abstract methods introduced there. It also introduces some additional methods:

- Sort the list, or keep the list sorted at all times
- Special handling of duplicates in sorted lists
- Notification of changes in the list

## See also

TStrings |  | Class to manage arrays or collections of strings
TStrings.Duplicates
TStrings.Sorted