Unit UltiboClasses
Return to Unit Reference
Contents
Description
Ultibo classes unit
To be documented
Constants
*_Error
SListIndexError = 'List index out of bounds (%d)';
|
|
SFCreateError = 'Cannot create file %s';
|
|
SFOpenError = 'Cannot open file %s';
|
btree_*
btreeCompareLess = -1;
|
|
btreeCompareEqual = 0;
|
|
btreeCompareGreater = 1;
|
*_Hash*
stringHashSize = 8;
|
|
listHashBits = 8;
|
|
treeHashBits = 3;
|
|
keyHashMinBits = 1;
|
|
keyHashMaxBits = 16;
|
Maximum of 16 bit hash mask (65535 buckets) due to memory usage |
keyHashMasks:array[keyHashMinBits..keyHashMaxBits] of LongWord = (
|
|
$00000001,$00000003,$00000007,$0000000F,
|
|
$0000001F,$0000003F,$0000007F,$000000FF,
|
|
$000001FF,$000003FF,$000007FF,$00000FFF,
|
|
$00001FFF,$00003FFF,$00007FFF,$0000FFFF);
|
*_Delta
memoryStreamDelta = $2000;
|
|
memoryStreamShift = 13;
|
|
stringListDelta = $2000;
|
Type definitions
None defined
Class definitions
TThreadEx
TThreadEx = class(TThread)
Note: TThread with Before and After Execution methods | |
private
| |
protected
| |
procedure Execution; virtual;
|
|
procedure AfterExecution; virtual;
|
|
procedure BeforeExecution; virtual;
|
|
procedure Execute; override;
|
|
public
| |
procedure TerminateAndWaitFor;
|
TTimerEx
TTimerEx = class(TObject)
Note: TTimer/TFPTimer equivalent for Ultibo specific timers | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
FInterval:Integer;
|
|
FEnabled:Boolean;
|
|
FWorker:Boolean;
|
If True then use a Worker thread for the timer event |
FOnTimer:TNotifyEvent;
|
|
FTimerHandle:TTimerHandle;
|
|
procedure SetEnabled(Value:Boolean);
|
|
protected
| |
procedure Timer; virtual;
|
|
procedure StartTimer; virtual;
|
|
procedure StopTimer; virtual;
|
|
public
| |
property Interval:Integer read FInterval write FInterval;
|
|
property Enabled:Boolean read FEnabled write SetEnabled;
|
|
property Worker:Boolean read FWorker write FWorker;
|
|
property OnTimer:TNotifyEvent read FOnTimer write FOnTimer;
|
TObjList
TObjList = class(TList)
Note: TList with Auto Free of List Objects
List which Frees all nodes on Destroy | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
procedure DestroyListObjects;
|
|
public
| |
procedure ClearList;
|
TThreadObjList
TThreadObjList = class(TThreadList)
Note: TThreadList with Auto Free of List Objects
Thread Safe List which Frees all nodes on Destroy | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
procedure DestroyListObjects;
|
|
public
| |
procedure ClearList;
|
TListObject
TListObject = class(TObject)
Note: A TObject with .Prev/.Next with Properties for use in Lists | |
private
| |
FPrev:TListObject;
|
|
FNext:TListObject;
|
|
public
| |
property Prev:TListObject read FPrev write FPrev;
|
|
property Next:TListObject read FNext write FNext;
|
TLinkedList
TLinkedList = class(TObject)
Note: A List of TListObjects with automatic .Prev/.Next Links
Linked List which does not Free nodes on Destroy | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
FCount:Integer;
|
|
FFirst:TListObject;
|
|
FLast:TListObject;
|
|
function GetCount:Integer;
|
|
function Link(AValue:TListObject):Boolean;
|
|
function LinkEx(APrev,AValue:TListObject):Boolean;
|
|
function Unlink(AValue:TListObject):Boolean;
|
|
public
| |
property Count:Integer read GetCount;
|
|
property First:TListObject read FFirst;
|
|
property Last:TListObject read FLast;
|
|
function Add(AValue:TListObject):Boolean; virtual;
|
|
function Remove(AValue:TListObject):Boolean; virtual;
|
|
function Insert(APrev,AValue:TListObject):Boolean; virtual;
|
|
procedure Clear; virtual;
|
TLinkedObjList
TLinkedObjList = class(TLinkedList)
Note: TLinkedList with Auto Free of List Objects
Linked List which Frees all nodes on Destroy | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
public
| |
procedure ClearList;
|
TThreadLinkedObjList
TThreadLinkedObjList = class(TLinkedList)
Note: TLinkedList with Auto Free of List Objects
Thread Safe Linked List which Frees all nodes on Destroy | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
FLock:TRTLCriticalSection;
|
|
public
| |
procedure ClearList;
|
|
procedure LockList;
|
|
procedure UnlockList;
|
TTreeObject
TTreeObject = class(TListObject)
Note: A TObject with Prev/Next/Parent/FirstChild for use in Trees | |
private
| |
FParent:TTreeObject;
|
|
FFirstChild:TTreeObject;
|
|
FLastChild:TTreeObject;
|
|
public
| |
property Parent:TTreeObject read FParent write FParent;
|
|
property FirstChild:TTreeObject read FFirstChild write FFirstChild;
|
|
property LastChild:TTreeObject read FLastChild write FLastChild;
|
TLinkedTree
TLinkedTree = class(TObject)
Note: A Tree of TTreeObjects with automatic Prev/Next etc Links
Linked Tree which does not Free nodes on Destroy | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
FCount:Integer;
|
|
FFirst:TTreeObject;
|
|
FLast:TTreeObject;
|
|
function GetCount:Integer;
|
|
function Link(AValue,AParent:TTreeObject):Boolean;
|
|
function LinkEx(APrev,AValue,AParent:TTreeObject):Boolean;
|
|
function Unlink(AValue:TTreeObject):Boolean;
|
|
public
| |
property Count:Integer read GetCount;
|
|
property Root:TTreeObject read FFirst;
|
|
property First:TTreeObject read FFirst;
|
|
property Last:TTreeObject read FLast;
|
|
function Add(AValue,AParent:TTreeObject):Boolean; virtual;
|
|
function Remove(AValue:TTreeObject):Boolean; virtual;
|
|
function Insert(APrev,AValue,AParent:TTreeObject):Boolean; virtual;
|
|
procedure Move(AValue,AParent:TTreeObject); virtual;
|
|
procedure Clear; virtual;
|
|
function FirstChild(AParent:TTreeObject):TTreeObject;
|
|
function LastChild(AParent:TTreeObject):TTreeObject;
|
TLinkedObjTree
TLinkedObjTree = class(TLinkedTree)
Note: TLinkedTree with Auto Free of Tree Objects
Linked Tree which Frees all nodes on Destroy | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
protected
| |
procedure ClearListItems(AParent:TTreeObject);
|
|
public
| |
procedure ClearList;
|
TBtreeObject
TBtreeObject = class(TObject)
Note: A TObject with Left/Right/Parent for use in B-Trees | |
private
| |
FBlank:Boolean;
|
Object is the blank key (1 per node) |
FPrev:TBtreeObject;
|
Prev object in Linked List (Sorted) |
FNext:TBtreeObject;
|
Next object in Linked List (Sorted) |
FLeft:TBtreeObject;
|
Left sibling in B-Tree (Lower) |
FRight:TBtreeObject;
|
Right sibling in B-Tree (Higher) |
FChild:TBtreeObject;
|
Child object in B-Tree (Lower) |
FParent:TBtreeObject;
|
Parent object in B-Tree (Higher) |
public
| |
property Blank:Boolean read FBlank write FBlank;
|
|
property Prev:TBtreeObject read FPrev write FPrev;
|
|
property Next:TBtreeObject read FNext write FNext;
|
|
property Left:TBtreeObject read FLeft write FLeft;
|
|
property Right:TBtreeObject read FRight write FRight;
|
|
property Child:TBtreeObject read FChild write FChild;
|
|
property Parent:TBtreeObject read FParent write FParent;
|
|
procedure Clear;
|
TLinkedBtree
TLinkedBtree = class(TObject)
Note: A B-Tree of TBtreeObjects with automatic Left/Right etc Links
Linked B-Tree which does not Free nodes on Destroy | |
Note: Search/Find should be implemented by descendants. Compare must always be implemented by descendants. Blank keys are not included in the linked list. Blank key always compares as higher than anything. Linked list allows easy traversal in either direction. Also allows implementation of the rebalance function. | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
procedure SetOrder(AOrder:LongWord);
|
|
function PropogateDrop(AEntry:TBtreeObject):Boolean;
|
|
function PropogateDropOld(AEntry:TBtreeObject):Boolean;
|
|
function PropogateDropOldOld(AEntry:TBtreeObject):Boolean;
|
|
function PropogateMerge(AEntry:TBtreeObject):Boolean;
|
|
function PropogateSplit(AEntry:TBtreeObject):Boolean;
|
|
protected
| |
FOrder:LongWord;
|
Order N of B-Tree (N - 1 Keys per Node) |
FMedian:LongWord;
|
Ceil(N / 2) (Median - 1 Keys as Minimum) |
FSwapLeft:Boolean;
|
If True then Remove will Swap with Left not Right |
FRoot:TBtreeObject;
|
Root Node of B-Tree |
FFirst:TBtreeObject;
|
First object in Linked List (Sorted) |
FLast:TBtreeObject;
|
Last object in Linked List (Sorted) |
FFirstBlank:TBtreeObject;
|
First blank key in Linked List (Not Sorted) |
FLastBlank:TBtreeObject;
|
Last blank key in Linked List (Not Sorted) |
function GetCount(AEntry:TBtreeObject):LongWord; virtual;
|
|
function GetDepth(AEntry:TBtreeObject):LongWord; virtual;
|
|
function GetEnd(AEntry:TBtreeObject):TBtreeObject; virtual;
|
|
function GetStart(AEntry:TBtreeObject):TBtreeObject; virtual;
|
|
function GetBlank(AEntry:TBtreeObject):TBtreeObject; virtual;
|
|
function GetMedian(AEntry:TBtreeObject):TBtreeObject; virtual;
|
|
function GetDrop(AEntry:TBtreeObject; var ALeft:Boolean):TBtreeObject; virtual;
|
|
function GetMerge(AEntry:TBtreeObject):TBtreeObject; virtual;
|
|
function GetBorrow(AEntry:TBtreeObject):TBtreeObject; virtual;
|
|
function GetTarget(ADrop:TBtreeObject; ALeft:Boolean):TBtreeObject; virtual;
|
|
function SetParent(AEntry,AParent:TBtreeObject):Boolean;
|
|
function GetLefthand(AEntry:TBtreeObject):TBtreeObject;
|
|
function GetRighthand(AEntry:TBtreeObject):TBtreeObject;
|
|
function GetLeftmost(AEntry:TBtreeObject):TBtreeObject;
|
|
function GetRightmost(AEntry:TBtreeObject):TBtreeObject;
|
|
function GetSuccessor(AEntry:TBtreeObject):TBtreeObject;
|
|
function GetPredecessor(AEntry:TBtreeObject):TBtreeObject;
|
|
function GetPosition(AStart,AEntry:TBtreeObject):TBtreeObject;
|
|
function Push(AEntry:TBtreeObject):Boolean;
|
|
function Split(AEntry:TBtreeObject):Boolean;
|
|
function Swap(AEntry,ASwap:TBtreeObject; ALeft:Boolean):Boolean;
|
|
function Drop(AEntry,ADrop,ATarget:TBtreeObject; ALeft:Boolean):Boolean;
|
|
function DropOld(AEntry,ADrop:TBtreeObject; ALeft:Boolean):Boolean;
|
|
function DropOldOld(AEntry,ADrop:TBtreeObject; ALeft:Boolean):Boolean;
|
|
function DropOldOldOld(AEntry,ADrop:TBtreeObject; ALeft:Boolean):Boolean;
|
|
function Merge(AEntry,AMerge:TBtreeObject):Boolean;
|
|
function Borrow(AEntry,ABorrow:TBtreeObject):Boolean;
|
|
function Link(AEntry,ANext:TBtreeObject):Boolean;
|
|
function Unlink(AEntry:TBtreeObject):Boolean;
|
|
function LinkBlank(AEntry:TBtreeObject):Boolean;
|
|
function UnlinkBlank(AEntry:TBtreeObject):Boolean;
|
|
function Attach(AParent,AEntry,ARight:TBtreeObject):Boolean;
|
|
function Detach(AEntry:TBtreeObject):Boolean;
|
|
function PushNode(AEntry:TBtreeObject):Boolean; virtual;
|
Allows descendants to monitor node pus |
function SplitNode(AEntry:TBtreeObject):Boolean; virtual;
|
Allows descendants to monitor node split |
function DropNode(AEntry,ADrop,ATarget:TBtreeObject; ALeft:Boolean):Boolean; virtual;
|
Allows descendants to monitor node drop |
function DropNodeOld(AEntry,ADrop:TBtreeObject; ALeft:Boolean):Boolean; virtual;
|
Allows descendants to monitor node drop |
function MergeNode(AEntry,AMerge:TBtreeObject):Boolean; virtual;
|
Allows descendants to monitor node merge |
function BorrowEntry(AEntry,ABorrow:TBtreeObject):Boolean; virtual;
|
Allows descendants to monitor entry borrow |
function SwapEntry(AEntry,ASwap:TBtreeObject;ALeft:Boolean):Boolean; virtual;
|
Allows descendants to monitor entry swap |
function SetParentEntry(AEntry,AParent:TBtreeObject):Boolean; virtual;
|
Allows descendants to monitor entry parent |
function CreateBlank:TBtreeObject; virtual;
|
Allows descendants to monitor node creation |
function DeleteBlank(ABlank:TBtreeObject):Boolean; virtual;
|
Allows descendants to monitor node deletion |
function AttachBlank(ABlank:TBtreeObject):Boolean; virtual;
|
Allows descendants to monitor node modification |
function DetachBlank(ABlank:TBtreeObject):Boolean; virtual;
|
Allows descendants to monitor node modification |
function AttachEntry(AEntry:TBtreeObject):Boolean; virtual;
|
Allows descendants to monitor node modification |
function DetachEntry(AEntry:TBtreeObject):Boolean; virtual;
|
Allows descendants to monitor node modification |
function RequirePush(AEntry:TBtreeObject):Boolean; virtual;
|
Allows descendants to modify balancing behaviour |
function RequireSplit(AEntry:TBtreeObject):Boolean; virtual;
|
Allows descendants to modify balancing behaviour |
function RequireDrop(AEntry:TBtreeObject):Boolean; virtual;
|
Allows descendants to modify balancing behaviour |
function RequireMerge(AEntry:TBtreeObject):Boolean; virtual;
|
Allows descendants to modify balancing behaviour |
function RequireBorrow(AEntry:TBtreeObject):Boolean; virtual;
|
Allows descendants to modify balancing behaviour |
function Compare(AEntry1,AEntry2:TBtreeObject):Integer; virtual;
|
|
public
| |
property Order:LongWord read FOrder write SetOrder;
|
|
property Median:LongWord read FMedian;
|
|
property SwapLeft:Boolean read FSwapLeft;
|
|
property Root:TBtreeObject read FRoot;
|
|
property First:TBtreeObject read FFirst;
|
|
property Last:TBtreeObject read FLast;
|
|
function Add(AParent,AEntry:TBtreeObject):Boolean;
|
|
function Insert(AEntry:TBtreeObject):Boolean;
|
|
function Remove(AEntry:TBtreeObject):Boolean;
|
|
function RemoveOld(AEntry:TBtreeObject):Boolean;
|
|
function RemoveOldOld(AEntry:TBtreeObject):Boolean;
|
|
procedure Clear;
|
|
procedure Empty;
|
|
procedure Rebuild;
|
TLinkedObjBtree
TLinkedObjBtree = class(TLinkedBtree)
Note: TLinkedBtree with Auto Free of B-Tree Objects
Linked B-Tree which Frees all nodes on Destroy | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
public
| |
procedure ClearBtree;
|
|
procedure EmptyBtree;
|
THashListObject
THashListObject = class(TListObject)
Note: A TObject with KeyPrev/KeyNext/KeyHash for use in HashLists | |
private
| |
FKeyPrev:THashListObject;
|
|
FKeyNext:THashListObject;
|
|
protected
| |
FKeyHash:LongWord;
|
Publish in descendants if required |
procedure SetKeyHash(AKeyHash:LongWord);
|
|
public
| |
property KeyList:THashLinkedList read FKeyList write FKeyList;
|
|
property KeyPrev:THashListObject read FKeyPrev write FKeyPrev;
|
|
property KeyNext:THashListObject read FKeyNext write FKeyNext;
|
THashLinkedList
THashLinkedList = class(TLinkedList)
Note: A List of THashListObjects with automatic hash buckets | |
constructor Create(AKeyBits:Byte);
|
|
destructor Destroy; override;
|
|
private
| |
FKeyBits:Byte;
|
|
FKeyMask:LongWord;
|
|
FKeyBuckets:Pointer;
|
|
function KeyLink(AValue:THashListObject):Boolean;
|
|
function KeyUnlink(AValue:THashListObject):Boolean;
|
|
public
| |
function KeyFirst(AKeyHash:LongWord):THashListObject;
|
|
function Add(AValue:TListObject):Boolean; override;
|
|
function Remove(AValue:TListObject):Boolean; override;
|
|
function Insert(APrev,AValue:TListObject):Boolean; override;
|
|
procedure Clear; override;
|
THashLinkedObjList
THashLinkedObjList = class(THashLinkedList)
Note: THashLinkedList with Auto Free of List Objects | |
constructor Create(AKeyBits:Byte);
|
|
destructor Destroy; override;
|
|
private
| |
public
| |
procedure ClearList;
|
THashTreeObject
THashTreeObject = class(TTreeObject)
Note: A TObject with KeyPrev/KeyNext/KeyHash for use in HashTrees | |
constructor Create(AKeyBits:Byte);
|
|
destructor Destroy; override;
|
|
private
| |
FKeyBits:Byte;
|
|
FKeyMask:LongWord;
|
|
FKeyBuckets:Pointer;
|
|
FKeyTree:THashLinkedTree;
|
|
FKeyPrev:THashTreeObject;
|
|
FKeyNext:THashTreeObject;
|
|
protected
| |
FKeyHash:LongWord; {Publish in descendants if required}
|
|
procedure SetKeyHash(AKeyHash:LongWord);
|
|
function KeyLink(AValue:THashTreeObject):Boolean;
|
|
function KeyUnlink(AValue:THashTreeObject):Boolean;
|
|
public
| |
function KeyFirst(AKeyHash:LongWord):THashTreeObject;
|
|
property KeyTree:THashLinkedTree read FKeyTree write FKeyTree;
|
|
property KeyPrev:THashTreeObject read FKeyPrev write FKeyPrev;
|
|
property KeyNext:THashTreeObject read FKeyNext write FKeyNext;
|
THashLinkedTree
THashLinkedTree = class(TLinkedTree)
Note: A Tree of THashTreeObjects with automatic hash buckets | |
constructor Create(AKeyBits:Byte);
|
|
destructor Destroy; override;
|
|
private
| |
FKeyBits:Byte;
|
|
FKeyMask:LongWord;
|
|
FKeyBuckets:Pointer;
|
|
function KeyLink(AValue,AParent:THashTreeObject):Boolean;
|
|
function KeyUnlink(AValue,AParent:THashTreeObject):Boolean;
|
|
public
| |
function KeyFirst(AParent:THashTreeObject; AKeyHash:LongWord):THashTreeObject;
|
|
function Add(AValue,AParent:TTreeObject):Boolean; override;
|
|
function Remove(AValue:TTreeObject):Boolean; override;
|
|
function Insert(APrev,AValue,AParent:TTreeObject):Boolean; override;
|
|
procedure Move(AValue,AParent:TTreeObject); override;
|
|
procedure Clear; override;
|
THashLinkedObjTree
THashLinkedObjTree = class(THashLinkedTree)
Note: THashLinkedTree with Auto Free of List Objects | |
constructor Create(AKeyBits:Byte);
|
|
destructor Destroy; override;
|
|
private
| |
procedure ClearListItems(AParent:THashTreeObject);
|
|
public
| |
procedure ClearList;
|
TStringObject
TStringObject = class(TListObject)
Note: A TObject with Prev/Next/Value/Hash for use in StringLists | |
private
| |
FValue:String;
|
|
FData:TObject;
|
|
protected
| |
FHash:LongWord;
|
|
procedure SetValue(const AValue:String); virtual;
|
|
public
| |
property Value:String read FValue write SetValue;
|
|
property Data:TObject read FData write FData;
|
|
property Hash:LongWord read FHash;
|
TLinkedStringList
TLinkedStringList = class(TStrings)
Note: A List of TStringObjects with automatic Prev/Next Links
Mostly identical methods to TStringList with addition of First/Last/Next/Prev | |
Note: Currently does not implement Sorting or Duplicate handling | |
constructor Create;
|
|
public (Public destructor for FPC RTL)
| |
destructor Destroy; override;
|
|
private
| |
FCount:Integer;
|
|
FFirst:TStringObject;
|
|
FLast:TStringObject;
|
|
FSorted:Boolean;
|
|
FUpdating:Boolean;
|
|
FDuplicates:TDuplicates;
|
|
FOnChange:TNotifyEvent;
|
|
FOnChanging:TNotifyEvent;
|
|
procedure QuickSort(L,R:Integer);
|
|
procedure SetSorted(Value:Boolean);
|
|
function GetItem(AIndex:Integer):TStringObject;
|
|
function Link(AValue:TStringObject):Boolean;
|
|
function LinkEx(APrev,AValue:TStringObject):Boolean;
|
|
function Unlink(AValue:TStringObject):Boolean;
|
|
protected
| |
procedure ClearList; virtual;
|
|
procedure Changed; virtual;
|
|
procedure Changing; virtual;
|
|
function Get(Index:Integer):String; override;
|
|
function GetCount:Integer; override;
|
|
function GetObject(Index:Integer):TObject; override;
|
|
procedure Put(Index:Integer; const S:String); override;
|
|
procedure PutObject(Index:Integer; AObject:TObject); override;
|
|
procedure SetUpdateState(Updating:Boolean); override;
|
|
public
| |
function Add(const S:String):Integer; override;
|
|
procedure Clear; override;
|
|
procedure Delete(Index:Integer); override;
|
|
procedure Exchange(Index1,Index2:Integer); override;
|
|
function Find(const S:String; var Index:Integer):Boolean; virtual;
|
|
function IndexOf(const S:String):Integer; override;
|
|
procedure Insert(Index:Integer; const S:String); override;
|
|
procedure Sort; virtual;
|
|
property First:TStringObject read FFirst;
|
|
property Last:TStringObject read FLast;
|
|
property Duplicates:TDuplicates read FDuplicates write FDuplicates;
|
|
property Sorted:Boolean read FSorted write SetSorted;
|
|
property OnChange:TNotifyEvent read FOnChange write FOnChange;
|
|
property OnChanging:TNotifyEvent read FOnChanging write FOnChanging;
|
TStringBlock
TStringBlock = class(TListObject)
Note: Block object for TLinkedStringListEx | |
destructor Destroy; override;
|
|
private
| |
public
| |
Data:Pointer;
|
Pointer to Allocated Memory Block |
Size:LongWord;
|
Size of Allocated Memory Block |
Start:LongWord;
|
Index of First Item in this Block |
Count:LongWord;
|
Current Items in this Block |
Capacity:LongWord;
|
Total Capacity of this Block |
TStringObjectEx
TStringObjectEx = class(TStringObject)
Note: A TStringObject for use with StringListEx | |
private
| |
FBlock:TStringBlock;
|
|
public
| |
property Block:TStringBlock read FBlock write FBlock;
|
TLinkedStringListEx
TLinkedStringListEx = class(TLinkedStringList)
Note: A TLinkedStringList with block list for entry Indexing | |
constructor Create;
|
|
public (Public destructor for FPC RTL)
| |
destructor Destroy; override;
|
|
private
| |
FRecent:TStringBlock;
|
|
FBlocks:TLinkedObjList;
|
|
FCapacity:Integer;
|
|
function GetBlock(Index:Integer):TStringBlock;
|
|
function AddBlock(Block:TStringBlock; Index:Integer):TStringBlock;
|
|
function DeleteBlock(Block:TStringBlock):Boolean;
|
|
function UpdateBlocks(Block:TStringBlock):Boolean;
|
|
function GetItem(Block:TStringBlock; Index:Integer):TStringObjectEx;
|
|
function AddItem(Block:TStringBlock; Index:Integer; Item:TStringObjectEx):Boolean;
|
|
function DeleteItem(Block:TStringBlock; Index:Integer; Item:TStringObjectEx):Boolean;
|
|
function IndexOfItem(Block:TStringBlock; Item:TStringObjectEx):Integer;
|
|
protected
| |
function Get(Index:Integer):String; override;
|
|
function GetCapacity:Integer; override;
|
|
function GetObject(Index:Integer):TObject; override;
|
|
procedure Put(Index:Integer; const S:String); override;
|
|
procedure PutObject(Index:Integer; AObject:TObject); override;
|
|
public
| |
function Add(const S:String):Integer; override;
|
|
procedure Clear; override;
|
|
procedure Delete(Index:Integer); override;
|
|
procedure Exchange(Index1,Index2:Integer); override;
|
|
function IndexOf(const S:String):Integer; override;
|
|
procedure Insert(Index:Integer; const S:String); override;
|
THashStringObject
THashStringObject = class(TStringObjectEx)
Note: A TObject with Prev/Next/Hash for use in HashStringLists | |
private
| |
FList:THashLinkedStringList;
|
|
FKeyPrev:THashStringObject;
|
|
FKeyNext:THashStringObject;
|
|
procedure SetHash(AHash:LongWord);
|
|
protected
| |
procedure SetValue(const AValue:String); override;
|
|
public
| |
property List:THashLinkedStringList read FList write FList;
|
|
property KeyPrev:THashStringObject read FKeyPrev write FKeyPrev;
|
|
property KeyNext:THashStringObject read FKeyNext write FKeyNext;
|
THashLinkedStringList
THashLinkedStringList = class(TLinkedStringListEx)
Note: A List of TStringObjects with automatic hash buckets | |
constructor Create(AKeyBits:Byte);
|
|
public (Public destructor for FPC RTL)
| |
destructor Destroy; override;
|
|
private
| |
FKeyBits:Byte;
|
|
FKeyMask:LongWord;
|
|
FKeyBuckets:Pointer;
|
|
function KeyLink(AValue:THashStringObject):Boolean;
|
|
function KeyUnlink(AValue:THashStringObject):Boolean;
|
|
protected
| |
procedure ClearList; override;
|
|
public
| |
function KeyFirst(AKeyHash:LongWord):THashStringObject;
|
|
function Add(const S:String):Integer; override;
|
|
procedure Delete(Index:Integer); override;
|
|
function IndexOf(const S:String):Integer; override;
|
|
procedure Insert(Index:Integer; const S:String); override;
|
TIntegerList
TIntegerList = class(TObject)
Note: Same as a TStringList but for Integer values | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
FItems:TList;
|
|
function GetItem(Idx:Integer):Integer;
|
|
procedure SetItem(Idx,Value:Integer);
|
|
function GetCount:Integer;
|
|
public
| |
property Items[Idx:Integer]:Integer read GetItem write SetItem;
|
|
property Count:Integer read GetCount;
|
|
function Add(AValue:Integer):Integer;
|
|
function Remove(AValue:Integer):Integer;
|
|
procedure Delete(Idx:Integer);
|
|
function IndexOf(AValue:Integer):Integer;
|
|
procedure Clear;
|
TDateTimeList
TDateTimeList = class(TObject)
Note: Same as a TStringList but for TDateTime values | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
FItems:TList;
|
|
function GetItem(Idx:Integer):TdateTime;
|
|
procedure SetItem(Idx:Integer; Value:TDateTime);
|
|
function GetCount:Integer;
|
|
public
| |
property Items[Idx:Integer]:TDateTime read GetItem write SetItem;
|
|
property Count:Integer read GetCount;
|
|
function Add(AValue:TDateTime):Integer;
|
|
function Remove(AValue:TDateTime):Integer;
|
|
procedure Delete(Idx:Integer);
|
|
function IndexOf(AValue:TDateTime):Integer;
|
|
procedure Clear;
|
TMemoryBlock
TMemoryBlock = class(TListObject)
Note: Block object for TMemoryStreamEx | |
destructor Destroy; override;
|
|
private
| |
public
| |
Memory:Pointer;
|
Pointer to Allocated Memory Block |
Size:LongWord;
|
Size of Allocated Memory Block |
Start:LongWord;
|
Start of Allocated Memory Block in the Stream |
TMemoryStreamEx
TMemoryStreamEx = class(TStream)
Note: A memory stream which does not Realloc on expand | |
constructor Create;
|
|
destructor Destroy; override;
|
|
private
| |
FRecent:TMemoryBlock;
|
|
FBlocks:TLinkedObjList;
|
|
FSize:LongInt;
|
|
FPosition:LongInt;
|
|
FCapacity:LongWord;
|
|
function RoundSize(ASize:LongInt):LongWord;
|
|
function GetBlock(AOffset:LongWord):TMemoryBlock;
|
|
function ReadBlock(ABlock:TMemoryBlock; ABuffer:Pointer; AOffset,ACount:LongWord):LongWord;
|
|
function WriteBlock(ABlock:TMemoryBlock; ABuffer:Pointer; AOffset,ACount:LongWord):LongWord;
|
|
procedure SetCapacity(ACapacity:LongWord);
|
|
protected
| |
procedure SetSize(ASize:LongInt); override;
|
|
public
| |
function Read(var ABuffer; ACount:LongInt):LongInt; override;
|
|
function Write(const ABuffer; ACount:LongInt):LongInt; override;
|
|
function Seek(AOffset:LongInt; AOrigin:Word):LongInt; override;
|
|
procedure SaveToStream(AStream:TStream);
|
|
procedure LoadFromStream(AStream:TStream);
|
|
procedure SaveToFile(const AFileName:String);
|
|
procedure LoadFromFile(const AFileName:String);
|
|
procedure Clear;
|
TStreamEx
TStreamEx = class(TStream)
Note: A 64bit capable Stream class | |
private
| |
function GetPositionEx:Int64;
|
|
procedure SetPositionEx(const Pos:Int64);
|
|
function GetSizeEx:Int64;
|
|
protected
| |
procedure SetSizeEx(const NewSize:Int64); virtual;
|
|
public
| |
property PositionEx:Int64 read GetPositionEx write SetPositionEx;
|
|
property SizeEx:Int64 read GetSizeEx write SetSizeEx;
|
|
function SeekEx(const Offset:Int64; Origin:Word):Int64; virtual; abstract;
|
THandleStreamEx
THandleStreamEx = class(TStreamEx)
Note: A 64bit capable Handle Stream class | |
constructor Create(AHandle:Integer);
|
|
private
| |
FHandle:Integer;
|
|
protected
| |
procedure SetSize(NewSize:LongInt); override;
|
|
procedure SetSizeEx(const NewSize:Int64); override;
|
|
public
| |
function Read(var Buffer; Count:LongInt):LongInt; override;
|
|
function Write(const Buffer; Count:LongInt):LongInt; override;
|
|
function Seek(Offset:LongInt; Origin:Word):LongInt; override;
|
|
function SeekEx(const Offset:Int64; Origin:Word):Int64; override;
|
|
property Handle:Integer read FHandle;
|
TFileStreamEx
TFileStreamEx = class(THandleStreamEx)
Note: A 64bit capable File Stream class | |
constructor Create(const FileName:String;Mode:Word);
|
|
destructor Destroy; override;
|
|
private
| |
public
| |
TStringItemEx
TStringItemEx = class(TObject)
Note: A String item with Hash for use in TStringListEx | |
private
| |
FValue:String;
|
|
FData:TObject;
|
|
FHash:LongWord;
|
|
protected
| |
procedure SetValue(const AValue:String); virtual;
|
|
public
| |
property Value:String read FValue write SetValue;
|
|
property Data:TObject read FData write FData;
|
|
property Hash:LongWord read FHash;
|
TStringListEx
TStringListEx = class(TStrings)
Note: A String List class that does not use realloc to grow
Mostly identical methods to TStringList with addition of block list | |
Note: Currently does not implement Sorting or Duplicate handling | |
constructor Create;
|
|
public (Public destructor for FPC RTL)
| |
destructor Destroy; override;
|
|
private
| |
FRecent:TStringBlock;
|
|
FBlocks:TLinkedObjList;
|
|
FCount:Integer;
|
|
FCapacity:Integer;
|
|
FSorted:Boolean;
|
|
FUpdating:Boolean;
|
|
FDuplicates:TDuplicates;
|
|
FOnChange:TNotifyEvent;
|
|
FOnChanging:TNotifyEvent;
|
|
procedure QuickSort(L,R:Integer);
|
|
procedure SetSorted(Value:Boolean);
|
|
function GetBlock(Index:Integer):TStringBlock;
|
|
function AddBlock(Block:TStringBlock; Index:Integer):TStringBlock;
|
|
function DeleteBlock(Block:TStringBlock):Boolean;
|
|
function UpdateBlocks(Block:TStringBlock):Boolean;
|
|
function GetItem(Block:TStringBlock; Index:Integer):TStringItemEx;
|
|
function AddItem(Block:TStringBlock; Index:Integer; Item:TStringItemEx):Boolean;
|
|
function DeleteItem(Block:TStringBlock; Index:Integer; Item:TStringItemEx):Boolean;
|
|
protected
| |
procedure ClearList; virtual;
|
|
procedure Changed; virtual;
|
|
procedure Changing; virtual;
|
|
function Get(Index:Integer):String; override;
|
|
function GetCapacity:Integer; override;
|
|
function GetCount:Integer; override;
|
|
function GetObject(Index:Integer):TObject; override;
|
|
procedure Put(Index:Integer; const S:String); override;
|
|
procedure PutObject(Index:Integer; AObject:TObject); override;
|
|
procedure SetUpdateState(Updating:Boolean); override;
|
|
public
| |
function Add(const S:String):Integer; override;
|
|
procedure Clear; override;
|
|
procedure Delete(Index:Integer); override;
|
|
procedure Exchange(Index1,Index2:Integer); override;
|
|
function Find(const S:String; var Index:Integer):Boolean; virtual;
|
|
function IndexOf(const S:String):Integer; override;
|
|
procedure Insert(Index:Integer; const S:String); override;
|
|
procedure Sort; virtual;
|
|
property Duplicates:TDuplicates read FDuplicates write FDuplicates;
|
|
property Sorted:Boolean read FSorted write SetSorted;
|
|
property OnChange:TNotifyEvent read FOnChange write FOnChange;
|
|
property OnChanging:TNotifyEvent read FOnChanging write FOnChanging;
|
Public variables
None defined
Function declarations
procedure TimerExEvent(TimerEx:TTimerEx);
Note | None documented |
---|
TThreadEx
procedure TThreadEx.Execution;
Note | None documented |
---|
procedure TThreadEx.AfterExecution;
Note | None documented |
---|
procedure TThreadEx.BeforeExecution;
Note | None documented |
---|
procedure TThreadEx.Execute;
Note | None documented |
---|
procedure TThreadEx.TerminateAndWaitFor;
Note | None documented |
---|
TTimerEx
constructor TTimerEx.Create;
Note | None documented |
---|
destructor TTimerEx.Destroy;
Note | None documented |
---|
procedure TTimerEx.SetEnabled(Value:Boolean);
Note | None documented |
---|
procedure TTimerEx.Timer;
Note | None documented |
---|
procedure TTimerEx.StartTimer;
Note | None documented |
---|
procedure TTimerEx.StopTimer;
Note | None documented |
---|
TObjList
constructor TObjList.Create;
Note | None documented |
---|
destructor TObjList.Destroy;
Note | None documented |
---|
procedure TObjList.DestroyListObjects;
Note | None documented |
---|
procedure TObjList.ClearList;
Note | None documented |
---|
TThreadObjList
constructor TThreadObjList.Create;
Note | None documented |
---|
destructor TThreadObjList.Destroy;
Note | None documented |
---|
procedure TThreadObjList.DestroyListObjects;
Note | None documented |
---|
procedure TThreadObjList.ClearList;
Note | None documented |
---|
TLinkedList
constructor TLinkedList.Create;
Note | None documented |
---|
destructor TLinkedList.Destroy;
Note | None documented |
---|
function TLinkedList.GetCount:Integer;
Note | None documented |
---|
function TLinkedList.Link(AValue:TListObject):Boolean;
Note | None documented |
---|
function TLinkedList.LinkEx(APrev,AValue:TListObject):Boolean;
Note | If APrev is nil then Link as first value in list |
---|
function TLinkedList.Unlink(AValue:TListObject):Boolean;
Note | None documented |
---|
function TLinkedList.Add(AValue:TListObject):Boolean;
Note | None documented |
---|
function TLinkedList.Remove(AValue:TListObject):Boolean;
Note | None documented |
---|
function TLinkedList.Insert(APrev,AValue:TListObject):Boolean;
Note | None documented |
---|
procedure TLinkedList.Clear;
Note | None documented |
---|
TLinkedObjList
destructor TLinkedObjList.Destroy;
Note | None documented |
---|
procedure TLinkedObjList.ClearList;
Note | None documented |
---|
TThreadLinkedObjList
constructor TThreadLinkedObjList.Create;
Note | None documented |
---|
destructor TThreadLinkedObjList.Destroy;
Note | None documented |
---|
procedure TThreadLinkedObjList.ClearList;
Note | None documented |
---|
procedure TThreadLinkedObjList.LockList;
Note | None documented |
---|
procedure TThreadLinkedObjList.UnlockList;
Note | None documented |
---|
TLinkedTree
constructor TLinkedTree.Create;
Note | None documented |
---|
destructor TLinkedTree.Destroy;
Note | None documented |
---|
function TLinkedTree.GetCount:Integer;
Note | None documented |
---|
function TLinkedTree.Link(AValue,AParent:TTreeObject):Boolean;
Note | None documented |
---|
function TLinkedTree.LinkEx(APrev,AValue,AParent:TTreeObject):Boolean;
Note | If APrev is nil then Link as first child in parent or first value if Parent is nil |
---|
function TLinkedTree.Unlink(AValue:TTreeObject):Boolean;
Note | None documented |
---|
function TLinkedTree.Add(AValue,AParent:TTreeObject):Boolean;
Note | None documented |
---|
function TLinkedTree.Remove(AValue:TTreeObject):Boolean;
Note | None documented |
---|
function TLinkedTree.Insert(APrev,AValue,AParent:TTreeObject):Boolean;
Note | None documented |
---|
procedure TLinkedTree.Move(AValue,AParent:TTreeObject);
Note | None documented |
---|
procedure TLinkedTree.Clear;
Note | None documented |
---|
function TLinkedTree.FirstChild(AParent:TTreeObject):TTreeObject;
Note | None documented |
---|
function TLinkedTree.LastChild(AParent:TTreeObject):TTreeObject;
Note | None documented |
---|
TLinkedObjTree
constructor TLinkedObjTree.Create;
Note | None documented |
---|
destructor TLinkedObjTree.Destroy;
Note | None documented |
---|
procedure TLinkedObjTree.ClearListItems(AParent:TTreeObject);
Note | None documented |
---|
procedure TLinkedObjTree.ClearList;
Note | None documented |
---|
TBtreeObject
procedure TBtreeObject.Clear;
Note | None documented |
---|
TLinkedBtree
constructor TLinkedBtree.Create;
Note | None documented |
---|
destructor TLinkedBtree.Destroy;
Note | None documented |
---|
procedure TLinkedBtree.SetOrder(AOrder:LongWord);
Note | Minimum Order is 5 and minimum Median is 3 |
---|
function TLinkedBtree.PropogateDrop(AEntry:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.PropogateMerge(AEntry:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.PropogateSplit(AEntry:TBtreeObject):Boolean;
Note | This is currently not used by insert and must be tested before use |
---|
function TLinkedBtree.GetCount(AEntry:TBtreeObject):LongWord;
Note | Does not include the blank key |
---|
function TLinkedBtree.GetDepth(AEntry:TBtreeObject):LongWord;
Note | None documented |
---|
function TLinkedBtree.GetEnd(AEntry:TBtreeObject):TBtreeObject;
Note | Includes the blank key which may be the only key |
---|
function TLinkedBtree.GetStart(AEntry:TBtreeObject):TBtreeObject;
Note | Includes the blank key which may be the only key |
---|
function TLinkedBtree.GetBlank(AEntry:TBtreeObject):TBtreeObject;
Blank | Blank entry is always the last entry in every node |
---|
function TLinkedBtree.GetMedian(AEntry:TBtreeObject):TBtreeObject;
Note | Does not include the blank key |
---|
function TLinkedBtree.GetDrop(AEntry:TBtreeObject; var ALeft:Boolean):TBtreeObject;
Drop | Always drop with the Righthand neighbour if available |
---|---|
Note | Only supported by descendant classes with non balanced nodes |
function TLinkedBtree.GetMerge(AEntry:TBtreeObject):TBtreeObject;
Merge | Always merge with the Righthand neighbour if available |
---|
function TLinkedBtree.GetBorrow(AEntry:TBtreeObject):TBtreeObject;
Borrow | Always borrow from the Righthand neighbour if available |
---|
function TLinkedBtree.GetTarget(ADrop:TBtreeObject; ALeft:Boolean):TBtreeObject;
Note | Only supported by descendant classes with non balanced nodes |
---|
function TLinkedBtree.SetParent(AEntry,AParent:TBtreeObject):Boolean;
Note | Includes the blank key which may be the only key |
---|
function TLinkedBtree.GetLefthand(AEntry:TBtreeObject):TBtreeObject;
Note | None documented |
---|
function TLinkedBtree.GetRighthand(AEntry:TBtreeObject):TBtreeObject;
Note | None documented |
---|
function TLinkedBtree.GetLeftmost(AEntry:TBtreeObject):TBtreeObject;
Note | None documented |
---|
function TLinkedBtree.GetRightmost(AEntry:TBtreeObject):TBtreeObject;
Note | Does not include the blank key |
---|
function TLinkedBtree.GetSuccessor(AEntry:TBtreeObject):TBtreeObject;
Note | The returned entry may be a blank key or a real key |
---|
function TLinkedBtree.GetPredecessor(AEntry:TBtreeObject):TBtreeObject;
Note | The returned entry may be a blank key or a real key |
---|
function TLinkedBtree.GetPosition(AStart,AEntry:TBtreeObject):TBtreeObject;
Note | The returned entry will be the entry to the right in insert node. The returned entry may be the blank key or may be a real key. |
---|
function TLinkedBtree.Push(AEntry:TBtreeObject):Boolean;
Push | Push can only occur on the root node |
---|---|
Note | Will create a new blank as root. All keys will be parented by new blank root. |
function TLinkedBtree.Split(AEntry:TBtreeObject):Boolean;
Split | Split can propogate all the way to root since median is promoted |
---|---|
Note | Will promote the median entry to the parent. Keys left of median will be parented by median. Keys right of median will retain current parent. Child of median will parent to new blank on left. Median will be attached to the left of the parent. |
function TLinkedBtree.Swap(AEntry,ASwap:TBtreeObject; ALeft:Boolean):Boolean;
Note | Entry is always a parent and Swap is always a leaf. No balancing is done as the entry is to be deleted or borrowed. |
---|
function TLinkedBtree.Drop(AEntry,ADrop,ATarget:TBtreeObject; ALeft:Boolean):Boolean;
Note | None documented |
---|
function TLinkedBtree.Merge(AEntry,AMerge:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.Borrow(AEntry,ABorrow:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.Link(AEntry,ANext:TBtreeObject):Boolean;
Note | If Next is nil then link as last |
---|
function TLinkedBtree.Unlink(AEntry:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.LinkBlank(AEntry:TBtreeObject):Boolean;
Note | Always link as last |
---|
function TLinkedBtree.UnlinkBlank(AEntry:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.Attach(AParent,AEntry,ARight:TBtreeObject):Boolean;
Note | If Right is nil then attach as last. If Parent is nil then attach at root. |
---|
function TLinkedBtree.Detach(AEntry:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.PushNode(AEntry:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.SplitNode(AEntry:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.DropNode(AEntry,ADrop,ATarget:TBtreeObject; ALeft:Boolean):Boolean;
Note | None documented |
---|
function TLinkedBtree.MergeNode(AEntry,AMerge:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.BorrowEntry(AEntry,ABorrow:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.SwapEntry(AEntry,ASwap:TBtreeObject; ALeft:Boolean):Boolean;
Note | None documented |
---|
function TLinkedBtree.SetParentEntry(AEntry,AParent:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.CreateBlank:TBtreeObject;
Note | None documented |
---|
function TLinkedBtree.DeleteBlank(ABlank:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.AttachBlank(ABlank:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.DetachBlank(ABlank:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.AttachEntry(AEntry:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.DetachEntry(AEntry:TBtreeObject):Boolean;
Note | None documented |
---|
function TLinkedBtree.RequirePush(AEntry:TBtreeObject):Boolean;
Entry | Entry is the key that was inserted. Or a key in a parent node of the node where the entry was inserted. |
---|---|
Note | Only supported by descendant classes with non balanced nodes |
function TLinkedBtree.RequireSplit(AEntry:TBtreeObject):Boolean;
Entry | Entry is the key that was inserted. Or a key in a parent node of the node where the entry was inserted. |
---|
function TLinkedBtree.RequireDrop(AEntry:TBtreeObject):Boolean;
Entry | Entry is the start key of the node where the entry was removed. Or a key in a parent node of the node where the entry was removed. |
---|---|
Note | Only supported by descendant classes with non balanced nodes |
function TLinkedBtree.RequireMerge(AEntry:TBtreeObject):Boolean;
Entry | Entry is the start key of the node where the entry was removed. Or a key in a parent node of the node where the entry was removed. |
---|
function TLinkedBtree.RequireBorrow(AEntry:TBtreeObject):Boolean;
Entry | Entry is the start key of the node where the entry was removed. Or a key in a parent node of the node where the entry was removed. |
---|
function TLinkedBtree.Compare(AEntry1,AEntry2:TBtreeObject):Integer;
Note | This means keys will end up in added order if no compare is provided |
---|
function TLinkedBtree.Add(AParent,AEntry:TBtreeObject):Boolean;
Entry | Entries must be added in btree order to obtain final order |
---|---|
Note | Both real and blank keys can be added. No events are triggered by Add. |
function TLinkedBtree.Insert(AEntry:TBtreeObject):Boolean;
Note | Rebalances the tree after inserting the new entry. Blank keys cannot be inserted. Entry must be created by the caller. |
---|
function TLinkedBtree.Remove(AEntry:TBtreeObject):Boolean;
Note | Rebalances the tree after deleting the entry. Blank keys cannot be removed. Entry must be destroyed by the caller. |
---|
procedure TLinkedBtree.Clear;
Note | None documented |
---|
procedure TLinkedBtree.Empty;
Note | None documented |
---|
procedure TLinkedBtree.Rebuild;
Note | None documented |
---|
TLinkedObjBtree
constructor TLinkedObjBtree.Create;
Note | None documented |
---|
destructor TLinkedObjBtree.Destroy;
Note | None documented |
---|
procedure TLinkedObjBtree.ClearBtree;
Note | None documented |
---|
procedure TLinkedObjBtree.EmptyBtree;
Note | None documented |
---|
THashListObject
procedure THashListObject.SetKeyHash(AKeyHash:LongWord);
Note | None documented |
---|
THashLinkedList
constructor THashLinkedList.Create(AKeyBits:Byte);
Note | None documented |
---|
destructor THashLinkedList.Destroy;
Note | None documented |
---|
function THashLinkedList.KeyLink(AValue:THashListObject):Boolean;
Note | None documented |
---|
function THashLinkedList.KeyUnlink(AValue:THashListObject):Boolean;
Note | None documented |
---|
function THashLinkedList.KeyFirst(AKeyHash:LongWord):THashListObject;
Note | None documented |
---|
function THashLinkedList.Add(AValue:TListObject):Boolean;
Note | None documented |
---|
function THashLinkedList.Remove(AValue:TListObject):Boolean;
Note | None documented |
---|
function THashLinkedList.Insert(APrev,AValue:TListObject):Boolean;
Note | None documented |
---|
procedure THashLinkedList.Clear;
Note | None documented |
---|
THashLinkedObjList
constructor THashLinkedObjList.Create(AKeyBits:Byte);
Note | None documented |
---|
destructor THashLinkedObjList.Destroy;
Note | None documented |
---|
procedure THashLinkedObjList.ClearList;
Note | None documented |
---|
THashTreeObject
constructor THashTreeObject.Create(AKeyBits:Byte);
Note | None documented |
---|
destructor THashTreeObject.Destroy;
Note | None documented |
---|
procedure THashTreeObject.SetKeyHash(AKeyHash:LongWord);
Note | None documented |
---|
function THashTreeObject.KeyLink(AValue:THashTreeObject):Boolean;
Note | None documented |
---|
function THashTreeObject.KeyUnlink(AValue:THashTreeObject):Boolean;
Note | None documented |
---|
function THashTreeObject.KeyFirst(AKeyHash:LongWord):THashTreeObject;
Note | None documented |
---|
THashLinkedTree
constructor THashLinkedTree.Create(AKeyBits:Byte);
Note | None documented |
---|
destructor THashLinkedTree.Destroy;
Note | None documented |
---|
function THashLinkedTree.KeyLink(AValue,AParent:THashTreeObject):Boolean;
Note | None documented |
---|
function THashLinkedTree.KeyUnlink(AValue,AParent:THashTreeObject):Boolean;
Note | None documented |
---|
function THashLinkedTree.KeyFirst(AParent:THashTreeObject; AKeyHash:LongWord):THashTreeObject;
Note | None documented |
---|
function THashLinkedTree.Add(AValue,AParent:TTreeObject):Boolean;
Note | None documented |
---|
function THashLinkedTree.Remove(AValue:TTreeObject):Boolean;
Note | None documented |
---|
function THashLinkedTree.Insert(APrev,AValue,AParent:TTreeObject):Boolean;
Note | None documented |
---|
procedure THashLinkedTree.Move(AValue,AParent:TTreeObject);
Note | None documented |
---|
procedure THashLinkedTree.Clear;
Note | None documented |
---|
THashLinkedObjTree
constructor THashLinkedObjTree.Create(AKeyBits:Byte);
Note | None documented |
---|
destructor THashLinkedObjTree.Destroy;
Note | None documented |
---|
procedure THashLinkedObjTree.ClearListItems(AParent:THashTreeObject);
Note | None documented |
---|
procedure THashLinkedObjTree.ClearList;
Note | None documented |
---|
TStringObject
procedure TStringObject.SetValue(const AValue:String);
Note | None documented |
---|
TLinkedStringList
constructor TLinkedStringList.Create;
Note | None documented |
---|
destructor TLinkedStringList.Destroy;
Note | None documented |
---|
function TLinkedStringList.GetItem(AIndex:Integer):TStringObject;
Note | None documented |
---|
function TLinkedStringList.Link(AValue:TStringObject):Boolean;
Note | None documented |
---|
function TLinkedStringList.LinkEx(APrev,AValue:TStringObject):Boolean;
Note | If APrev is nil then Link as first value in list |
---|
function TLinkedStringList.Unlink(AValue:TStringObject):Boolean;
Note | None documented |
---|
procedure TLinkedStringList.ClearList;
Note | None documented |
---|
procedure TLinkedStringList.Changed;
Note | None documented |
---|
procedure TLinkedStringList.Changing;
Note | None documented |
---|
function TLinkedStringList.Get(Index:Integer):String;
Note | None documented |
---|
function TLinkedStringList.GetCount:Integer;
Note | None documented |
---|
function TLinkedStringList.GetObject(Index:Integer):TObject;
Note | None documented |
---|
procedure TLinkedStringList.Put(Index:Integer;const S:String);
Note | None documented |
---|
procedure TLinkedStringList.PutObject(Index:Integer; AObject:TObject);
Note | None documented |
---|
procedure TLinkedStringList.SetUpdateState(Updating:Boolean);
Note | None documented |
---|
function TLinkedStringList.Add(const S:String):Integer;
Note | None documented |
---|
procedure TLinkedStringList.Clear;
Note | None documented |
---|
procedure TLinkedStringList.Delete(Index:Integer);
Note | None documented |
---|
procedure TLinkedStringList.Exchange(Index1,Index2:Integer);
Note | None documented |
---|
function TLinkedStringList.IndexOf(const S:String):Integer;
Note | None documented |
---|
procedure TLinkedStringList.Insert(Index:Integer; const S:String);
Note | None documented |
---|
TStringBlock
destructor TStringBlock.Destroy;
Note | None documented |
---|
TLinkedStringListEx
constructor TLinkedStringListEx.Create;
Note | None documented |
---|
destructor TLinkedStringListEx.Destroy;
Note | None documented |
---|
function TLinkedStringListEx.GetBlock(Index:Integer):TStringBlock;
Note | None documented |
---|
function TLinkedStringListEx.AddBlock(Block:TStringBlock; Index:Integer):TStringBlock;
Index | Starting Index of Block to be Added |
---|---|
Block | Current Block containing Index or nil |
function TLinkedStringListEx.DeleteBlock(Block:TStringBlock):Boolean;
Note | None documented |
---|
function TLinkedStringListEx.UpdateBlocks(Block:TStringBlock):Boolean;
Note | None documented |
---|
function TLinkedStringListEx.GetItem(Block:TStringBlock; Index:Integer):TStringObjectEx;
Note | None documented |
---|
function TLinkedStringListEx.AddItem(Block:TStringBlock; Index:Integer; Item:TStringObjectEx):Boolean;
Note | None documented |
---|
function TLinkedStringListEx.DeleteItem(Block:TStringBlock;Index:Integer; Item:TStringObjectEx):Boolean;
Note | None documented |
---|
function TLinkedStringListEx.IndexOfItem(Block:TStringBlock; Item:TStringObjectEx):Integer;
Note | None documented |
---|
function TLinkedStringListEx.Get(Index:Integer):String;
Note | None documented |
---|
function TLinkedStringListEx.GetCapacity:Integer;
Note | None documented |
---|
function TLinkedStringListEx.GetObject(Index:Integer):TObject;
Note | None documented |
---|
procedure TLinkedStringListEx.Put(Index:Integer;const S:String);
Note | None documented |
---|
procedure TLinkedStringListEx.PutObject(Index:Integer; AObject:TObject);
Note | None documented |
---|
function TLinkedStringListEx.Add(const S:String):Integer;
Note | None documented |
---|
procedure TLinkedStringListEx.Clear;
Note | None documented |
---|
procedure TLinkedStringListEx.Delete(Index:Integer);
Note | None documented |
---|
procedure TLinkedStringListEx.Exchange(Index1,Index2:Integer);
Note | None documented |
---|
function TLinkedStringListEx.IndexOf(const S:String):Integer;
Note | Could use Counted Index method of TLinkedStringList instead |
---|
procedure TLinkedStringListEx.Insert(Index:Integer; const S:String);
Note | None documented |
---|
THashStringObject
procedure THashStringObject.SetHash(AHash:LongWord);
Note | None documented |
---|
procedure THashStringObject.SetValue(const AValue:String);
Note | None documented |
---|
THashLinkedStringList
constructor THashLinkedStringList.Create(AKeyBits:Byte);
Note | None documented |
---|
destructor THashLinkedStringList.Destroy;
Note | None documented |
---|
function THashLinkedStringList.KeyLink(AValue:THashStringObject):Boolean;
Note | None documented |
---|
function THashLinkedStringList.KeyUnlink(AValue:THashStringObject):Boolean;
Note | None documented |
---|
procedure THashLinkedStringList.ClearList;
Note | None documented |
---|
function THashLinkedStringList.KeyFirst(AKeyHash:LongWord):THashStringObject;
Note | None documented |
---|
function THashLinkedStringList.Add(const S:String):Integer;
Note | None documented |
---|
procedure THashLinkedStringList.Delete(Index:Integer);
Note | None documented |
---|
function THashLinkedStringList.IndexOf(const S:String):Integer;
Note | Cannot use Counted Index method due to use of Hash Buckets |
---|
procedure THashLinkedStringList.Insert(Index:Integer; const S:String);
Note | None documented |
---|
TIntegerList
constructor TIntegerList.Create;
Note | None documented |
---|
destructor TIntegerList.Destroy;
Note | None documented |
---|
function TIntegerList.GetItem(Idx:Integer):Integer;
Note | None documented |
---|
procedure TIntegerList.SetItem(Idx,Value:Integer);
Note | None documented |
---|
function TIntegerList.GetCount:Integer;
Note | None documented |
---|
function TIntegerList.Add(AValue:Integer):Integer;
Note | None documented |
---|
function TIntegerList.Remove(AValue:Integer):Integer;
Note | None documented |
---|
procedure TIntegerList.Delete(Idx:Integer);
Note | None documented |
---|
function TIntegerList.IndexOf(AValue:Integer):Integer;
Note | None documented |
---|
procedure TIntegerList.Clear;
Note | None documented |
---|
TDateTimeList
constructor TDateTimeList.Create;
Note | None documented |
---|
destructor TDateTimeList.Destroy;
Note | None documented |
---|
function TDateTimeList.GetItem(Idx:Integer):TDateTime;
Note | None documented |
---|
procedure TDateTimeList.SetItem(Idx:Integer; Value:TDateTime);
Note | None documented |
---|
function TDateTimeList.GetCount:Integer;
Note | None documented |
---|
function TDateTimeList.Add(AValue:TDateTime):Integer;
Note | None documented |
---|
function TDateTimeList.Remove(AValue:TDateTime):Integer;
Note | None documented |
---|
procedure TDateTimeList.Delete(Idx:Integer);
Note | None documented |
---|
function TDateTimeList.IndexOf(AValue:TDateTime):Integer;
Note | None documented |
---|
procedure TDateTimeList.Clear;
Note | None documented |
---|
TMemoryBlock
destructor TMemoryBlock.Destroy;
Note | None documented |
---|
TMemoryStreamEx
constructor TMemoryStreamEx.Create;
Note | None documented |
---|
destructor TMemoryStreamEx.Destroy;
Note | None documented |
---|
function TMemoryStreamEx.RoundSize(ASize:LongInt):LongWord;
Note | None documented |
---|
function TMemoryStreamEx.GetBlock(AOffset:LongWord):TMemoryBlock;
Note | None documented |
---|
function TMemoryStreamEx.ReadBlock(ABlock:TMemoryBlock; ABuffer:Pointer; AOffset,ACount:LongWord):LongWord;
Note | None documented |
---|
function TMemoryStreamEx.WriteBlock(ABlock:TMemoryBlock; ABuffer:Pointer; AOffset,ACount:LongWord):LongWord;
Note | None documented |
---|
procedure TMemoryStreamEx.SetCapacity(ACapacity:LongWord);
Note | None documented |
---|
procedure TMemoryStreamEx.SetSize(ASize:LongInt);
Note | None documented |
---|
function TMemoryStreamEx.Read(var ABuffer; ACount:LongInt):LongInt;
Note | None documented |
---|
function TMemoryStreamEx.Write(const ABuffer; ACount:LongInt):LongInt;
Note | None documented |
---|
function TMemoryStreamEx.Seek(AOffset:LongInt; AOrigin:Word):LongInt;
Note | None documented |
---|
procedure TMemoryStreamEx.SaveToStream(AStream:TStream);
Note | None documented |
---|
procedure TMemoryStreamEx.LoadFromStream(AStream:TStream);
Note | None documented |
---|
procedure TMemoryStreamEx.SaveToFile(const AFileName:String);
Note | None documented |
---|
procedure TMemoryStreamEx.LoadFromFile(const AFileName:String);
Note | None documented |
---|
procedure TMemoryStreamEx.Clear;
Note | None documented |
---|
TStreamEx
function TStreamEx.GetPositionEx:Int64;
Note | None documented |
---|
procedure TStreamEx.SetPositionEx(const Pos:Int64);
Note | None documented |
---|
function TStreamEx.GetSizeEx:Int64;
Note | None documented |
---|
procedure TStreamEx.SetSizeEx(const NewSize:Int64);
Note | None documented |
---|
THandleStreamEx
constructor THandleStreamEx.Create(AHandle:Integer);
Note | None documented |
---|
procedure THandleStreamEx.SetSize(NewSize:LongInt);
Note | None documented |
---|
procedure THandleStreamEx.SetSizeEx(const NewSize:Int64);
Note | None documented |
---|
function THandleStreamEx.Read(var Buffer; Count:Longint):Longint;
Note | None documented |
---|
function THandleStreamEx.Write(const Buffer; Count:Longint):Longint;
Note | None documented |
---|
function THandleStreamEx.Seek(Offset:Longint; Origin:Word):Longint;
Note | None documented |
---|
function THandleStreamEx.SeekEx(const Offset:Int64; Origin:Word):Int64;
Note | None documented |
---|
TFileStreamEx
constructor TFileStreamEx.Create(const FileName:String; Mode:Word);
Note | None documented |
---|
destructor TFileStreamEx.Destroy;
Note | None documented |
---|
TStringItemEx
procedure TStringItemEx.SetValue(const AValue:String);
Note | None documented |
---|
TStringListEx
constructor TStringListEx.Create;
Note | None documented |
---|
destructor TStringListEx.Destroy;
Note | None documented |
---|
function TStringListEx.GetBlock(Index:Integer):TStringBlock;
Note | None documented |
---|
function TStringListEx.AddBlock(Block:TStringBlock; Index:Integer):TStringBlock;
Index | Starting Index of Block to be Added |
---|---|
Block | Current Block containing Index or nil |
function TStringListEx.DeleteBlock(Block:TStringBlock):Boolean;
Note | None documented |
---|
function TStringListEx.UpdateBlocks(Block:TStringBlock):Boolean;
Note | None documented |
---|
function TStringListEx.GetItem(Block:TStringBlock; Index:Integer):TStringItemEx;
Note | None documented |
---|
function TStringListEx.AddItem(Block:TStringBlock; Index:Integer; Item:TStringItemEx):Boolean;
Note | None documented |
---|
function TStringListEx.DeleteItem(Block:TStringBlock; Index:Integer; Item:TStringItemEx):Boolean;
Note | None documented |
---|
procedure TStringListEx.ClearList;
Note | None documented |
---|
procedure TStringListEx.Changed;
Note | None documented |
---|
procedure TStringListEx.Changing;
Note | None documented |
---|
function TStringListEx.Get(Index:Integer):String;
Note | None documented |
---|
function TStringListEx.GetCapacity:Integer;
Note | None documented |
---|
function TStringListEx.GetCount:Integer;
Note | None documented |
---|
function TStringListEx.GetObject(Index:Integer):TObject;
Note | None documented |
---|
procedure TStringListEx.Put(Index:Integer; const S:String);
Note | None documented |
---|
procedure TStringListEx.PutObject(Index:Integer; AObject:TObject);
Note | None documented |
---|
procedure TStringListEx.SetUpdateState(Updating:Boolean);
Note | None documented |
---|
function TStringListEx.Add(const S:String):Integer;
Note | None documented |
---|
procedure TStringListEx.Clear;
Note | None documented |
---|
procedure TStringListEx.Delete(Index:Integer);
Note | None documented |
---|
procedure TStringListEx.Exchange(Index1,Index2:Integer);
Note | None documented |
---|
function TStringListEx.IndexOf(const S:String):Integer;
Note | None documented |
---|
procedure TStringListEx.Insert(Index:Integer; const S:String);
Note | None documented |
---|
Return to Unit Reference