Skip to content

TCollection.AtInsert

Insert an element at a certain position in the collection.

Declaration

Source position: objects.pp line 456

default 
  procedure AtInsert(Index: Sw_Integer; Item: Pointer);

Description

AtInsert inserts Item in the collection at position Index, shifting all elements by one position. In case the current limit is reached, the collection will try to expand with a call to SetLimit

Errors

If Index isn't valid then Error is called with CoIndexError. If the collection fails to expand, then coOverFlow is passed to Error.

See also

Name Description
TCollection.Insert Insert a new item in the collection at the end.

Example

Program ex34;
{ Program to demonstrate the TCollection.AtInsert method }
Uses Objects,MyObject; { For TMyObject definition and registration }
Var C : PCollection;
    M : PMyObject;
    I : Longint;
Procedure PrintField (Dummy: Pointer;P : PMyObject);
begin
  Writeln ('Field : ',P^.GetField);
end;
begin
  Randomize;
  C:=New(PCollection,Init(120,10));
  Writeln ('Inserting 100 records at random places.');
  For I:=1 to 100 do
    begin
    M:=New(PMyObject,Init);
    M^.SetField(I-1);
    If I=1 then
      C^.Insert(M)
    else
      With C^ do
        AtInsert(Random(Count),M);
    end;
  Writeln ('Values : ');
  C^.Foreach(@PrintField);
  Dispose(C,Done);
end.