home *** CD-ROM | disk | FTP | other *** search
/ PC World Plus! (NZ) 2001 June / HDC50.iso / Runimage / Delphi50 / Doc / CONTNRS.INT < prev    next >
Text File  |  1999-08-11  |  3KB  |  122 lines

  1. {*******************************************************}
  2. {                                                       }
  3. {       Borland Delphi Visual Component Library         }
  4. {                                                       }
  5. {       Copyright (c) 1995,99 Inprise Corporation       }
  6. {                                                       }
  7. {*******************************************************}
  8.  
  9. unit Contnrs;
  10.  
  11. interface
  12.  
  13. uses
  14.   SysUtils, Classes;
  15.  
  16. type
  17.  
  18. { TObjectList class }
  19.  
  20.   TObjectList = class(TList)
  21.   protected
  22.     procedure Notify(Ptr: Pointer; Action: TListNotification); override;
  23.     function GetItem(Index: Integer): TObject;
  24.     procedure SetItem(Index: Integer; AObject: TObject);
  25.   public
  26.     constructor Create; overload;
  27.     constructor Create(AOwnsObjects: Boolean); overload;
  28.  
  29.     function Add(AObject: TObject): Integer;
  30.     function Remove(AObject: TObject): Integer;
  31.     function IndexOf(AObject: TObject): Integer;
  32.     function FindInstanceOf(AClass: TClass; AExact: Boolean = True; AStartAt: Integer = 0): Integer;
  33.     procedure Insert(Index: Integer; AObject: TObject);
  34.     property OwnsObjects: Boolean;
  35.     property Items[Index: Integer]: TObject; default;
  36.   end;
  37.  
  38. { TComponentList class }
  39.  
  40.   TComponentList = class(TObjectList)
  41.   protected
  42.     procedure Notify(Ptr: Pointer; Action: TListNotification); override;
  43.     function GetItems(Index: Integer): TComponent;
  44.     procedure SetItems(Index: Integer; AComponent: TComponent);
  45.     procedure HandleFreeNotify(Sender: TObject; AComponent: TComponent);
  46.   public
  47.     destructor Destroy; override;
  48.  
  49.     function Add(AComponent: TComponent): Integer;
  50.     function Remove(AComponent: TComponent): Integer;
  51.     function IndexOf(AComponent: TComponent): Integer;
  52.     procedure Insert(Index: Integer; AComponent: TComponent);
  53.     property Items[Index: Integer]: TComponent; default;
  54.   end;
  55.  
  56. { TClassList class }
  57.  
  58.   TClassList = class(TList)
  59.   protected
  60.     function GetItems(Index: Integer): TClass;
  61.     procedure SetItems(Index: Integer; AClass: TClass);
  62.   public
  63.     function Add(aClass: TClass): Integer;
  64.     function Remove(aClass: TClass): Integer;
  65.     function IndexOf(aClass: TClass): Integer;
  66.     procedure Insert(Index: Integer; aClass: TClass);
  67.     property Items[Index: Integer]: TClass; default;
  68.   end;
  69.  
  70. { TOrdered class }
  71.  
  72.   TOrderedList = class(TObject)
  73.   protected
  74.     procedure PushItem(AItem: Pointer); virtual; abstract;
  75.     function PopItem: Pointer; virtual;
  76.     function PeekItem: Pointer; virtual;
  77.     property List: TList;
  78.   public
  79.     constructor Create;
  80.     destructor Destroy; override;
  81.  
  82.     function Count: Integer;
  83.     function AtLeast(ACount: Integer): Boolean;
  84.     procedure Push(AItem: Pointer);
  85.     function Pop: Pointer;
  86.     function Peek: Pointer;
  87.   end;
  88.  
  89. { TStack class }
  90.  
  91.   TStack = class(TOrderedList)
  92.   protected
  93.     procedure PushItem(AItem: Pointer); override;
  94.   end;
  95.  
  96. { TObjectStack class }
  97.  
  98.   TObjectStack = class(TStack)
  99.   public
  100.     procedure Push(AObject: TObject);
  101.     function Pop: TObject;
  102.     function Peek: TObject;
  103.   end;
  104.  
  105. { TQueue class }
  106.  
  107.   TQueue = class(TOrderedList)
  108.   protected
  109.     procedure PushItem(AItem: Pointer); override;
  110.   end;
  111.  
  112. { TObjectQueue class }
  113.  
  114.   TObjectQueue = class(TQueue)
  115.   public
  116.     procedure Push(AObject: TObject);
  117.     function Pop: TObject;
  118.     function Peek: TObject;
  119.   end;
  120.  
  121. implementation
  122.