Sign in Join
FPDoc Onlineexperiment

TSortedCollection.Compare function

Member of TSortedCollectionIn unit Objects

Compare two items in the collection.

Declaration

pascal
function Compare(Key1: Pointer; Key2: Pointer): Sw_Integer; virtual

Description

Compare is an abstract method that should be overridden by descendent objects in order to compare two items in the collection. This method is used in the Search method and in the Insert method to determine the ordering of the objects.

The function should compare the two keys of items and return the following function results:

Result < 0
If Key1 is logically before Key2 (Key1<Key2)
Result = 0
If Key1 and Key2 are equal. (Key1=Key2)
Result > 0
If Key1 is logically after Key2 (Key1>Key2)

Errors

An 'abstract run-time error' will be generated if you call TSortedCollection.Compare directly.

See also

Example: mysortc

pascal
Unit MySortC;

Interface

Uses Objects;

Type
  PMySortedCollection = ^TMySortedCollection;
  TMySortedCollection = Object(TSortedCollection)
       Function Compare (Key1,Key2 : Pointer): Sw_integer; virtual;
       end;

Implementation

Uses MyObject;

Function TMySortedCollection.Compare (Key1,Key2 : Pointer) :sw_integer;

begin
  Compare:=PMyobject(Key1)^.GetField - PMyObject(Key2)^.GetField;
end;

end.

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.