Program ex21; { Program to demonstrate the TCollection.Foreach 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 C:=New(PCollection,Init(100,10)); For I:=1 to 100 do begin M:=New(PMyObject,Init); M^.SetField(100-I); C^.Insert(M); end; Writeln ('Inserted ',C^.Count,' objects'); C^.ForEach(@PrintField); C^.FreeAll; Dispose(C,Done); end.