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

# TSortedCollection.Insert

Insert new item in collection.

## Declaration

Source position: objects.pp line 448

`procedure TSortedCollection.Insert(`
`Item: Pointer`
`); virtual;`

## Description

Insert inserts an item in the collection at the correct position, such that the collection is ordered at all times. You should never use Atinsert, since then the collection ordering is not guaranteed.

If Item is already present in the collection, and Duplicates is False, the item will not be inserted.

## Errors

None.

## See also

TCollection.AtInsert |  | Insert an element at a certain position in the collection.

## Example

    Program ex35;

    { Program to demonstrate the TSortedCollection.Insert method }

    Uses Objects,MyObject,MySortC;
     { For TMyObject,TMySortedCollection definition and registration }

    Var C : PSortedCollection;
        M : PMyObject;
        I : Longint;

    Procedure PrintField (Dummy: Pointer;P : PMyObject);

    begin
      Writeln ('Field : ',P^.GetField);
    end;

    begin
      Randomize;
      C:=New(PMySortedCollection,Init(120,10));
      Writeln ('Inserting 100 records at random places.');
      For I:=1 to 100 do
        begin
        M:=New(PMyObject,Init);
        M^.SetField(Random(100));
        C^.Insert(M)
        end;
      Writeln ('Values : ');
      C^.Foreach(@PrintField);
      Dispose(C,Done);
    end.