Difference between revisions of "Unit UltiboClasses"

From Ultibo.org
Jump to: navigation, search
Line 118: Line 118:
  
  
'''TThreadEx'''
+
'''Ultibo specific classes'''
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
<code>TThreadEx = class(TThread)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: TThread with Before and After Execution methods
+
| [[TThreadEx|<code>TThreadEx = class(TThread)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure Execution; virtual;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>procedure AfterExecution; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>procedure BeforeExecution; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Execute; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>procedure TerminateAndWaitFor;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TTimerEx'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TTimerEx = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: TTimer/TFPTimer equivalent for Ultibo specific timers
+
| [[TTimerEx|<code>TTimerEx = class(TObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FInterval:Integer;</code>
+
| &nbsp;
+
|-
+
| <code>FEnabled:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>FWorker:Boolean;</code>
+
| If True then use a Worker thread for the timer event
+
|-
+
| <code>FOnTimer:TNotifyEvent;</code>
+
| &nbsp;
+
|-
+
| <code>FTimerHandle:TTimerHandle;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>procedure SetEnabled(Value:Boolean);</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure Timer; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>procedure StartTimer; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>procedure StopTimer; virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Interval:Integer read FInterval write FInterval;</code>
+
| &nbsp;
+
|-
+
| <code>property Enabled:Boolean read FEnabled write SetEnabled;</code>
+
| &nbsp;
+
|-
+
| <code>property Worker:Boolean read FWorker write FWorker;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>property OnTimer:TNotifyEvent read FOnTimer write FOnTimer;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TObjList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TObjList = class(TList)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: TList with Auto Free of List Objects
+
| [[TObjList|<code>TObjList = class(TList)</code>]]
List which Frees all nodes on Destroy
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>procedure DestroyListObjects;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>procedure ClearList;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TThreadObjList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TThreadObjList = class(TThreadList)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: TThreadList with Auto Free of List Objects
+
| [[TThreadObjList|<code>TThreadObjList = class(TThreadList)</code>]]
Thread Safe List which Frees all nodes on Destroy
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>procedure DestroyListObjects;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>procedure ClearList;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TListObject'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TListObject = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A TObject with .Prev/.Next with Properties for use in Lists
+
| [[TListObject|<code>TListObject = class(TObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FPrev:TListObject;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>FNext:TListObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Prev:TListObject read FPrev write FPrev;</code>
+
| &nbsp;
+
|-
+
| <code>property Next:TListObject read FNext write FNext;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TLinkedList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TLinkedList = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A List of TListObjects with automatic .Prev/.Next Links
+
| [[TLinkedList|<code>TLinkedList = class(TObject)</code>]]
Linked List which does not Free nodes on Destroy
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FCount:Integer;</code>
+
| &nbsp;
+
|-
+
| <code>FFirst:TListObject;</code>
+
| &nbsp;
+
|-
+
| <code>FLast:TListObject;</code>
+
| &nbsp;
+
|-
+
| <code>function GetCount:Integer;</code>
+
| &nbsp;
+
|-
+
| <code>function Link(AValue:TListObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function LinkEx(APrev,AValue:TListObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Unlink(AValue:TListObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Count:Integer read GetCount;</code>
+
| &nbsp;
+
|-
+
| <code>property First:TListObject read FFirst;</code>
+
| &nbsp;
+
|-
+
| <code>property Last:TListObject read FLast;</code>
+
| &nbsp;
+
|-
+
| <code>function Add(AValue:TListObject):Boolean; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function Remove(AValue:TListObject):Boolean; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function Insert(APrev,AValue:TListObject):Boolean; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Clear; virtual;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TLinkedObjList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TLinkedObjList = class(TLinkedList)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: TLinkedList with Auto Free of List Objects
+
| [[TLinkedObjList|<code>TLinkedObjList = class(TLinkedList)</code>]]
Linked List which Frees all nodes on Destroy
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>procedure ClearList;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TThreadLinkedObjList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TThreadLinkedObjList = class(TLinkedList)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: TLinkedList with Auto Free of List Objects
+
| [[TThreadLinkedObjList|<code>TThreadLinkedObjList = class(TLinkedList)</code>]]
Thread Safe Linked List which Frees all nodes on Destroy
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FLock:TRTLCriticalSection;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>procedure ClearList;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>procedure LockList; </code>
+
| &nbsp;
+
|-
+
| <code>procedure UnlockList;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TTreeObject'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TTreeObject = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|Note: A TObject with Prev/Next/Parent/FirstChild for use in Trees
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FParent:TTreeObject;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>FFirstChild:TTreeObject;</code>
+
| &nbsp;
+
|-
+
| <code>FLastChild:TTreeObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Parent:TTreeObject read FParent write FParent;</code>
+
| &nbsp;
+
|-
+
| <code>property FirstChild:TTreeObject read FFirstChild write FFirstChild;</code>
+
| &nbsp;
+
 
|-
 
|-
| <code>property LastChild:TTreeObject read FLastChild write FLastChild;</code>
+
| [[TTreeObject|<code>TTreeObject = class(TListObject)</code>]]
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TLinkedTree'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TLinkedTree = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A Tree of TTreeObjects with automatic Prev/Next etc Links
+
| [[TLinkedTree|<code>TLinkedTree = class(TObject)</code>]]
Linked Tree which does not Free nodes on Destroy
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FCount:Integer;</code>
+
| &nbsp;
+
|-
+
| <code>FFirst:TTreeObject;</code>
+
| &nbsp;
+
|-
+
| <code>FLast:TTreeObject;</code>
+
| &nbsp;
+
|-
+
| <code>function GetCount:Integer;</code>
+
| &nbsp;
+
|-
+
| <code>function Link(AValue,AParent:TTreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function LinkEx(APrev,AValue,AParent:TTreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Unlink(AValue:TTreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Count:Integer read GetCount;</code>
+
| &nbsp;
+
|-
+
| <code>property Root:TTreeObject read FFirst;</code>
+
| &nbsp;
+
|-
+
| <code>property First:TTreeObject read FFirst;</code>
+
| &nbsp;
+
|-
+
| <code>property Last:TTreeObject read FLast;</code>
+
| &nbsp;
+
|-
+
| <code>function Add(AValue,AParent:TTreeObject):Boolean; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function Remove(AValue:TTreeObject):Boolean; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function Insert(APrev,AValue,AParent:TTreeObject):Boolean; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Move(AValue,AParent:TTreeObject); virtual;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Clear; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function FirstChild(AParent:TTreeObject):TTreeObject;</code>
+
| &nbsp;
+
|-
+
| <code>function LastChild(AParent:TTreeObject):TTreeObject;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TLinkedObjTree'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TLinkedObjTree = class(TLinkedTree)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: TLinkedTree with Auto Free of Tree Objects
+
| [[TLinkedObjTree|<code>TLinkedObjTree = class(TLinkedTree)</code>]]
Linked Tree which Frees all nodes on Destroy
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure ClearListItems(AParent:TTreeObject);</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>procedure ClearList;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TBtreeObject'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TBtreeObject = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A TObject with Left/Right/Parent for use in B-Trees
+
| [[TBtreeObject|<code>TBtreeObject = class(TObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FBlank:Boolean;</code>
+
| style="width: 50%;"|Object is the blank key (1 per node)
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>FPrev:TBtreeObject;</code>
+
| Prev object in Linked List (Sorted)
+
|-
+
| <code>FNext:TBtreeObject;</code>
+
| Next object in Linked List (Sorted)
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>FLeft:TBtreeObject;</code>
+
| Left sibling in B-Tree (Lower)
+
|-
+
| <code>FRight:TBtreeObject;</code>
+
| Right sibling in B-Tree (Higher)
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>FChild:TBtreeObject;</code>
+
| Child object in B-Tree (Lower)
+
|-
+
| <code>FParent:TBtreeObject;</code>
+
| Parent object in B-Tree (Higher)
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Blank:Boolean read FBlank write FBlank;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>property Prev:TBtreeObject read FPrev write FPrev;</code>
+
| &nbsp;
+
|-
+
| <code>property Next:TBtreeObject read FNext write FNext;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>property Left:TBtreeObject read FLeft write FLeft;</code>
+
| &nbsp;
+
|-
+
| <code>property Right:TBtreeObject read FRight write FRight;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>property Child:TBtreeObject read FChild write FChild;</code>
+
| &nbsp;
+
|-
+
| <code>property Parent:TBtreeObject read FParent write FParent;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>procedure Clear;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TLinkedBtree'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TLinkedBtree = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A B-Tree of TBtreeObjects with automatic Left/Right etc Links
+
| [[TLinkedBtree|<code>TLinkedBtree = class(TObject)</code>]]
Linked B-Tree which does not Free nodes on Destroy
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|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.
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>procedure SetOrder(AOrder:LongWord);</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function PropogateDrop(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function PropogateDropOld(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function PropogateDropOldOld(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function PropogateMerge(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function PropogateSplit(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>FOrder:LongWord;</code>
+
| Order N of B-Tree (N - 1 Keys per Node)
+
|-
+
| <code>FMedian:LongWord;</code>
+
| Ceil(N / 2) (Median - 1 Keys as Minimum)
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>FSwapLeft:Boolean;</code>
+
| If True then Remove will Swap with Left not Right
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>FRoot:TBtreeObject;</code>
+
| Root Node of B-Tree
+
|-
+
| <code>FFirst:TBtreeObject;</code>
+
| First object in Linked List (Sorted)
+
|-
+
| <code>FLast:TBtreeObject;</code>
+
| Last object in Linked List (Sorted)
+
|-
+
| <code>FFirstBlank:TBtreeObject;</code>
+
| First blank key in Linked List (Not Sorted)
+
|-
+
| <code>FLastBlank:TBtreeObject;</code>
+
| Last blank key in Linked List (Not Sorted)
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetCount(AEntry:TBtreeObject):LongWord; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function GetDepth(AEntry:TBtreeObject):LongWord; virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetEnd(AEntry:TBtreeObject):TBtreeObject; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function GetStart(AEntry:TBtreeObject):TBtreeObject; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function GetBlank(AEntry:TBtreeObject):TBtreeObject; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function GetMedian(AEntry:TBtreeObject):TBtreeObject; virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetDrop(AEntry:TBtreeObject; var ALeft:Boolean):TBtreeObject; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function GetMerge(AEntry:TBtreeObject):TBtreeObject; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function GetBorrow(AEntry:TBtreeObject):TBtreeObject; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function GetTarget(ADrop:TBtreeObject; ALeft:Boolean):TBtreeObject; virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function SetParent(AEntry,AParent:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetLefthand(AEntry:TBtreeObject):TBtreeObject;</code>
+
| &nbsp;
+
|-
+
| <code>function GetRighthand(AEntry:TBtreeObject):TBtreeObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetLeftmost(AEntry:TBtreeObject):TBtreeObject;</code>
+
| &nbsp;
+
|-
+
| <code>function GetRightmost(AEntry:TBtreeObject):TBtreeObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetSuccessor(AEntry:TBtreeObject):TBtreeObject;</code>
+
| &nbsp;
+
|-
+
| <code>function GetPredecessor(AEntry:TBtreeObject):TBtreeObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetPosition(AStart,AEntry:TBtreeObject):TBtreeObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function Push(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Split(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Swap(AEntry,ASwap:TBtreeObject; ALeft:Boolean):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Drop(AEntry,ADrop,ATarget:TBtreeObject; ALeft:Boolean):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function DropOld(AEntry,ADrop:TBtreeObject; ALeft:Boolean):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function DropOldOld(AEntry,ADrop:TBtreeObject; ALeft:Boolean):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function DropOldOldOld(AEntry,ADrop:TBtreeObject; ALeft:Boolean):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Merge(AEntry,AMerge:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Borrow(AEntry,ABorrow:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function Link(AEntry,ANext:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Unlink(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function LinkBlank(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function UnlinkBlank(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function Attach(AParent,AEntry,ARight:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Detach(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function PushNode(AEntry:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to monitor node pus
+
|-
+
| <code>function SplitNode(AEntry:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to monitor node split
+
|-
+
| <code>function DropNode(AEntry,ADrop,ATarget:TBtreeObject; ALeft:Boolean):Boolean; virtual;</code>
+
| Allows descendants to monitor node drop
+
|-
+
| <code>function DropNodeOld(AEntry,ADrop:TBtreeObject; ALeft:Boolean):Boolean; virtual;</code>
+
| Allows descendants to monitor node drop
+
|-
+
| <code>function MergeNode(AEntry,AMerge:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to monitor node merge
+
|-
+
| <code>function BorrowEntry(AEntry,ABorrow:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to monitor entry borrow
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function SwapEntry(AEntry,ASwap:TBtreeObject;ALeft:Boolean):Boolean; virtual;</code>
+
| Allows descendants to monitor entry swap
+
|-
+
| <code>function SetParentEntry(AEntry,AParent:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to monitor entry parent
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function CreateBlank:TBtreeObject; virtual;</code>
+
| Allows descendants to monitor node creation
+
|-
+
| <code>function DeleteBlank(ABlank:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to monitor node deletion
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AttachBlank(ABlank:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to monitor node modification
+
|-
+
| <code>function DetachBlank(ABlank:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to monitor node modification
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AttachEntry(AEntry:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to monitor node modification
+
|-
+
| <code>function DetachEntry(AEntry:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to monitor node modification
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function RequirePush(AEntry:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to modify balancing behaviour
+
|-
+
| <code>function RequireSplit(AEntry:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to modify balancing behaviour
+
|-
+
| <code>function RequireDrop(AEntry:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to modify balancing behaviour
+
|-
+
| <code>function RequireMerge(AEntry:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to modify balancing behaviour
+
|-
+
| <code>function RequireBorrow(AEntry:TBtreeObject):Boolean; virtual;</code>
+
| Allows descendants to modify balancing behaviour
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function Compare(AEntry1,AEntry2:TBtreeObject):Integer; virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Order:LongWord read FOrder write SetOrder;</code>
+
| &nbsp;
+
|-
+
| <code>property Median:LongWord read FMedian;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>property SwapLeft:Boolean read FSwapLeft;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>property Root:TBtreeObject read FRoot;</code>
+
| &nbsp;
+
|-
+
| <code>property First:TBtreeObject read FFirst;</code>
+
| &nbsp;
+
|-
+
| <code>property Last:TBtreeObject read FLast;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function Add(AParent,AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function Insert(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Remove(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function RemoveOld(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function RemoveOldOld(AEntry:TBtreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>procedure Clear;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Empty;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Rebuild;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TLinkedObjBtree'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TLinkedObjBtree = class(TLinkedBtree)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: TLinkedBtree with Auto Free of B-Tree Objects
+
| [[TLinkedObjBtree|<code>TLinkedObjBtree = class(TLinkedBtree)</code>]]
Linked B-Tree which Frees all nodes on Destroy
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>procedure ClearBtree;</code>
+
| &nbsp;
+
|-
+
| <code>procedure EmptyBtree;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''THashListObject'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>THashListObject = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A TObject with KeyPrev/KeyNext/KeyHash for use in HashLists
+
| [[THashListObject|<code>THashListObject = class(TListObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FKeyPrev:THashListObject;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>FKeyNext:THashListObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>FKeyHash:LongWord;</code>
+
| Publish in descendants if required
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>procedure SetKeyHash(AKeyHash:LongWord);</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property KeyList:THashLinkedList read FKeyList write FKeyList;</code>
+
| &nbsp;
+
|-
+
| <code>property KeyPrev:THashListObject read FKeyPrev write FKeyPrev;</code>
+
| &nbsp;
+
|-
+
| <code>property KeyNext:THashListObject read FKeyNext write FKeyNext;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''THashLinkedList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>THashLinkedList = class(TLinkedList)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A List of THashListObjects with automatic hash buckets
+
| [[THashLinkedList|<code>THashLinkedList = class(TLinkedList)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create(AKeyBits:Byte);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FKeyBits:Byte;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyMask:LongWord;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyBuckets:Pointer;</code>
+
| &nbsp;
+
|-
+
| <code>function KeyLink(AValue:THashListObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function KeyUnlink(AValue:THashListObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>function KeyFirst(AKeyHash:LongWord):THashListObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function Add(AValue:TListObject):Boolean; override;</code>
+
| &nbsp;
+
|-
+
| <code>function Remove(AValue:TListObject):Boolean; override;</code>
+
| &nbsp;
+
|-
+
| <code>function Insert(APrev,AValue:TListObject):Boolean; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Clear; override;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''THashLinkedObjList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>THashLinkedObjList = class(THashLinkedList)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: THashLinkedList with Auto Free of List Objects
+
| [[THashLinkedObjList|<code>THashLinkedObjList = class(THashLinkedList)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create(AKeyBits:Byte);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>procedure ClearList;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''THashTreeObject'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>THashTreeObject = class(TTreeObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A TObject with KeyPrev/KeyNext/KeyHash for use in HashTrees
+
| [[THashTreeObject|<code>THashTreeObject = class(TTreeObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create(AKeyBits:Byte);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FKeyBits:Byte;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyMask:LongWord;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyBuckets:Pointer;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyTree:THashLinkedTree;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyPrev:THashTreeObject;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyNext:THashTreeObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>FKeyHash:LongWord; {Publish in descendants if required}</code>
+
| &nbsp;
+
|-
+
| <code>procedure SetKeyHash(AKeyHash:LongWord);</code>
+
| &nbsp;
+
|-
+
| <code>function KeyLink(AValue:THashTreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function KeyUnlink(AValue:THashTreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>function KeyFirst(AKeyHash:LongWord):THashTreeObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>property KeyTree:THashLinkedTree read FKeyTree write FKeyTree;</code>
+
| &nbsp;
+
|-
+
| <code>property KeyPrev:THashTreeObject read FKeyPrev write FKeyPrev;</code>
+
| &nbsp;
+
|-
+
| <code>property KeyNext:THashTreeObject read FKeyNext write FKeyNext;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''THashLinkedTree'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>THashLinkedTree = class(TLinkedTree)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A Tree of THashTreeObjects with automatic hash buckets
+
| [[THashLinkedTree|<code>THashLinkedTree = class(TLinkedTree)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create(AKeyBits:Byte);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FKeyBits:Byte;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyMask:LongWord;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyBuckets:Pointer;</code>
+
| &nbsp;
+
|-
+
| <code>function KeyLink(AValue,AParent:THashTreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function KeyUnlink(AValue,AParent:THashTreeObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>function KeyFirst(AParent:THashTreeObject; AKeyHash:LongWord):THashTreeObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function Add(AValue,AParent:TTreeObject):Boolean; override;</code>
+
| &nbsp;
+
|-
+
| <code>function Remove(AValue:TTreeObject):Boolean; override;</code>
+
| &nbsp;
+
|-
+
| <code>function Insert(APrev,AValue,AParent:TTreeObject):Boolean; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Move(AValue,AParent:TTreeObject); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Clear; override;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''THashLinkedObjTree'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>THashLinkedObjTree = class(THashLinkedTree)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: THashLinkedTree with Auto Free of List Objects
+
| [[THashLinkedObjTree|<code>THashLinkedObjTree = class(THashLinkedTree)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create(AKeyBits:Byte);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>procedure ClearListItems(AParent:THashTreeObject);</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>procedure ClearList;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TStringObject'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TStringObject = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A TObject with Prev/Next/Value/Hash for use in StringLists
+
| [[TStringObject|<code>TStringObject = class(TListObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FValue:String;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>FData:TObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>FHash:LongWord;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>procedure SetValue(const AValue:String); virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Value:String read FValue write SetValue;</code>
+
| &nbsp;
+
|-
+
| <code>property Data:TObject read FData write FData;</code>
+
| &nbsp;
+
|-
+
| <code>property Hash:LongWord read FHash;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TLinkedStringList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TLinkedStringList = class(TStrings)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|Note: A List of TStringObjects with automatic Prev/Next Links
+
Mostly identical methods to TStringList with addition of First/Last/Next/Prev
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|Note: Currently does not implement Sorting or Duplicate handling
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public''' (Public destructor for FPC RTL)</div>
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FCount:Integer;</code>
+
| &nbsp;
+
|-
+
| <code>FFirst:TStringObject;</code>
+
| &nbsp;
+
|-
+
| <code>FLast:TStringObject;</code>
+
| &nbsp;
+
|-
+
| <code>FSorted:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>FUpdating:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>FDuplicates:TDuplicates;</code>
+
| &nbsp;
+
|-
+
| <code>FOnChange:TNotifyEvent;</code>
+
| &nbsp;
+
|-
+
| <code>FOnChanging:TNotifyEvent;</code>
+
| &nbsp;
+
|-
+
| <code>procedure QuickSort(L,R:Integer);</code>
+
| &nbsp;
+
|-
+
| <code>procedure SetSorted(Value:Boolean);</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetItem(AIndex:Integer):TStringObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function Link(AValue:TStringObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function LinkEx(APrev,AValue:TStringObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function Unlink(AValue:TStringObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure ClearList; virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>procedure Changed; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Changing; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function Get(Index:Integer):String; override;</code>
+
| &nbsp;
+
|-
+
| <code>function GetCount:Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>function GetObject(Index:Integer):TObject; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Put(Index:Integer; const S:String); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure PutObject(Index:Integer; AObject:TObject); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure SetUpdateState(Updating:Boolean); override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>function Add(const S:String):Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Clear; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Delete(Index:Integer); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Exchange(Index1,Index2:Integer); override;</code>
+
| &nbsp;
+
|-
+
| <code>function Find(const S:String; var Index:Integer):Boolean; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function IndexOf(const S:String):Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Insert(Index:Integer; const S:String); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Sort; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>property First:TStringObject read FFirst;</code>
+
| &nbsp;
+
|-
+
| <code>property Last:TStringObject read FLast;</code>
+
| &nbsp;
+
|-
+
| <code>property Duplicates:TDuplicates read FDuplicates write FDuplicates;</code>
+
| &nbsp;
+
|-
+
| <code>property Sorted:Boolean read FSorted write SetSorted;</code>
+
| &nbsp;
+
|-
+
| <code>property OnChange:TNotifyEvent read FOnChange write FOnChange;</code>
+
| &nbsp;
+
 
|-
 
|-
| <code>property OnChanging:TNotifyEvent read FOnChanging write FOnChanging;</code>
+
| [[TLinkedStringList|<code>TLinkedStringList = class(TStrings)</code>]]
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TStringBlock'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TStringBlock = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: Block object for TLinkedStringListEx
+
| [[TStringBlock|<code>TStringBlock = class(TListObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>Data:Pointer;</code>
+
| Pointer to Allocated Memory Block
+
|-
+
| <code>Size:LongWord;</code>
+
| Size of Allocated Memory Block
+
|-
+
| <code>Start:LongWord;</code>
+
| Index of First Item in this Block
+
|-
+
| <code>Count:LongWord;</code>
+
| Current Items in this Block
+
|-
+
| <code>Capacity:LongWord;</code>
+
| Total Capacity of this Block
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TStringObjectEx'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TStringObjectEx = class(TStringObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A TStringObject for use with StringListEx
+
| [[TStringObjectEx|<code>TStringObjectEx = class(TStringObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FBlock:TStringBlock;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Block:TStringBlock read FBlock write FBlock;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TLinkedStringListEx'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TLinkedStringListEx = class(TLinkedStringList)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A TLinkedStringList with block list for entry Indexing
+
| [[TLinkedStringListEx|<code>TLinkedStringListEx = class(TLinkedStringList)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public''' (Public destructor for FPC RTL)</div>
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FRecent:TStringBlock;</code>
+
| &nbsp;
+
|-
+
| <code>FBlocks:TLinkedObjList;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>FCapacity:Integer;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetBlock(Index:Integer):TStringBlock;</code>
+
| &nbsp;
+
|-
+
| <code>function AddBlock(Block:TStringBlock; Index:Integer):TStringBlock;</code>
+
| &nbsp;
+
|-
+
| <code>function DeleteBlock(Block:TStringBlock):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function UpdateBlocks(Block:TStringBlock):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetItem(Block:TStringBlock; Index:Integer):TStringObjectEx;</code>
+
| &nbsp;
+
|-
+
| <code>function AddItem(Block:TStringBlock; Index:Integer; Item:TStringObjectEx):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function DeleteItem(Block:TStringBlock; Index:Integer; Item:TStringObjectEx):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function IndexOfItem(Block:TStringBlock; Item:TStringObjectEx):Integer;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function Get(Index:Integer):String; override;</code>
+
| &nbsp;
+
|-
+
| <code>function GetCapacity:Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>function GetObject(Index:Integer):TObject; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Put(Index:Integer; const S:String); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure PutObject(Index:Integer; AObject:TObject); override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>function Add(const S:String):Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Clear; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Delete(Index:Integer); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Exchange(Index1,Index2:Integer); override;</code>
+
| &nbsp;
+
|-
+
| <code>function IndexOf(const S:String):Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Insert(Index:Integer; const S:String); override;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''THashStringObject'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>THashStringObject = class(TStringObjectEx)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A TObject with Prev/Next/Hash for use in HashStringLists
+
| [[THashStringObject|<code>THashStringObject = class(TStringObjectEx)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FList:THashLinkedStringList;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>FKeyPrev:THashStringObject;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyNext:THashStringObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>procedure SetHash(AHash:LongWord);</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure SetValue(const AValue:String); override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property List:THashLinkedStringList read FList write FList;</code>
+
| &nbsp;
+
|-
+
| <code>property KeyPrev:THashStringObject read FKeyPrev write FKeyPrev;</code>
+
| &nbsp;
+
|-
+
| <code>property KeyNext:THashStringObject read FKeyNext write FKeyNext;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''THashLinkedStringList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>THashLinkedStringList = class(TLinkedStringListEx)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A List of TStringObjects with automatic hash buckets
+
| [[THashLinkedStringList|<code>THashLinkedStringList = class(TLinkedStringListEx)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create(AKeyBits:Byte);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public''' (Public destructor for FPC RTL)</div>
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FKeyBits:Byte;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyMask:LongWord;</code>
+
| &nbsp;
+
|-
+
| <code>FKeyBuckets:Pointer;</code>
+
| &nbsp;
+
|-
+
| <code>function KeyLink(AValue:THashStringObject):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function KeyUnlink(AValue:THashStringObject):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure ClearList; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>function KeyFirst(AKeyHash:LongWord):THashStringObject;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function Add(const S:String):Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Delete(Index:Integer); override;</code>
+
| &nbsp;
+
|-
+
| <code>function IndexOf(const S:String):Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Insert(Index:Integer; const S:String); override;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TIntegerList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TIntegerList = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: Same as a TStringList but for Integer values
+
| [[TIntegerList|<code>TIntegerList = class(TObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FItems:TList;</code>
+
| &nbsp;
+
|-
+
| <code>function GetItem(Idx:Integer):Integer;</code>
+
| &nbsp;
+
|-
+
| <code>procedure SetItem(Idx,Value:Integer);</code>
+
| &nbsp;
+
|-
+
| <code>function GetCount:Integer;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Items[Idx:Integer]:Integer read GetItem write SetItem;</code>
+
| &nbsp;
+
|-
+
| <code>property Count:Integer read GetCount;</code>
+
| &nbsp;
+
|-
+
| <code>function Add(AValue:Integer):Integer;</code>
+
| &nbsp;
+
|-
+
| <code>function Remove(AValue:Integer):Integer;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Delete(Idx:Integer);</code>
+
| &nbsp;
+
|-
+
| <code>function IndexOf(AValue:Integer):Integer;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Clear;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TDateTimeList'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TDateTimeList = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: Same as a TStringList but for TDateTime values
+
| [[TDateTimeList|<code>TDateTimeList = class(TObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FItems:TList;</code>
+
| &nbsp;
+
|-
+
| <code>function GetItem(Idx:Integer):TdateTime;</code>
+
| &nbsp;
+
|-
+
| <code>procedure SetItem(Idx:Integer; Value:TDateTime);</code>
+
| &nbsp;
+
|-
+
| <code>function GetCount:Integer;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Items[Idx:Integer]:TDateTime read GetItem write SetItem;</code>
+
| &nbsp;
+
|-
+
| <code>property Count:Integer read GetCount;</code>
+
| &nbsp;
+
|-
+
| <code>function Add(AValue:TDateTime):Integer;</code>
+
| &nbsp;
+
|-
+
| <code>function Remove(AValue:TDateTime):Integer;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Delete(Idx:Integer);</code>
+
| &nbsp;
+
|-
+
| <code>function IndexOf(AValue:TDateTime):Integer;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Clear;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TMemoryBlock'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TMemoryBlock = class(TListObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: Block object for TMemoryStreamEx
+
| [[TMemoryBlock|<code>TMemoryBlock = class(TListObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>Memory:Pointer;</code>
+
| Pointer to Allocated Memory Block
+
|-
+
| <code>Size:LongWord;</code>
+
| Size of Allocated Memory Block
+
|-
+
| <code>Start:LongWord;</code>
+
| Start of Allocated Memory Block in the Stream
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TMemoryStreamEx'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TMemoryStreamEx = class(TStream)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A memory stream which does not Realloc on expand
+
| [[TMemoryStreamEx|<code>TMemoryStreamEx = class(TStream)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FRecent:TMemoryBlock;</code>
+
| &nbsp;
+
|-
+
| <code>FBlocks:TLinkedObjList;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>FSize:LongInt;</code>
+
| &nbsp;
+
|-
+
| <code>FPosition:LongInt;</code>
+
| &nbsp;
+
|-
+
| <code>FCapacity:LongWord;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function RoundSize(ASize:LongInt):LongWord;</code>
+
| &nbsp;
+
|-
+
| <code>function GetBlock(AOffset:LongWord):TMemoryBlock;</code>
+
| &nbsp;
+
|-
+
| <code>function ReadBlock(ABlock:TMemoryBlock; ABuffer:Pointer; AOffset,ACount:LongWord):LongWord;</code>
+
| &nbsp;
+
|-
+
| <code>function WriteBlock(ABlock:TMemoryBlock; ABuffer:Pointer; AOffset,ACount:LongWord):LongWord;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>procedure SetCapacity(ACapacity:LongWord);</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure SetSize(ASize:LongInt); override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>function Read(var ABuffer; ACount:LongInt):LongInt; override;</code>
+
| &nbsp;
+
|-
+
| <code>function Write(const ABuffer; ACount:LongInt):LongInt; override;</code>
+
| &nbsp;
+
|-
+
| <code>function Seek(AOffset:LongInt; AOrigin:Word):LongInt; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure SaveToStream(AStream:TStream);</code>
+
| &nbsp;
+
|-
+
| <code>procedure LoadFromStream(AStream:TStream);</code>
+
| &nbsp;
+
|-
+
| <code>procedure SaveToFile(const AFileName:String);</code>
+
| &nbsp;
+
|-
+
| <code>procedure LoadFromFile(const AFileName:String);</code>
+
| &nbsp;
+
|-
+
| <code>procedure Clear;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TStreamEx'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TStreamEx = class(TStream)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A 64bit capable Stream class
+
| [[TStreamEx|<code>TStreamEx = class(TStream)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>function GetPositionEx:Int64;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>procedure SetPositionEx(const Pos:Int64);</code>
+
| &nbsp;
+
|-
+
| <code>function GetSizeEx:Int64;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure SetSizeEx(const NewSize:Int64); virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property PositionEx:Int64 read GetPositionEx write SetPositionEx;</code>
+
| &nbsp;
+
|-
+
| <code>property SizeEx:Int64 read GetSizeEx write SetSizeEx;</code>
+
| &nbsp;
+
|-
+
| <code>function SeekEx(const Offset:Int64; Origin:Word):Int64; virtual; abstract;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''THandleStreamEx'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>THandleStreamEx = class(TStreamEx)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A 64bit capable Handle Stream class
+
| [[THandleStreamEx|<code>THandleStreamEx = class(TStreamEx)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create(AHandle:Integer);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FHandle:Integer;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure SetSize(NewSize:LongInt); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure SetSizeEx(const NewSize:Int64); override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>function Read(var Buffer; Count:LongInt):LongInt; override;</code>
+
| &nbsp;
+
|-
+
| <code>function Write(const Buffer; Count:LongInt):LongInt; override;</code>
+
| &nbsp;
+
|-
+
| <code>function Seek(Offset:LongInt; Origin:Word):LongInt; override;</code>
+
| &nbsp;
+
|-
+
| <code>function SeekEx(const Offset:Int64; Origin:Word):Int64; override;</code>
+
| &nbsp;
+
|-
+
| <code>property Handle:Integer read FHandle;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TFileStreamEx'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TFileStreamEx = class(THandleStreamEx)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A 64bit capable File Stream class
+
| [[TFileStreamEx|<code>TFileStreamEx = class(THandleStreamEx)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create(const FileName:String;Mode:Word);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TStringItemEx'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TStringItemEx = class(TObject)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|Note: A String item with Hash for use in TStringListEx
+
| [[TStringItemEx|<code>TStringItemEx = class(TObject)</code>]]
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FValue:String;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
| <code>FData:TObject;</code>
+
| &nbsp;
+
|-
+
| <code>FHash:LongWord;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure SetValue(const AValue:String); virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Value:String read FValue write SetValue;</code>
+
| &nbsp;
+
|-
+
| <code>property Data:TObject read FData write FData;</code>
+
| &nbsp;
+
|-
+
| <code>property Hash:LongWord read FHash;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''TStringListEx'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TStringListEx = class(TStrings)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|Note: A String List class that does not use realloc to grow
+
Mostly identical methods to TStringList with addition of block list
+
|-
+
|colspan="2"|&nbsp;  
+
|-
+
|colspan="2"|Note: Currently does not implement Sorting or Duplicate handling
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public''' (Public destructor for FPC RTL)</div>
+
|-
+
| <code>destructor Destroy; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FRecent:TStringBlock;</code>
+
| &nbsp;
+
|-
+
| <code>FBlocks:TLinkedObjList;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>FCount:Integer;</code>
+
| &nbsp;
+
|-
+
| <code>FCapacity:Integer;</code>
+
| &nbsp;
+
|-
+
| <code>FSorted:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>FUpdating:Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>FDuplicates:TDuplicates;</code>
+
| &nbsp;
+
|-
+
| <code>FOnChange:TNotifyEvent;</code>
+
| &nbsp;
+
|-
+
| <code>FOnChanging:TNotifyEvent;</code>
+
| &nbsp;
+
|-
+
| <code>procedure QuickSort(L,R:Integer);</code>
+
| &nbsp;
+
|-
+
| <code>procedure SetSorted(Value:Boolean);</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetBlock(Index:Integer):TStringBlock;</code>
+
| &nbsp;
+
|-
+
| <code>function AddBlock(Block:TStringBlock; Index:Integer):TStringBlock;</code>
+
| &nbsp;
+
|-
+
| <code>function DeleteBlock(Block:TStringBlock):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function UpdateBlocks(Block:TStringBlock):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function GetItem(Block:TStringBlock; Index:Integer):TStringItemEx;</code>
+
| &nbsp;
+
|-
+
| <code>function AddItem(Block:TStringBlock; Index:Integer; Item:TStringItemEx):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function DeleteItem(Block:TStringBlock; Index:Integer; Item:TStringItemEx):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>procedure ClearList; virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>procedure Changed; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Changing; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function Get(Index:Integer):String; override;</code>
+
| &nbsp;
+
|-
+
| <code>function GetCapacity:Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>function GetCount:Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>function GetObject(Index:Integer):TObject; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Put(Index:Integer; const S:String); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure PutObject(Index:Integer; AObject:TObject); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure SetUpdateState(Updating:Boolean); override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>function Add(const S:String):Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Clear; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Delete(Index:Integer); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Exchange(Index1,Index2:Integer); override;</code>
+
| &nbsp;
+
|-
+
| <code>function Find(const S:String; var Index:Integer):Boolean; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>function IndexOf(const S:String):Integer; override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Insert(Index:Integer; const S:String); override;</code>
+
| &nbsp;
+
|-
+
| <code>procedure Sort; virtual;</code>
+
| &nbsp;
+
|-
+
| <code>property Duplicates:TDuplicates read FDuplicates write FDuplicates;</code>
+
| &nbsp;
+
|-
+
| <code>property Sorted:Boolean read FSorted write SetSorted;</code>
+
| &nbsp;
+
|-
+
| <code>property OnChange:TNotifyEvent read FOnChange write FOnChange;</code>
+
| &nbsp;
+
 
|-
 
|-
| <code>property OnChanging:TNotifyEvent read FOnChanging write FOnChanging;</code>
+
| [[TStringListEx|<code>TStringListEx = class(TStrings)</code>]]
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
<br />
<br />  
+
  
 
=== Public variables ===
 
=== Public variables ===

Revision as of 05:15, 31 May 2018

Return to Unit Reference


Description


Ultibo classes unit

To be documented

Constants



Error constants *_Error
SListIndexError = 'List index out of bounds (%d)';  
SFCreateError = 'Cannot create file %s';  
SFOpenError = 'Cannot open file %s';  


B-Tree constants btree_*
btreeCompareLess = -1;  
btreeCompareEqual = 0;  
btreeCompareGreater = 1;  


Hash constants *_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 constants *_Delta
memoryStreamDelta = $2000;  
memoryStreamShift = 13;  
 
stringListDelta = $2000;  


Type definitions


None defined

Class definitions



Ultibo specific classes

TThreadEx = class(TThread)
TTimerEx = class(TObject)
TObjList = class(TList)
TThreadObjList = class(TThreadList)
TListObject = class(TObject)
TLinkedList = class(TObject)
TLinkedObjList = class(TLinkedList)
TThreadLinkedObjList = class(TLinkedList)
TTreeObject = class(TListObject)
TLinkedTree = class(TObject)
TLinkedObjTree = class(TLinkedTree)
TBtreeObject = class(TObject)
TLinkedBtree = class(TObject)
TLinkedObjBtree = class(TLinkedBtree)
THashListObject = class(TListObject)
THashLinkedList = class(TLinkedList)
THashLinkedObjList = class(THashLinkedList)
THashTreeObject = class(TTreeObject)
THashLinkedTree = class(TLinkedTree)
THashLinkedObjTree = class(THashLinkedTree)
TStringObject = class(TListObject)
TLinkedStringList = class(TStrings)
TStringBlock = class(TListObject)
TStringObjectEx = class(TStringObject)
TLinkedStringListEx = class(TLinkedStringList)
THashStringObject = class(TStringObjectEx)
THashLinkedStringList = class(TLinkedStringListEx)
TIntegerList = class(TObject)
TDateTimeList = class(TObject)
TMemoryBlock = class(TListObject)
TMemoryStreamEx = class(TStream)
TStreamEx = class(TStream)
THandleStreamEx = class(TStreamEx)
TFileStreamEx = class(THandleStreamEx)
TStringItemEx = class(TObject)
TStringListEx = class(TStrings)


Public variables


None defined

Function declarations



TimerExEvent

procedure TimerExEvent(TimerEx:TTimerEx);
Description: To be documented
Note None documented


TThreadEx

procedure TThreadEx.Execution;
Description: To be documented
Note None documented


procedure TThreadEx.AfterExecution;
Description: To be documented
Note None documented


procedure TThreadEx.BeforeExecution;
Description: To be documented
Note None documented


procedure TThreadEx.Execute;
Description: To be documented
Note None documented


procedure TThreadEx.TerminateAndWaitFor;
Description: To be documented
Note None documented


TTimerEx

constructor TTimerEx.Create;
Description: To be documented
Note None documented


destructor TTimerEx.Destroy;
Description: To be documented
Note None documented


procedure TTimerEx.SetEnabled(Value:Boolean);
Description: To be documented
Note None documented


procedure TTimerEx.Timer;
Description: To be documented
Note None documented


procedure TTimerEx.StartTimer;
Description: To be documented
Note None documented


procedure TTimerEx.StopTimer;
Description: To be documented
Note None documented


TObjList

constructor TObjList.Create;
Description: To be documented
Note None documented


destructor TObjList.Destroy;
Description: To be documented
Note None documented


procedure TObjList.DestroyListObjects;
Description: To be documented
Note None documented


procedure TObjList.ClearList;
Description: To be documented
Note None documented


TThreadObjList

constructor TThreadObjList.Create;
Description: To be documented
Note None documented


destructor TThreadObjList.Destroy;
Description: To be documented
Note None documented


procedure TThreadObjList.DestroyListObjects;
Description: To be documented
Note None documented


procedure TThreadObjList.ClearList;
Description: To be documented
Note None documented


TLinkedList

constructor TLinkedList.Create;
Description: To be documented
Note None documented


destructor TLinkedList.Destroy;
Description: To be documented
Note None documented


function TLinkedList.GetCount:Integer;
Description: To be documented
Note None documented


function TLinkedList.Link(AValue:TListObject):Boolean;
Description: Link AValue to Prev,Next Siblings and Adjust First/Last
Note None documented


function TLinkedList.LinkEx(APrev,AValue:TListObject):Boolean;
Description: Link AValue after APrev Sibling and Adjust First/Last/Prev/Next
Note If APrev is nil then Link as first value in list


function TLinkedList.Unlink(AValue:TListObject):Boolean;
Description: Unlink AValue from Prev,Next Siblings and Adjust First/Last
Note None documented


function TLinkedList.Add(AValue:TListObject):Boolean;
Description: Add AValue to List and link with Siblings
Note None documented


function TLinkedList.Remove(AValue:TListObject):Boolean;
Description: Unlink AValue from Siblings and Remove from List
Note None documented


function TLinkedList.Insert(APrev,AValue:TListObject):Boolean;
Description: To be documented
Note None documented


procedure TLinkedList.Clear;
Description: To be documented
Note None documented


TLinkedObjList

destructor TLinkedObjList.Destroy;
Description: To be documented
Note None documented


procedure TLinkedObjList.ClearList;
Description: To be documented
Note None documented


TThreadLinkedObjList

constructor TThreadLinkedObjList.Create;
Description: To be documented
Note None documented


destructor TThreadLinkedObjList.Destroy;
Description: To be documented
Note None documented


procedure TThreadLinkedObjList.ClearList;
Description: To be documented
Note None documented


procedure TThreadLinkedObjList.LockList;
Description: To be documented
Note None documented


procedure TThreadLinkedObjList.UnlockList;
Description: To be documented
Note None documented


TLinkedTree

constructor TLinkedTree.Create;
Description: To be documented
Note None documented


destructor TLinkedTree.Destroy;
Description: To be documented
Note None documented


function TLinkedTree.GetCount:Integer;
Description: To be documented
Note None documented


function TLinkedTree.Link(AValue,AParent:TTreeObject):Boolean;
Description: To be documented
Note None documented


function TLinkedTree.LinkEx(APrev,AValue,AParent:TTreeObject):Boolean;
Description: Link AValue after APrev Sibling and Adjust FirstChild/LastChild/Prev/Next
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;
Description: To be documented
Note None documented


function TLinkedTree.Add(AValue,AParent:TTreeObject):Boolean;
Description: Add AValue to List and Link with Parent and Siblings
Note None documented


function TLinkedTree.Remove(AValue:TTreeObject):Boolean;
Description: Unlink AValue from Parent and Siblings, Remove from List
Note None documented


function TLinkedTree.Insert(APrev,AValue,AParent:TTreeObject):Boolean;
Description: To be documented
Note None documented


procedure TLinkedTree.Move(AValue,AParent:TTreeObject);
Description: To be documented
Note None documented


procedure TLinkedTree.Clear;
Description: To be documented
Note None documented


function TLinkedTree.FirstChild(AParent:TTreeObject):TTreeObject;
Description: To be documented
Note None documented


function TLinkedTree.LastChild(AParent:TTreeObject):TTreeObject;
Description: To be documented
Note None documented


TLinkedObjTree

constructor TLinkedObjTree.Create;
Description: To be documented
Note None documented


destructor TLinkedObjTree.Destroy;
Description: To be documented
Note None documented


procedure TLinkedObjTree.ClearListItems(AParent:TTreeObject);
Description: To be documented
Note None documented


procedure TLinkedObjTree.ClearList;
Description: To be documented
Note None documented


TBtreeObject

procedure TBtreeObject.Clear;
Description: To be documented
Note None documented


TLinkedBtree

constructor TLinkedBtree.Create;
Description: To be documented
Note None documented


destructor TLinkedBtree.Destroy;
Description: To be documented
Note None documented


procedure TLinkedBtree.SetOrder(AOrder:LongWord);
Description: Set a new Order and calculate a new Median value
Note Minimum Order is 5 and minimum Median is 3


function TLinkedBtree.PropogateDrop(AEntry:TBtreeObject):Boolean;
Description: To be documented
Note None documented


function TLinkedBtree.PropogateMerge(AEntry:TBtreeObject):Boolean;
Description: To be documented
Note None documented


function TLinkedBtree.PropogateSplit(AEntry:TBtreeObject):Boolean;
Description: To be documented
Note This is currently not used by insert and must be tested before use


function TLinkedBtree.GetCount(AEntry:TBtreeObject):LongWord;
Description: Get the count of entries in the node of the supplied entry
Note Does not include the blank key


function TLinkedBtree.GetDepth(AEntry:TBtreeObject):LongWord;
Description: Get the depth of the supplied entry in the btree
Note None documented


function TLinkedBtree.GetEnd(AEntry:TBtreeObject):TBtreeObject;
Description: Get the end entry in the node of the supplied entry
Note Includes the blank key which may be the only key


function TLinkedBtree.GetStart(AEntry:TBtreeObject):TBtreeObject;
Description: Get the start entry in the node of the supplied entry
Note Includes the blank key which may be the only key


function TLinkedBtree.GetBlank(AEntry:TBtreeObject):TBtreeObject;
Description: Get the blank entry in the node of the supplied entry
Blank Blank entry is always the last entry in every node


function TLinkedBtree.GetMedian(AEntry:TBtreeObject):TBtreeObject;
Description: Get the median entry in the node of the supplied entry
Note Does not include the blank key


function TLinkedBtree.GetDrop(AEntry:TBtreeObject; var ALeft:Boolean):TBtreeObject;
Description: Get the neighbour with appropriate number of keys to drop
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;
Description: Get the neighbour with appropriate number of keys to merge
Merge Always merge with the Righthand neighbour if available


function TLinkedBtree.GetBorrow(AEntry:TBtreeObject):TBtreeObject;
Description: Get the neighbour with sufficient keys to borrow one
Borrow Always borrow from the Righthand neighbour if available


function TLinkedBtree.GetTarget(ADrop:TBtreeObject; ALeft:Boolean):TBtreeObject;
Description: Get the actual target within the neighbour that is appropriate to drop
Note Only supported by descendant classes with non balanced nodes


function TLinkedBtree.SetParent(AEntry,AParent:TBtreeObject):Boolean;
Description: Set the parent for all entries in a node and set the child of the parent
Note Includes the blank key which may be the only key


function TLinkedBtree.GetLefthand(AEntry:TBtreeObject):TBtreeObject;
Description: Get the lefthand neighbour (Node) of the supplied entries node
Note None documented


function TLinkedBtree.GetRighthand(AEntry:TBtreeObject):TBtreeObject;
Description: Get the righthand neighbour (Node) of the supplied entries node
Note None documented


function TLinkedBtree.GetLeftmost(AEntry:TBtreeObject):TBtreeObject;
Description: Get the leftmost entry in the tree of the supplied entry
Note None documented


function TLinkedBtree.GetRightmost(AEntry:TBtreeObject):TBtreeObject;
Description: Get the rightmost entry in the tree of the supplied entry
Note Does not include the blank key


function TLinkedBtree.GetSuccessor(AEntry:TBtreeObject):TBtreeObject;
Description: Get the successor (Right) entry of the supplied entry
Note The returned entry may be a blank key or a real key


function TLinkedBtree.GetPredecessor(AEntry:TBtreeObject):TBtreeObject;
Description: Get the predecessor (Left) entry of the supplied entry
Note The returned entry may be a blank key or a real key


function TLinkedBtree.GetPosition(AStart,AEntry:TBtreeObject):TBtreeObject;
Description: Get the position where entry should be inserted into the btree
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;
Description: Push the node containing the supplied entry
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;
Description: Split the node containing the supplied entry
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;
Description: Swap the supplied entries directly from node to node
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;
Description: Drop the nodes of the supplied entries into one
Note None documented


function TLinkedBtree.Merge(AEntry,AMerge:TBtreeObject):Boolean;
Description: Merge the nodes of the supplied entries into one
Note None documented


function TLinkedBtree.Borrow(AEntry,ABorrow:TBtreeObject):Boolean;
Description: Borrow an entry from the supplied node to balance the tree
Note None documented


function TLinkedBtree.Link(AEntry,ANext:TBtreeObject):Boolean;
Description: Link the object to Prev/Next in linked list
Note If Next is nil then link as last


function TLinkedBtree.Unlink(AEntry:TBtreeObject):Boolean;
Description: Unlink the object from Prev/Next in linked list
Note None documented


function TLinkedBtree.LinkBlank(AEntry:TBtreeObject):Boolean;
Description: Link the object to Prev/Next in blank key list
Note Always link as last


function TLinkedBtree.UnlinkBlank(AEntry:TBtreeObject):Boolean;
Description: Unlink the object from Prev/Next in blank key list
Note None documented


function TLinkedBtree.Attach(AParent,AEntry,ARight:TBtreeObject):Boolean;
Description: Attach the object to Parent/Left/Right in btree
Note If Right is nil then attach as last. If Parent is nil then attach at root.


function TLinkedBtree.Detach(AEntry:TBtreeObject):Boolean;
Description: Detach the object from Parent/Left/Right in btree
Note None documented


function TLinkedBtree.PushNode(AEntry:TBtreeObject):Boolean;
Description: Called before a node is pushed following insert of an entry
Note None documented


function TLinkedBtree.SplitNode(AEntry:TBtreeObject):Boolean;
Description: Called before a node is split following insert of an entry
Note None documented


function TLinkedBtree.DropNode(AEntry,ADrop,ATarget:TBtreeObject; ALeft:Boolean):Boolean;
Description: Called before a node is dropped following removal of an entry
Note None documented


function TLinkedBtree.MergeNode(AEntry,AMerge:TBtreeObject):Boolean;
Description: Called before a node is merged following removal of an entry
Note None documented


function TLinkedBtree.BorrowEntry(AEntry,ABorrow:TBtreeObject):Boolean;
Description: Called before an entry is borrowed following removal of an entry
Note None documented


function TLinkedBtree.SwapEntry(AEntry,ASwap:TBtreeObject; ALeft:Boolean):Boolean;
Description: Called before an entry is swapped during a merge or borrow
Note None documented


function TLinkedBtree.SetParentEntry(AEntry,AParent:TBtreeObject):Boolean;
Description: Called after an entry is reparented during a push, split, merge, borrow or swap
Note None documented


function TLinkedBtree.CreateBlank:TBtreeObject;
Description: Create a blank key when a node is added (Split/Empty)
Note None documented


function TLinkedBtree.DeleteBlank(ABlank:TBtreeObject):Boolean;
Description: Delete a blank key when a node is removed (Merge)
Note None documented


function TLinkedBtree.AttachBlank(ABlank:TBtreeObject):Boolean;
Description: Called after a blank entry is attached to a node during split or merge
Note None documented


function TLinkedBtree.DetachBlank(ABlank:TBtreeObject):Boolean;
Description: Called before a blank entry is detached from a node during split or merge
Note None documented


function TLinkedBtree.AttachEntry(AEntry:TBtreeObject):Boolean;
Description: Called after a non blank entry is attached to a node during insert or remove
Note None documented


function TLinkedBtree.DetachEntry(AEntry:TBtreeObject):Boolean;
Description: Called before a non blank entry is detached from a node during insert or remove
Note None documented


function TLinkedBtree.RequirePush(AEntry:TBtreeObject):Boolean;
Description: Called after an entry is inserted to determine if a push is required
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;
Description: Called after an entry is inserted to determine if a split is required
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;
Description: Called after an entry is removed to determine if a drop is required
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;
Description: Called after an entry is removed to determine if a merge is required
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;
Description: Called after an entry is removed to determine if a borrow is required
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;
Description: Always returns greater than unless the second entry is a blank key
Note This means keys will end up in added order if no compare is provided


function TLinkedBtree.Add(AParent,AEntry:TBtreeObject):Boolean;
Description: Add an entry to the btree without doing the full insert
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;
Description: Insert an entry in the btree by finding its position
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;
Description: Remove an entry from the btree by deleting it
Note Rebalances the tree after deleting the entry. Blank keys cannot be removed. Entry must be destroyed by the caller.


procedure TLinkedBtree.Clear;
Description: Removes all entries from the btree
Note None documented


procedure TLinkedBtree.Empty;
Description: Removes all entries from the btree and adds a blank root key
Note None documented


procedure TLinkedBtree.Rebuild;
Description: Empties the btree and rebuilds from the linked list
Note None documented


TLinkedObjBtree

constructor TLinkedObjBtree.Create;
Description: To be documented
Note None documented


destructor TLinkedObjBtree.Destroy;
Description: To be documented
Note None documented


procedure TLinkedObjBtree.ClearBtree;
Description: Removes and frees all entries in the btree
Note None documented


procedure TLinkedObjBtree.EmptyBtree;
Description: Removes and frees all entries in the btree and adds a blank root key
Note None documented


THashListObject

procedure THashListObject.SetKeyHash(AKeyHash:LongWord);
Description: To be documented
Note None documented


THashLinkedList

constructor THashLinkedList.Create(AKeyBits:Byte);
Description: To be documented
Note None documented


destructor THashLinkedList.Destroy;
Description: To be documented
Note None documented


function THashLinkedList.KeyLink(AValue:THashListObject):Boolean;
Description: Link AValue to Prev,Next Keys and Adjust First
Note None documented


function THashLinkedList.KeyUnlink(AValue:THashListObject):Boolean;
Description: Unlink AValue from Prev,Next Keys and Adjust First
Note None documented


function THashLinkedList.KeyFirst(AKeyHash:LongWord):THashListObject;
Description: To be documented
Note None documented


function THashLinkedList.Add(AValue:TListObject):Boolean;
Description: Add AValue to List and link with Siblings
Note None documented


function THashLinkedList.Remove(AValue:TListObject):Boolean;
Description: Unlink AValue from Siblings and Remove from List
Note None documented


function THashLinkedList.Insert(APrev,AValue:TListObject):Boolean;
Description: To be documented
Note None documented


procedure THashLinkedList.Clear;
Description: To be documented
Note None documented


THashLinkedObjList

constructor THashLinkedObjList.Create(AKeyBits:Byte);
Description: To be documented
Note None documented


destructor THashLinkedObjList.Destroy;
Description: To be documented
Note None documented


procedure THashLinkedObjList.ClearList;
Description: To be documented
Note None documented


THashTreeObject

constructor THashTreeObject.Create(AKeyBits:Byte);
Description: To be documented
Note None documented


destructor THashTreeObject.Destroy;
Description: To be documented
Note None documented


procedure THashTreeObject.SetKeyHash(AKeyHash:LongWord);
Description: To be documented
Note None documented


function THashTreeObject.KeyLink(AValue:THashTreeObject):Boolean;
Description: Link AValue to Prev,Next Keys and Adjust First
Note None documented


function THashTreeObject.KeyUnlink(AValue:THashTreeObject):Boolean;
Description: Unlink AValue from Prev,Next Keys and Adjust First
Note None documented


function THashTreeObject.KeyFirst(AKeyHash:LongWord):THashTreeObject;
Description: To be documented
Note None documented


THashLinkedTree

constructor THashLinkedTree.Create(AKeyBits:Byte);
Description: To be documented
Note None documented


destructor THashLinkedTree.Destroy;
Description: To be documented
Note None documented


function THashLinkedTree.KeyLink(AValue,AParent:THashTreeObject):Boolean;
Description: Link AValue to Prev,Next Keys and Adjust First
Note None documented


function THashLinkedTree.KeyUnlink(AValue,AParent:THashTreeObject):Boolean;
Description: Unlink AValue from Prev,Next Keys and Adjust First
Note None documented


function THashLinkedTree.KeyFirst(AParent:THashTreeObject; AKeyHash:LongWord):THashTreeObject;
Description: To be documented
Note None documented


function THashLinkedTree.Add(AValue,AParent:TTreeObject):Boolean;
Description: Add AValue to List and Link with Parent and Siblings
Note None documented


function THashLinkedTree.Remove(AValue:TTreeObject):Boolean;
Description: Unlink AValue from Parent and Siblings, Remove from List
Note None documented


function THashLinkedTree.Insert(APrev,AValue,AParent:TTreeObject):Boolean;
Description: To be documented
Note None documented


procedure THashLinkedTree.Move(AValue,AParent:TTreeObject);
Description: To be documented
Note None documented


procedure THashLinkedTree.Clear;
Description: To be documented
Note None documented


THashLinkedObjTree

constructor THashLinkedObjTree.Create(AKeyBits:Byte);
Description: To be documented
Note None documented


destructor THashLinkedObjTree.Destroy;
Description: To be documented
Note None documented


procedure THashLinkedObjTree.ClearListItems(AParent:THashTreeObject);
Description: To be documented
Note None documented


procedure THashLinkedObjTree.ClearList;
Description: To be documented
Note None documented


TStringObject

procedure TStringObject.SetValue(const AValue:String);
Description: To be documented
Note None documented


TLinkedStringList

constructor TLinkedStringList.Create;
Description: To be documented
Note None documented


destructor TLinkedStringList.Destroy;
Description: To be documented
Note None documented


function TLinkedStringList.GetItem(AIndex:Integer):TStringObject;
Description: To be documented
Note None documented


function TLinkedStringList.Link(AValue:TStringObject):Boolean;
Description: Link AValue to Prev,Next Siblings and Adjust First/Last
Note None documented


function TLinkedStringList.LinkEx(APrev,AValue:TStringObject):Boolean;
Description: Link AValue after APrev Sibling and Adjust First/Last/Prev/Next
Note If APrev is nil then Link as first value in list


function TLinkedStringList.Unlink(AValue:TStringObject):Boolean;
Description: Unlink AValue from Prev,Next Siblings and Adjust First/Last
Note None documented


procedure TLinkedStringList.ClearList;
Description: To be documented
Note None documented


procedure TLinkedStringList.Changed;
Description: To be documented
Note None documented


procedure TLinkedStringList.Changing;
Description: To be documented
Note None documented


function TLinkedStringList.Get(Index:Integer):String;
Description: To be documented
Note None documented


function TLinkedStringList.GetCount:Integer;
Description: To be documented
Note None documented


function TLinkedStringList.GetObject(Index:Integer):TObject;
Description: To be documented
Note None documented


procedure TLinkedStringList.Put(Index:Integer;const S:String);
Description: To be documented
Note None documented


procedure TLinkedStringList.PutObject(Index:Integer; AObject:TObject);
Description: To be documented
Note None documented


procedure TLinkedStringList.SetUpdateState(Updating:Boolean);
Description: To be documented
Note None documented


function TLinkedStringList.Add(const S:String):Integer;
Description: To be documented
Note None documented


procedure TLinkedStringList.Clear;
Description: To be documented
Note None documented


procedure TLinkedStringList.Delete(Index:Integer);
Description: To be documented
Note None documented


procedure TLinkedStringList.Exchange(Index1,Index2:Integer);
Description: To be documented
Note None documented


function TLinkedStringList.IndexOf(const S:String):Integer;
Description: Uses Counted Index starting from First String Object
Note None documented


procedure TLinkedStringList.Insert(Index:Integer; const S:String);
Description: To be documented
Note None documented


TStringBlock

destructor TStringBlock.Destroy;
Description: To be documented
Note None documented


TLinkedStringListEx

constructor TLinkedStringListEx.Create;
Description: To be documented
Note None documented


destructor TLinkedStringListEx.Destroy;
Description: To be documented
Note None documented


function TLinkedStringListEx.GetBlock(Index:Integer):TStringBlock;
Description: To be documented
Note None documented


function TLinkedStringListEx.AddBlock(Block:TStringBlock; Index:Integer):TStringBlock;
Description: To be documented
Index Starting Index of Block to be Added
Block Current Block containing Index or nil


function TLinkedStringListEx.DeleteBlock(Block:TStringBlock):Boolean;
Description: To be documented
Note None documented


function TLinkedStringListEx.UpdateBlocks(Block:TStringBlock):Boolean;
Description: To be documented
Note None documented


function TLinkedStringListEx.GetItem(Block:TStringBlock; Index:Integer):TStringObjectEx;
Description: To be documented
Note None documented


function TLinkedStringListEx.AddItem(Block:TStringBlock; Index:Integer; Item:TStringObjectEx):Boolean;
Description: To be documented
Note None documented


function TLinkedStringListEx.DeleteItem(Block:TStringBlock;Index:Integer; Item:TStringObjectEx):Boolean;
Description: To be documented
Note None documented


function TLinkedStringListEx.IndexOfItem(Block:TStringBlock; Item:TStringObjectEx):Integer;
Description: To be documented
Note None documented


function TLinkedStringListEx.Get(Index:Integer):String;
Description: To be documented
Note None documented


function TLinkedStringListEx.GetCapacity:Integer;
Description: To be documented
Note None documented


function TLinkedStringListEx.GetObject(Index:Integer):TObject;
Description: To be documented
Note None documented


procedure TLinkedStringListEx.Put(Index:Integer;const S:String);
Description: To be documented
Note None documented


procedure TLinkedStringListEx.PutObject(Index:Integer; AObject:TObject);
Description: To be documented
Note None documented


function TLinkedStringListEx.Add(const S:String):Integer;
Description: To be documented
Note None documented


procedure TLinkedStringListEx.Clear;
Description: To be documented
Note None documented


procedure TLinkedStringListEx.Delete(Index:Integer);
Description: To be documented
Note None documented


procedure TLinkedStringListEx.Exchange(Index1,Index2:Integer);
Description: To be documented
Note None documented


function TLinkedStringListEx.IndexOf(const S:String):Integer;
Description: Uses IndexOfItem within the Block of the matched String Object
Note Could use Counted Index method of TLinkedStringList instead


procedure TLinkedStringListEx.Insert(Index:Integer; const S:String);
Description: To be documented
Note None documented


THashStringObject

procedure THashStringObject.SetHash(AHash:LongWord);
Description: To be documented
Note None documented


procedure THashStringObject.SetValue(const AValue:String);
Description: To be documented
Note None documented


THashLinkedStringList

constructor THashLinkedStringList.Create(AKeyBits:Byte);
Description: To be documented
Note None documented


destructor THashLinkedStringList.Destroy;
Description: To be documented
Note None documented


function THashLinkedStringList.KeyLink(AValue:THashStringObject):Boolean;
Description: Link AValue to Prev,Next Keys and Adjust First
Note None documented


function THashLinkedStringList.KeyUnlink(AValue:THashStringObject):Boolean;
Description: Unlink AValue from Prev,Next Keys and Adjust First
Note None documented


procedure THashLinkedStringList.ClearList;
Description: To be documented
Note None documented


function THashLinkedStringList.KeyFirst(AKeyHash:LongWord):THashStringObject;
Description: To be documented
Note None documented


function THashLinkedStringList.Add(const S:String):Integer;
Description: To be documented
Note None documented


procedure THashLinkedStringList.Delete(Index:Integer);
Description: To be documented
Note None documented


function THashLinkedStringList.IndexOf(const S:String):Integer;
Description: Uses IndexOfItem within the Block of the matched String Object
Note Cannot use Counted Index method due to use of Hash Buckets


procedure THashLinkedStringList.Insert(Index:Integer; const S:String);
Description: To be documented
Note None documented


TIntegerList

constructor TIntegerList.Create;
Description: To be documented
Note None documented


destructor TIntegerList.Destroy;
Description: To be documented
Note None documented


function TIntegerList.GetItem(Idx:Integer):Integer;
Description: To be documented
Note None documented


procedure TIntegerList.SetItem(Idx,Value:Integer);
Description: To be documented
Note None documented


function TIntegerList.GetCount:Integer;
Description: To be documented
Note None documented


function TIntegerList.Add(AValue:Integer):Integer;
Description: To be documented
Note None documented


function TIntegerList.Remove(AValue:Integer):Integer;
Description: To be documented
Note None documented


procedure TIntegerList.Delete(Idx:Integer);
Description: To be documented
Note None documented


function TIntegerList.IndexOf(AValue:Integer):Integer;
Description: To be documented
Note None documented


procedure TIntegerList.Clear;
Description: To be documented
Note None documented


TDateTimeList

constructor TDateTimeList.Create;
Description: To be documented
Note None documented


destructor TDateTimeList.Destroy;
Description: To be documented
Note None documented


function TDateTimeList.GetItem(Idx:Integer):TDateTime;
Description: To be documented
Note None documented


procedure TDateTimeList.SetItem(Idx:Integer; Value:TDateTime);
Description: To be documented
Note None documented


function TDateTimeList.GetCount:Integer;
Description: To be documented
Note None documented


function TDateTimeList.Add(AValue:TDateTime):Integer;
Description: To be documented
Note None documented


function TDateTimeList.Remove(AValue:TDateTime):Integer;
Description: To be documented
Note None documented


procedure TDateTimeList.Delete(Idx:Integer);
Description: To be documented
Note None documented


function TDateTimeList.IndexOf(AValue:TDateTime):Integer;
Description: To be documented
Note None documented


procedure TDateTimeList.Clear;
Description: To be documented
Note None documented


TMemoryBlock

destructor TMemoryBlock.Destroy;
Description: To be documented
Note None documented


TMemoryStreamEx

constructor TMemoryStreamEx.Create;
Description: To be documented
Note None documented


destructor TMemoryStreamEx.Destroy;
Description: To be documented
Note None documented


function TMemoryStreamEx.RoundSize(ASize:LongInt):LongWord;
Description: To be documented
Note None documented


function TMemoryStreamEx.GetBlock(AOffset:LongWord):TMemoryBlock;
Description: To be documented
Note None documented


function TMemoryStreamEx.ReadBlock(ABlock:TMemoryBlock; ABuffer:Pointer; AOffset,ACount:LongWord):LongWord;
Description: To be documented
Note None documented


function TMemoryStreamEx.WriteBlock(ABlock:TMemoryBlock; ABuffer:Pointer; AOffset,ACount:LongWord):LongWord;
Description: To be documented
Note None documented


procedure TMemoryStreamEx.SetCapacity(ACapacity:LongWord);
Description: To be documented
Note None documented


procedure TMemoryStreamEx.SetSize(ASize:LongInt);
Description: To be documented
Note None documented


function TMemoryStreamEx.Read(var ABuffer; ACount:LongInt):LongInt;
Description: To be documented
Note None documented


function TMemoryStreamEx.Write(const ABuffer; ACount:LongInt):LongInt;
Description: To be documented
Note None documented


function TMemoryStreamEx.Seek(AOffset:LongInt; AOrigin:Word):LongInt;
Description: To be documented
Note None documented


procedure TMemoryStreamEx.SaveToStream(AStream:TStream);
Description: To be documented
Note None documented


procedure TMemoryStreamEx.LoadFromStream(AStream:TStream);
Description: To be documented
Note None documented


procedure TMemoryStreamEx.SaveToFile(const AFileName:String);
Description: To be documented
Note None documented


procedure TMemoryStreamEx.LoadFromFile(const AFileName:String);
Description: To be documented
Note None documented


procedure TMemoryStreamEx.Clear;
Description: To be documented
Note None documented


TStreamEx

function TStreamEx.GetPositionEx:Int64;
Description: To be documented
Note None documented


procedure TStreamEx.SetPositionEx(const Pos:Int64);
Description: To be documented
Note None documented


function TStreamEx.GetSizeEx:Int64;
Description: To be documented
Note None documented


procedure TStreamEx.SetSizeEx(const NewSize:Int64);
Description: To be documented
Note None documented


THandleStreamEx

constructor THandleStreamEx.Create(AHandle:Integer);
Description: To be documented
Note None documented


procedure THandleStreamEx.SetSize(NewSize:LongInt);
Description: To be documented
Note None documented


procedure THandleStreamEx.SetSizeEx(const NewSize:Int64);
Description: To be documented
Note None documented


function THandleStreamEx.Read(var Buffer; Count:Longint):Longint;
Description: To be documented
Note None documented


function THandleStreamEx.Write(const Buffer; Count:Longint):Longint;
Description: To be documented
Note None documented


function THandleStreamEx.Seek(Offset:Longint; Origin:Word):Longint;
Description: To be documented
Note None documented


function THandleStreamEx.SeekEx(const Offset:Int64; Origin:Word):Int64;
Description: To be documented
Note None documented


TFileStreamEx

constructor TFileStreamEx.Create(const FileName:String; Mode:Word);
Description: To be documented
Note None documented


destructor TFileStreamEx.Destroy;
Description: To be documented
Note None documented


TStringItemEx

procedure TStringItemEx.SetValue(const AValue:String);
Description: To be documented
Note None documented


TStringListEx

constructor TStringListEx.Create;
Description: To be documented
Note None documented


destructor TStringListEx.Destroy;
Description: To be documented
Note None documented


function TStringListEx.GetBlock(Index:Integer):TStringBlock;
Description: To be documented
Note None documented


function TStringListEx.AddBlock(Block:TStringBlock; Index:Integer):TStringBlock;
Description: To be documented
Index Starting Index of Block to be Added
Block Current Block containing Index or nil


function TStringListEx.DeleteBlock(Block:TStringBlock):Boolean;
Description: To be documented
Note None documented


function TStringListEx.UpdateBlocks(Block:TStringBlock):Boolean;
Description: To be documented
Note None documented


function TStringListEx.GetItem(Block:TStringBlock; Index:Integer):TStringItemEx;
Description: To be documented
Note None documented


function TStringListEx.AddItem(Block:TStringBlock; Index:Integer; Item:TStringItemEx):Boolean;
Description: To be documented
Note None documented


function TStringListEx.DeleteItem(Block:TStringBlock; Index:Integer; Item:TStringItemEx):Boolean;
Description: To be documented
Note None documented


procedure TStringListEx.ClearList;
Description: To be documented
Note None documented


procedure TStringListEx.Changed;
Description: To be documented
Note None documented


procedure TStringListEx.Changing;
Description: To be documented
Note None documented


function TStringListEx.Get(Index:Integer):String;
Description: To be documented
Note None documented


function TStringListEx.GetCapacity:Integer;
Description: To be documented
Note None documented


function TStringListEx.GetCount:Integer;
Description: To be documented
Note None documented


function TStringListEx.GetObject(Index:Integer):TObject;
Description: To be documented
Note None documented


procedure TStringListEx.Put(Index:Integer; const S:String);
Description: To be documented
Note None documented


procedure TStringListEx.PutObject(Index:Integer; AObject:TObject);
Description: To be documented
Note None documented


procedure TStringListEx.SetUpdateState(Updating:Boolean);
Description: To be documented
Note None documented


function TStringListEx.Add(const S:String):Integer;
Description: To be documented
Note None documented


procedure TStringListEx.Clear;
Description: To be documented
Note None documented


procedure TStringListEx.Delete(Index:Integer);
Description: To be documented
Note None documented


procedure TStringListEx.Exchange(Index1,Index2:Integer);
Description: To be documented
Note None documented


function TStringListEx.IndexOf(const S:String):Integer;
Description: Uses Counted Index within the Block of the matched String Object
Note None documented


procedure TStringListEx.Insert(Index:Integer; const S:String);
Description: To be documented
Note None documented


Return to Unit Reference