Remove all >Nil pointers from the collection.
Source position: objects.pp line 457
procedure TCollection.Pack; |
Pack removes all Nil pointers from the collection, and adjusts Count to reflect this change. No memory is freed as a result of this call. In order to free any memory, you can call SetLimit with an argument of Count after a call to Pack.
None.
|
Set maximum number of elements in the collection. |
Program ex21; { Program to demonstrate the TCollection.FirstThat method } Uses Objects,MyObject; { For TMyObject definition and registration } Var C : PCollection; M : PMyObject; I : Longint; Function CheckField (Dummy: Pointer;P : PMyObject) : Longint; begin If P^.GetField>56 then Checkfield:=1 else CheckField:=0; end; begin C:=New(PCollection,Init(100,10)); For I:=1 to 100 do begin M:=New(PMyObject,Init); M^.SetField(I); C^.Insert(M); end; Writeln ('Inserted ',C^.Count,' objects'); Writeln ('first one for which Field>56 has index (should be 56) : ', C^.IndexOf(C^.FirstThat(@CheckField))); C^.FreeAll; Dispose(C,Done); end.