paxCompiler/help/import_classes.htm
Dalibor Marković 9d0de424e8
Init
Signed-off-by: Dalibor Marković <dalibor31@gmail.com>
2024-07-06 22:28:12 +02:00

782 lines
45 KiB
HTML

<html>
<head>
<link rel=stylesheet type="text/css" href="styles.css">
</head>
<body>
<H2>
paxCompiler for Delphi. Import unit IMPORT_Classes.pas.
</H2>
<hr>
<blockquote>
<pre>
<font color="blue"><b>unit</b></font> IMPORT_Classes;
<font color="blue"><b>interface</b></font>
<font color="blue"><b>uses</b></font>
Classes,
PaxCompiler;
<font color="blue"><b>procedure</b></font> Register_Classes;
<font color="blue"><b>implementation</b></font>
// TList -----------------------------------------------------------------------
<font color="blue"><b>function</b></font> TList_GetCapacity(Self: TList): Integer;
<font color="blue"><b>begin</b></font>
result := Self.Capacity;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TList_SetCapacity(Self: TList; Value: Integer);
<font color="blue"><b>begin</b></font>
Self.Capacity := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TList_GetCount(Self: TList): Integer;
<font color="blue"><b>begin</b></font>
result := Self.Count;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TList_GetItem(Self: TList; I: Integer): Pointer;
<font color="blue"><b>begin</b></font>
result := Self.Items[I];
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TList_SetItem(Self: TList; I: Integer; Value: Pointer);
<font color="blue"><b>begin</b></font>
Self.Items[I] := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TList_GetList(Self: TList): PPointerList;
<font color="blue"><b>begin</b></font>
result := Self.List;
<font color="blue"><b>end</b></font>;
// TBits -----------------------------------------------------------------------
<font color="blue"><b>function</b></font> TBits_GetBit(Self: TBits; I: Integer): Boolean;
<font color="blue"><b>begin</b></font>
result := Self.Bits[I];
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TBits_SetBit(Self: TBits; I: Integer; Value: Boolean);
<font color="blue"><b>begin</b></font>
Self.Bits[I] := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TBits_GetSize(Self: TBits): Integer;
<font color="blue"><b>begin</b></font>
result := Self.Size;
<font color="blue"><b>end</b></font>;
// TCollectionItem -------------------------------------------------------------
<font color="blue"><b>function</b></font> TCollectionItem_GetCollection(Self: TCollectionItem): TCollection;
<font color="blue"><b>begin</b></font>
result := Self.Collection;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TCollectionItem_SetCollection(Self: TCollectionItem; Value: TCollection);
<font color="blue"><b>begin</b></font>
Self.Collection := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TCollectionItem_GetID(Self: TCollectionItem): Integer;
<font color="blue"><b>begin</b></font>
result := Self.ID;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TCollectionItem_GetIndex(Self: TCollectionItem): Integer;
<font color="blue"><b>begin</b></font>
result := Self.Index;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TCollectionItem_SetIndex(Self: TCollectionItem; Value: Integer);
<font color="blue"><b>begin</b></font>
Self.Index := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TCollectionItem_GetDisplayName(Self: TCollectionItem): <font color="blue"><b>String</b></font>;
<font color="blue"><b>begin</b></font>
result := Self.DisplayName;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TCollectionItem_SetDisplayName(Self: TCollectionItem; <font color="blue"><b>const</b></font> Value: <font color="blue"><b>String</b></font>);
<font color="blue"><b>begin</b></font>
Self.DisplayName := Value;
<font color="blue"><b>end</b></font>;
// TCollection -----------------------------------------------------------------
<font color="blue"><b>function</b></font> TCollection_GetCount(Self: TCollection): Integer;
<font color="blue"><b>begin</b></font>
result := Self.Count;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TCollection_GetItemClass(Self: TCollection): TCollectionItemClass;
<font color="blue"><b>begin</b></font>
result := Self.ItemClass;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TCollection_GetItem(Self: TCollection; I: Integer): TCollectionItem;
<font color="blue"><b>begin</b></font>
result := Self.Items[I];
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TCollection_SetItem(Self: TCollection; I: Integer; Value: TCollectionItem);
<font color="blue"><b>begin</b></font>
Self.Items[I] := Value;
<font color="blue"><b>end</b></font>;
// TStrings --------------------------------------------------------------------
<font color="blue"><b>function</b></font> TStrings_GetCapacity(Self: TStrings): Integer;
<font color="blue"><b>begin</b></font>
result := Self.Capacity;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TStrings_SetCapacity(Self: TStrings; Value: Integer);
<font color="blue"><b>begin</b></font>
Self.Capacity := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TStrings_GetCommaText(Self: TStrings): <font color="blue"><b>String</b></font>;
<font color="blue"><b>begin</b></font>
result := Self.CommaText;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TStrings_SetCommaText(Self: TStrings; <font color="blue"><b>const</b></font> Value: <font color="blue"><b>String</b></font>);
<font color="blue"><b>begin</b></font>
Self.CommaText := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TStrings_GetCount(Self: TStrings): Integer;
<font color="blue"><b>begin</b></font>
result := Self.Count;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TStrings_GetName(Self: TStrings; I: Integer): <font color="blue"><b>String</b></font>;
<font color="blue"><b>begin</b></font>
result := Self.Names[I];
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TStrings_GetObject(Self: TStrings; I: Integer): TObject;
<font color="blue"><b>begin</b></font>
result := Self.Objects[I];
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TStrings_SetObject(Self: TStrings; I: Integer; Value: TObject);
<font color="blue"><b>begin</b></font>
Self.Objects[I] := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TStrings_GetValue(Self: TStrings; <font color="blue"><b>const</b></font> I: <font color="blue"><b>String</b></font>): <font color="blue"><b>String</b></font>;
<font color="blue"><b>begin</b></font>
result := Self.Values[I];
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TStrings_SetValue(Self: TStrings; <font color="blue"><b>const</b></font> I: <font color="blue"><b>String</b></font>; <font color="blue"><b>const</b></font> Value: <font color="blue"><b>String</b></font>);
<font color="blue"><b>begin</b></font>
Self.Values[I] := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TStrings_GetString(Self: TStrings; I: Integer): <font color="blue"><b>String</b></font>;
<font color="blue"><b>begin</b></font>
result := Self.Strings[I];
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TStrings_SetString(Self: TStrings; I: Integer; <font color="blue"><b>const</b></font> Value: <font color="blue"><b>String</b></font>);
<font color="blue"><b>begin</b></font>
Self.Strings[I] := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TStrings_GetText(Self: TStrings): <font color="blue"><b>String</b></font>;
<font color="blue"><b>begin</b></font>
result := Self.Text;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TStrings_SetText(Self: TStrings; <font color="blue"><b>const</b></font> Value: <font color="blue"><b>String</b></font>);
<font color="blue"><b>begin</b></font>
Self.Text := Value;
<font color="blue"><b>end</b></font>;
// TStringList -----------------------------------------------------------------
<font color="blue"><b>function</b></font> TStringList_GetDuplicates(Self: TStringList): TDuplicates;
<font color="blue"><b>begin</b></font>
result := Self.Duplicates;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TStringList_SetDuplicates(Self: TStringList; Value: TDuplicates);
<font color="blue"><b>begin</b></font>
Self.Duplicates := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TStringList_GetSorted(Self: TStringList): Boolean;
<font color="blue"><b>begin</b></font>
result := Self.Sorted;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TStringList_SetSorted(Self: TStringList; Value: Boolean);
<font color="blue"><b>begin</b></font>
Self.Sorted := Value;
<font color="blue"><b>end</b></font>;
// TStream ---------------------------------------------------------------------
<font color="blue"><b>function</b></font> TStream_GetPosition(Self: TStream): Integer;
<font color="blue"><b>begin</b></font>
result := Self.Position;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TStream_SetPosition(Self: TStream; Value: Integer);
<font color="blue"><b>begin</b></font>
Self.Position := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TStream_GetSize(Self: TStream): Longint;
<font color="blue"><b>begin</b></font>
result := Self.Size;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TStream_SetSize(Self: TStream; Value: Longint);
<font color="blue"><b>begin</b></font>
Self.Size := Value;
<font color="blue"><b>end</b></font>;
// TStream ---------------------------------------------------------------------
<font color="blue"><b>function</b></font> THandleStream_GetHandle(Self: THandleStream): Integer;
<font color="blue"><b>begin</b></font>
result := Self.Handle;
<font color="blue"><b>end</b></font>;
// TCustomMemoryStream ---------------------------------------------------------
<font color="blue"><b>function</b></font> TCustomMemoryStream_GetMemory(Self: TCustomMemoryStream): Pointer;
<font color="blue"><b>begin</b></font>
result := Self.Memory;
<font color="blue"><b>end</b></font>;
// TStringStream ---------------------------------------------------------------
<font color="blue"><b>function</b></font> TStringStream_GetDataString(Self: TStringStream): <font color="blue"><b>String</b></font>;
<font color="blue"><b>begin</b></font>
result := Self.DataString;
<font color="blue"><b>end</b></font>;
// TParser ---------------------------------------------------------------------
<font color="blue"><b>function</b></font> TParser_GetFloatType(Self: TParser): Char;
<font color="blue"><b>begin</b></font>
result := Self.FloatType;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TParser_GetSourceLine(Self: TParser): Integer;
<font color="blue"><b>begin</b></font>
result := Self.SourceLine;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TParser_GetToken(Self: TParser): Char;
<font color="blue"><b>begin</b></font>
result := Self.Token;
<font color="blue"><b>end</b></font>;
// TComponent ------------------------------------------------------------------
<font color="blue"><b>function</b></font> TComponent_GetComponent(Self: TComponent; I: Integer): TComponent;
<font color="blue"><b>begin</b></font>
result := Self.Components[I];
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TComponent_GetComponentCount(Self: TComponent): Integer;
<font color="blue"><b>begin</b></font>
result := Self.ComponentCount;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TComponent_GetComponentIndex(Self: TComponent): Integer;
<font color="blue"><b>begin</b></font>
result := Self.ComponentIndex;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TComponent_SetComponentIndex(Self: TComponent; Value: Integer);
<font color="blue"><b>begin</b></font>
Self.ComponentIndex := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TComponent_GetComponentState(Self: TComponent): TComponentState;
<font color="blue"><b>begin</b></font>
result := Self.ComponentState;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TComponent_GetComponentStyle(Self: TComponent): TComponentStyle;
<font color="blue"><b>begin</b></font>
result := Self.ComponentStyle;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TComponent_GetDesignInfo(Self: TComponent): Integer;
<font color="blue"><b>begin</b></font>
result := Self.DesignInfo;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>procedure</b></font> TComponent_SetDesignInfo(Self: TComponent; Value: Integer);
<font color="blue"><b>begin</b></font>
Self.DesignInfo := Value;
<font color="blue"><b>end</b></font>;
<font color="blue"><b>function</b></font> TComponent_GetOwner(Self: TComponent): TComponent;
<font color="blue"><b>begin</b></font>
result := Self.Owner;
<font color="blue"><b>end</b></font>;
//------------------------------------------------------------------------------
<font color="blue"><b>procedure</b></font> Register_Classes;
<font color="blue"><b>var</b></font>
H, G: Integer;
<font color="blue"><b>begin</b></font>
RegisterTypeAlias(0, <font color="Red">'Longint'</font>, _typeINTEGER);
H := RegisterNamespace(0, <font color="Red">'Classes'</font>);
{ Maximum TList size }
RegisterConstant(H, <font color="Red">'MaxListSize'</font>, MaxListSize);
{ TStream seek origins }
RegisterConstant(H, <font color="Red">'soFromBeginning'</font>, soFromBeginning);
RegisterConstant(H, <font color="Red">'soFromCurrent'</font>, soFromCurrent);
RegisterConstant(H, <font color="Red">'soFromEnd'</font>, soFromEnd);
{ TFileStream create mode }
RegisterConstant(H, <font color="Red">'fmCreate'</font>, fmCreate);
{ TParser special tokens }
RegisterConstant(H, <font color="Red">'toEOF'</font>, toEOF);
RegisterConstant(H, <font color="Red">'toSymbol'</font>, toSymbol);
RegisterConstant(H, <font color="Red">'toString'</font>, toString);
RegisterConstant(H, <font color="Red">'toInteger'</font>, toInteger);
RegisterConstant(H, <font color="Red">'toFloat'</font>, toFloat);
RegisterConstant(H, <font color="Red">'toWString'</font>, toWString);
{ Text alignment types }
RegisterRTTIType(H, TypeInfo(TAlignment));
RegisterRTTIType(H, TypeInfo(TLeftRight));
RegisterRTTIType(H, TypeInfo(TBiDiMode));
{ Types used by standard events }
RegisterRTTIType(H, TypeInfo(TShiftState));
RegisterRTTIType(H, TypeInfo(THelpContext));
{ Duplicate management }
RegisterRTTIType(H, TypeInfo(TDuplicates));
RegisterClassType(H, TComponent);
RegisterClassType(H, TStream);
RegisterClassType(H, TFiler);
RegisterClassType(H, TReader);
RegisterClassType(H, TWriter);
// TList -----------------------------------------------------------------------
G := RegisterArrayType(H, <font color="Red">'TPointerList'</font>,
RegisterSubrangeType(H, <font color="Red">''</font>, _typeINTEGER, 0, MaxListSize - 1),
_typePOINTER);
RegisterPointerType(H, <font color="Red">'PPointerList'</font>, G);
G := RegisterHeader(H, <font color="Red">'function __TListSortCompare(Item1, Item2: Pointer): Integer;'</font>, <font color="blue"><b>nil</b></font>);
RegisterProceduralType(H, <font color="Red">'TListSortCompare'</font>, G);
RegisterRTTIType(H, TypeInfo(TListNotification));
G := RegisterClassType(H, TList);
RegisterHeader(G, <font color="Red">'constructor Create;'</font>, @TList.Create);
RegisterHeader(G, <font color="Red">'function Add(Item: Pointer): Integer;'</font>, @TList.Add);
RegisterHeader(G, <font color="Red">'procedure Clear; virtual;'</font>, @TList.Clear);
RegisterHeader(G, <font color="Red">'procedure Delete(Index: Integer);'</font>, @TList.<font color="blue"><b>Delete</b></font>);
RegisterHeader(G, <font color="Red">'procedure Exchange(Index1, Index2: Integer);'</font>, @TList.Exchange);
RegisterHeader(G, <font color="Red">'function Expand: TList;'</font>, @TList.Expand);
RegisterHeader(G, <font color="Red">'function Extract(Item: Pointer): Pointer;'</font>, @TList.Extract);
RegisterHeader(G, <font color="Red">'function First: Pointer;'</font>, @TList.First);
RegisterHeader(G, <font color="Red">'function IndexOf(Item: Pointer): Integer;'</font>, @TList.IndexOf);
RegisterHeader(G, <font color="Red">'procedure Insert(Index: Integer; Item: Pointer);'</font>, @TList.Insert);
RegisterHeader(G, <font color="Red">'function Last: Pointer;'</font>, @TList.Last);
RegisterHeader(G, <font color="Red">'procedure Move(CurIndex, NewIndex: Integer);'</font>, @TList.Move);
RegisterHeader(G, <font color="Red">'function Remove(Item: Pointer): Integer;'</font>, @TList.Remove);
RegisterHeader(G, <font color="Red">'procedure Pack;'</font>, @TList.Pack);
RegisterHeader(G, <font color="Red">'procedure Sort(Compare: TListSortCompare);'</font>, @TList.Sort);
RegisterHeader(G, <font color="Red">'function _GetCapacity: Integer;'</font>, @TList_GetCapacity);
RegisterHeader(G, <font color="Red">'procedure _SetCapacity(Value: Integer);'</font>, @TList_SetCapacity);
RegisterProperty(G, <font color="Red">'property Capacity: Integer read _GetCapacity write _SetCapacity;'</font>);
RegisterHeader(G, <font color="Red">'function _GetCount: Integer;'</font>, @TList_GetCount);
RegisterProperty(G, <font color="Red">'property Count: Integer read _GetCount;'</font>);
RegisterHeader(G, <font color="Red">'function _GetItem(I: Integer): Pointer;'</font>, @TList_GetItem);
RegisterHeader(G, <font color="Red">'procedure _SetItem(I: Integer; Value: Pointer);'</font>, @TList_SetItem);
RegisterProperty(G, <font color="Red">'property Items[Index: Integer]: Pointer read _GetItem write _SetItem; default;'</font>);
RegisterHeader(G, <font color="Red">'function _GetList: PPointerList;'</font>, @TList_GetList);
RegisterProperty(G, <font color="Red">'property List: PPointerList read _GetList;'</font>);
// TBits -----------------------------------------------------------------------
G := RegisterClassType(H, TBits);
RegisterHeader(G, <font color="Red">'constructor Create;'</font>, @TBits.Create);
RegisterHeader(G, <font color="Red">'function OpenBit: Integer;'</font>, @TBits.OpenBit);
RegisterHeader(G, <font color="Red">'function _GetBit(I: Integer): Boolean;'</font>, @TBits_GetBit);
RegisterHeader(G, <font color="Red">'procedure _SetBit(I: Integer; Value: Boolean);'</font>, @TBits_SetBit);
RegisterProperty(G, <font color="Red">'property Bits[Index: Integer]: Boolean read _GetBit write _SetBit; default;'</font>);
RegisterHeader(G, <font color="Red">'function _GetSize: Integer;'</font>, @TBits_GetSize);
RegisterProperty(G, <font color="Red">'property Size: Integer read _GetSize;'</font>);
// TPersistent -----------------------------------------------------------------
G := RegisterClassType(H, TPersistent);
RegisterClassReferenceType(H, <font color="Red">'TPersistentClass'</font>, G);
RegisterHeader(G, <font color="Red">'constructor Create;'</font>, @TPersistent.Create);
RegisterHeader(G, <font color="Red">'procedure Assign(Source: TPersistent); virtual;'</font>, @TPersistent.Assign);
RegisterHeader(G, <font color="Red">'function GetNamePath: string; dynamic;'</font>, @TPersistent.GetNamePath);
// TCollectionItem -------------------------------------------------------------
RegisterClassType(H, TCollection);
G := RegisterClassType(H, TCollectionItem);
RegisterClassReferenceType(H, <font color="Red">'TCollectionItemClass'</font>, G);
RegisterHeader(G, <font color="Red">'constructor Create(Collection: TCollection); virtual;'</font>, @TCollectionItem.Create);
RegisterHeader(G, <font color="Red">'function GetNamePath: string; override;'</font>, @TCollectionItem.GetNamePath);
RegisterHeader(G, <font color="Red">'function _GetCollection: TCollection;'</font>, @TCollectionItem_GetCollection);
RegisterHeader(G, <font color="Red">'procedure _SetCollection(Value: TCollection);'</font>, @TCollectionItem_SetCollection);
RegisterProperty(G, <font color="Red">'property Collection: TCollection read _GetCollection write _SetCollection;'</font>);
RegisterHeader(G, <font color="Red">'function _GetID: Integer;'</font>, @TCollectionItem_GetID);
RegisterProperty(G, <font color="Red">'property ID: Integer read _GetID;'</font>);
RegisterHeader(G, <font color="Red">'function _GetIndex: Integer;'</font>, @TCollectionItem_GetIndex);
RegisterHeader(G, <font color="Red">'procedure _SetIndex(Value: Integer);'</font>, @TCollectionItem_SetIndex);
RegisterProperty(G, <font color="Red">'property Index: Integer read _GetIndex write _SetIndex;'</font>);
RegisterHeader(G, <font color="Red">'function _GetDisplayName: String;'</font>, @TCollectionItem_GetDisplayName);
RegisterHeader(G, <font color="Red">'procedure _SetDisplayName(const Value: String);'</font>, @TCollectionItem_SetDisplayName);
RegisterProperty(G, <font color="Red">'property DisplayName: string read _GetDisplayName write _SetDisplayName;'</font>);
// TCollection -----------------------------------------------------------------
G := RegisterClassType(H, TCollection);
RegisterHeader(G, <font color="Red">'constructor Create(ItemClass: TCollectionItemClass);'</font>, @TCollection.Create);
RegisterHeader(G, <font color="Red">'function Add: TCollectionItem;'</font>, @TCollection.Add);
RegisterHeader(G, <font color="Red">'procedure Assign(Source: TPersistent); override;'</font>, @TCollection.Assign);
RegisterHeader(G, <font color="Red">'procedure BeginUpdate; virtual;'</font>, @TCollection.BeginUpdate);
RegisterHeader(G, <font color="Red">'procedure Clear;'</font>, @TCollection.Clear);
RegisterHeader(G, <font color="Red">'procedure Delete(Index: Integer);'</font>, @TCollection.<font color="blue"><b>Delete</b></font>);
RegisterHeader(G, <font color="Red">'procedure EndUpdate; virtual;'</font>, @TCollection.EndUpdate);
RegisterHeader(G, <font color="Red">'function FindItemID(ID: Integer): TCollectionItem;'</font>, @TCollection.FindItemId);
RegisterHeader(G, <font color="Red">'function GetNamePath: string; override;'</font>, @TCollection.GetNamePath);
RegisterHeader(G, <font color="Red">'function Insert(Index: Integer): TCollectionItem;'</font>, @TCollection.Insert);
RegisterHeader(G, <font color="Red">'function _GetCount: Integer;'</font>, @TCollection_GetCount);
RegisterProperty(G, <font color="Red">'property Count: Integer read _GetCount;'</font>);
RegisterHeader(G, <font color="Red">'function _GetItemClass: TCollectionItemClass;'</font>,
@TCollection_GetItemClass);
RegisterProperty(G, <font color="Red">'property ItemClass: TCollectionItemClass read _GetItemClass;'</font>);
RegisterHeader(G, <font color="Red">'function _GetItem(I: Integer): TCollectionItem;'</font>, @TCollection_GetItem);
RegisterHeader(G, <font color="Red">'procedure _SetItem(I: Integer; Value: TCollectionItem);'</font>, @TCollection_SetItem);
RegisterProperty(G, <font color="Red">'property Items[Index: Integer]: TCollectionItem read _GetItem write _SetItem;'</font>);
// TStrings --------------------------------------------------------------------
G := RegisterClassType(H, TStrings);
RegisterHeader(G, <font color="Red">'constructor Create;'</font>, @TStrings.Create);
RegisterHeader(G, <font color="Red">'function Add(const S: string): Integer; virtual;'</font>, @TStrings.Add);
RegisterHeader(G, <font color="Red">'function AddObject(const S: string; AObject: TObject): Integer; virtual;'</font>, @TStrings.AddObject);
RegisterHeader(G, <font color="Red">'procedure Append(const S: string);'</font>, @TStrings.Append);
RegisterHeader(G, <font color="Red">'procedure AddStrings(Strings: TStrings); virtual;'</font>, @TStrings.AddStrings);
RegisterHeader(G, <font color="Red">'procedure Assign(Source: TPersistent); override;'</font>, @TStrings.Assign);
RegisterHeader(G, <font color="Red">'procedure BeginUpdate;'</font>, @TStrings.BeginUpdate);
RegisterHeader(G, <font color="Red">'procedure Clear; virtual; abstract;'</font>, <font color="blue"><b>nil</b></font>);
RegisterHeader(G, <font color="Red">'procedure Delete(Index: Integer); virtual; abstract;'</font>, <font color="blue"><b>nil</b></font>);
RegisterHeader(G, <font color="Red">'procedure EndUpdate;'</font>, @TStrings.EndUpdate);
RegisterHeader(G, <font color="Red">'function Equals(Strings: TStrings): Boolean;'</font>, @TStrings.Equals);
RegisterHeader(G, <font color="Red">'procedure Exchange(Index1, Index2: Integer); virtual;'</font>, @TStrings.Exchange);
RegisterHeader(G, <font color="Red">'function GetText: PChar; virtual;'</font>, @TStrings.GetText);
RegisterHeader(G, <font color="Red">'function IndexOf(const S: string): Integer; virtual;'</font>, @TStrings.IndexOf);
RegisterHeader(G, <font color="Red">'function IndexOfName(const Name: string): Integer;'</font>, @TStrings.IndexOfName);
RegisterHeader(G, <font color="Red">'function IndexOfObject(AObject: TObject): Integer;'</font>, @TStrings.IndexOfObject);
RegisterHeader(G, <font color="Red">'procedure Insert(Index: Integer; const S: string); virtual; abstract;'</font>, <font color="blue"><b>nil</b></font>);
RegisterHeader(G, <font color="Red">'procedure InsertObject(Index: Integer; const S: string; AObject: TObject);'</font>, @TStrings.InsertObject);
RegisterHeader(G, <font color="Red">'procedure LoadFromFile(const FileName: string); virtual;'</font>, @TStrings.LoadFromFile);
RegisterHeader(G, <font color="Red">'procedure LoadFromStream(Stream: TStream); virtual;'</font>, @TStrings.LoadFromStream);
RegisterHeader(G, <font color="Red">'procedure Move(CurIndex, NewIndex: Integer); virtual;'</font>, @TStrings.Move);
RegisterHeader(G, <font color="Red">'procedure SaveToFile(const FileName: string); virtual;'</font>, @TStrings.SaveToFile);
RegisterHeader(G, <font color="Red">'procedure SaveToStream(Stream: TStream); virtual;'</font>, @TStrings.SaveToStream);
RegisterHeader(G, <font color="Red">'procedure SetText(Text: PChar); virtual;'</font>, @TStrings.SetText);
RegisterHeader(G, <font color="Red">'function _GetCapacity: Integer;'</font>, @TStrings_GetCapacity);
RegisterHeader(G, <font color="Red">'procedure _SetCapacity(Value: Integer);'</font>, @TStrings_SetCapacity);
RegisterProperty(G, <font color="Red">'property Capacity: Integer read _GetCapacity write _SetCapacity;'</font>);
RegisterHeader(G, <font color="Red">'function _GetCommaText: String;'</font>, @TStrings_GetCommaText);
RegisterHeader(G, <font color="Red">'procedure _SetCommaText(const Value: String);'</font>, @TStrings_SetCommaText);
RegisterProperty(G, <font color="Red">'property CommaText: string read _GetCommaText write _SetCommaText;'</font>);
RegisterHeader(G, <font color="Red">'function _GetCount: Integer;'</font>, @TStrings_GetCount);
RegisterProperty(G, <font color="Red">'property Count: Integer read _GetCount;'</font>);
RegisterHeader(G, <font color="Red">'function _GetName(I: Integer): String;'</font>, @TStrings_GetName);
RegisterProperty(G, <font color="Red">'property Names[Index: Integer]: string read _GetName;'</font>);
RegisterHeader(G, <font color="Red">'function _GetObject(I: Integer): TObject;'</font>, @TStrings_GetObject);
RegisterHeader(G, <font color="Red">'procedure _SetObject(I: Integer; Value: TObject);'</font>, @TStrings_SetObject);
RegisterProperty(G, <font color="Red">'property Objects[Index: Integer]: TObject read _GetObject write _SetObject;'</font>);
RegisterHeader(G, <font color="Red">'function _GetValue(const I: String): String;'</font>, @TStrings_GetValue);
RegisterHeader(G, <font color="Red">'procedure _SetValue(const I: String; const Value: String);'</font>, @TStrings_GetValue);
RegisterProperty(G, <font color="Red">'property Values[const Name: string]: string read _GetValue write _SetValue;'</font>);
RegisterHeader(G, <font color="Red">'function _GetString(I: Integer): String;'</font>, @TStrings_GetString);
RegisterHeader(G, <font color="Red">'procedure _SetString(I: Integer; const Value: String);'</font>, @TStrings_SetString);
RegisterProperty(G, <font color="Red">'property Strings[Index: Integer]: string read _GetString write _SetString; default;'</font>);
RegisterHeader(G, <font color="Red">'function _GetText: String;'</font>, @TStrings_GetText);
RegisterHeader(G, <font color="Red">'procedure _SetText(const Value: String);'</font>, @TStrings_SetText);
RegisterProperty(G, <font color="Red">'property Text: string read _GetText write _SetText;'</font>);
// TStringList -----------------------------------------------------------------
G := RegisterClassType(H, TStringList);
RegisterProceduralType(H, <font color="Red">'TStringListSortCompare'</font>, RegisterHeader(H, <font color="Red">'function __TStringListSortCompare(List: TStringList; Index1, Index2: Integer): Integer;'</font>, <font color="blue"><b>nil</b></font>));
RegisterHeader(G, <font color="Red">'constructor Create;'</font>, @TStringList.Create);
RegisterHeader(G, <font color="Red">'function Add(const S: string): Integer; override;'</font>, @TStringList.Add);
RegisterHeader(G, <font color="Red">'procedure Clear; override;'</font>, @TStringList.Clear);
RegisterHeader(G, <font color="Red">'procedure Delete(Index: Integer); override;'</font>, @TStringList.<font color="blue"><b>Delete</b></font>);
RegisterHeader(G, <font color="Red">'procedure Exchange(Index1, Index2: Integer); override;'</font>, @TStringList.Exchange);
RegisterHeader(G, <font color="Red">'function Find(const S: string; var Index: Integer): Boolean; virtual;'</font>, @TStringList.Find);
RegisterHeader(G, <font color="Red">'function IndexOf(const S: string): Integer; override;'</font>, @TStringList.IndexOf);
RegisterHeader(G, <font color="Red">'procedure Insert(Index: Integer; const S: string); override;'</font>, @TStringList.Insert);
RegisterHeader(G, <font color="Red">'procedure Sort; virtual;'</font>, @TStringList.Sort);
RegisterHeader(G, <font color="Red">'procedure CustomSort(Compare: TStringListSortCompare); virtual;'</font>, @TStringList.CustomSort);
RegisterHeader(G, <font color="Red">'function _GetDuplicates: TDuplicates;'</font>, @TStringList_GetDuplicates);
RegisterHeader(G, <font color="Red">'procedure _SetDuplicates(Value: TDuplicates);'</font>, @TStringList_SetDuplicates);
RegisterProperty(G, <font color="Red">'property Duplicates: TDuplicates read _GetDuplicates write _SetDuplicates;'</font>);
RegisterHeader(G, <font color="Red">'function _GetSorted: Boolean;'</font>, @TStringList_GetSorted);
RegisterHeader(G, <font color="Red">'procedure _SetSorted(Value: Boolean);'</font>, @TStringList_SetSorted);
RegisterProperty(G, <font color="Red">'property Sorted: Boolean read _GetSorted write _SetSorted;'</font>);
// TStream ---------------------------------------------------------------------
G := RegisterClassType(H, TStream);
RegisterHeader(G, <font color="Red">'constructor Create;'</font>, @TStream.Create);
RegisterHeader(G, <font color="Red">'function Read(var Buffer; Count: Longint): Longint; virtual; abstract;'</font>, <font color="blue"><b>nil</b></font>);
RegisterHeader(G, <font color="Red">'function Write(const Buffer; Count: Longint): Longint; virtual; abstract;'</font>, <font color="blue"><b>nil</b></font>);
RegisterHeader(G, <font color="Red">'function Seek(Offset: Longint; Origin: Word): Longint; virtual; abstract;'</font>, <font color="blue"><b>nil</b></font>);
RegisterHeader(G, <font color="Red">'procedure ReadBuffer(var Buffer; Count: Longint);'</font>, @TStream.ReadBuffer);
RegisterHeader(G, <font color="Red">'procedure WriteBuffer(const Buffer; Count: Longint);'</font>, @TStream.WriteBuffer);
RegisterHeader(G, <font color="Red">'function CopyFrom(Source: TStream; Count: Longint): Longint;'</font>, @TStream.CopyFrom);
RegisterHeader(G, <font color="Red">'function ReadComponent(Instance: TComponent): TComponent;'</font>, @TStream.ReadComponent);
RegisterHeader(G, <font color="Red">'function ReadComponentRes(Instance: TComponent): TComponent;'</font>, @TStream.ReadComponentRes);
RegisterHeader(G, <font color="Red">'procedure WriteComponent(Instance: TComponent);'</font>, @TStream.WriteComponent);
RegisterHeader(G, <font color="Red">'procedure WriteResourceHeader(const ResName: string; out FixupInfo: Integer);'</font>, @TStream.WriteResourceHeader);
RegisterHeader(G, <font color="Red">'procedure FixupResourceHeader(FixupInfo: Integer);'</font>, @TStream.FixupResourceHeader);
RegisterHeader(G, <font color="Red">'procedure ReadResHeader;'</font>, @TStream.ReadResHeader);
RegisterHeader(G, <font color="Red">'function _GetPosition: Integer;'</font>, @TStream_GetPosition);
RegisterHeader(G, <font color="Red">'procedure _SetPosition(Value: Integer);'</font>, @TStream_SetPosition);
RegisterProperty(G, <font color="Red">'property Position: Longint read _GetPosition write _SetPosition;'</font>);
RegisterHeader(G, <font color="Red">'function _GetSize: Longint;'</font>, @TStream_GetSize);
RegisterHeader(G, <font color="Red">'procedure _SetSize(Value: Longint);'</font>, @TStream_SetSize);
RegisterProperty(G, <font color="Red">'property Size: Longint read _GetSize write _SetSize;'</font>);
// THandleStream ---------------------------------------------------------------
G := RegisterClassType(H, THandleStream);
RegisterHeader(G, <font color="Red">'constructor Create(AHandle: Integer);'</font>, @THandleStream.Create);
RegisterHeader(G, <font color="Red">'function Read(var Buffer; Count: Longint): Longint; override;'</font>, @THandleStream.Read);
RegisterHeader(G, <font color="Red">'function Write(const Buffer; Count: Longint): Longint; override;'</font>, @THandleStream.Write);
RegisterHeader(G, <font color="Red">'function Seek(Offset: Longint; Origin: Word): Longint; override;'</font>, @THandleStream.Seek);
RegisterHeader(G, <font color="Red">'function _GetHandle: Integer;'</font>, @THandleStream_GetHandle);
RegisterProperty(G, <font color="Red">'property Handle: Integer read _GetHandle;'</font>);
// TFileStream -----------------------------------------------------------------
G := RegisterClassType(H, TFileStream);
RegisterHeader(G, <font color="Red">'constructor Create(const FileName: string; Mode: Word);'</font>, @TFileStream.Create);
// TCustomMemoryStream ---------------------------------------------------------
G := RegisterClassType(H, TCustomMemoryStream);
RegisterHeader(G, <font color="Red">'constructor Create;'</font>, @TCustomMemoryStream.Create);
RegisterHeader(G, <font color="Red">'function Read(var Buffer; Count: Longint): Longint; override;'</font>, @TCustomMemoryStream.Read);
RegisterHeader(G, <font color="Red">'function Seek(Offset: Longint; Origin: Word): Longint; override;'</font>, @TCustomMemoryStream.Seek);
RegisterHeader(G, <font color="Red">'procedure SaveToStream(Stream: TStream);'</font>, @TCustomMemoryStream.SaveToStream);
RegisterHeader(G, <font color="Red">'procedure SaveToFile(const FileName: string);'</font>, @TCustomMemoryStream.SaveToFile);
RegisterHeader(G, <font color="Red">'function _GetMemory: Pointer;'</font>, @TCustomMemoryStream_GetMemory);
RegisterProperty(G, <font color="Red">'property Memory: Pointer read _GetMemory;'</font>);
// TMemoryStream ---------------------------------------------------------------
G := RegisterClassType(H, TMemoryStream);
RegisterHeader(G, <font color="Red">'constructor Create;'</font>, @TMemoryStream.Create);
RegisterHeader(G, <font color="Red">'procedure Clear;'</font>, @TMemoryStream.Clear);
RegisterHeader(G, <font color="Red">'procedure LoadFromStream(Stream: TStream);'</font>, @TMemoryStream.LoadFromStream);
RegisterHeader(G, <font color="Red">'procedure LoadFromFile(const FileName: string);'</font>, @TMemoryStream.LoadFromFile);
RegisterHeader(G, <font color="Red">'procedure SetSize(NewSize: Longint); override;'</font>, @TMemoryStream.SetSize);
RegisterHeader(G, <font color="Red">'function Write(const Buffer; Count: Longint): Longint; override;'</font>, @TMemoryStream.Write);
// TStringStream ---------------------------------------------------------------
G := RegisterClassType(H, TStringStream);
RegisterHeader(G, <font color="Red">'constructor Create(const AString: string);'</font>, @TStringStream.Create);
RegisterHeader(G, <font color="Red">'function Read(var Buffer; Count: Longint): Longint; override;'</font>, @TStringStream.Read);
RegisterHeader(G, <font color="Red">'function ReadString(Count: Longint): string;'</font>, @TStringStream.ReadString);
RegisterHeader(G, <font color="Red">'function Seek(Offset: Longint; Origin: Word): Longint; override;'</font>, @TStringStream.Seek);
RegisterHeader(G, <font color="Red">'function Write(const Buffer; Count: Longint): Longint; override;'</font>, @TStringStream.Write);
RegisterHeader(G, <font color="Red">'procedure WriteString(const AString: string);'</font>, @TStringStream.WriteString);
RegisterHeader(G, <font color="Red">'function _GetDataString: String;'</font>, @TStringStream_GetDataString);
RegisterProperty(G, <font color="Red">'property DataString: string read _GetDataString;'</font>);
// TResourceStream -------------------------------------------------------------
G := RegisterClassType(H, TResourceStream);
RegisterTypeAlias(0, <font color="Red">'THandle'</font>, _typeINTEGER);
RegisterHeader(G, <font color="Red">'constructor Create(Instance: THandle; const ResName: string; ResType: PChar);'</font>, @TResourceStream.Create);
RegisterHeader(G, <font color="Red">'constructor CreateFromID(Instance: THandle; ResID: Integer; ResType: PChar);'</font>, @TResourceStream.CreateFromID);
RegisterHeader(G, <font color="Red">'function Write(const Buffer; Count: Longint): Longint; override;'</font>, @TResourceStream.Write);
// TParser ---------------------------------------------------------------------
G := RegisterClassType(H, TParser);
RegisterHeader(G, <font color="Red">'constructor Create(Stream: TStream);'</font>, @TParser.Create);
RegisterHeader(G, <font color="Red">'procedure CheckToken(T: Char);'</font>, @TParser.CheckToken);
RegisterHeader(G, <font color="Red">'procedure CheckTokenSymbol(const S: string);'</font>, @TParser.CheckTokenSymbol);
RegisterHeader(G, <font color="Red">'procedure Error(const Ident: string);'</font>, @TParser.Error);
RegisterHeader(G, <font color="Red">'procedure ErrorStr(const Message: string);'</font>, @TParser.ErrorStr);
RegisterHeader(G, <font color="Red">'procedure HexToBinary(Stream: TStream);'</font>, @TParser.HexToBinary);
RegisterHeader(G, <font color="Red">'function NextToken: Char;'</font>, @TParser.NextToken);
RegisterHeader(G, <font color="Red">'function SourcePos: Longint;'</font>, @TParser.SourcePos);
RegisterHeader(G, <font color="Red">'function TokenComponentIdent: string;'</font>, @TParser.TokenComponentIdent);
RegisterHeader(G, <font color="Red">'function TokenFloat: Extended;'</font>, @TParser.TokenFloat);
RegisterHeader(G, <font color="Red">'function TokenString: string;'</font>, @TParser.TokenString);
RegisterHeader(G, <font color="Red">'function TokenSymbolIs(const S: string): Boolean;'</font>, @TParser.TokenSymbolIs);
RegisterHeader(G, <font color="Red">'function _GetFloatType: Char;'</font>, @TParser_GetFloatType);
RegisterProperty(G, <font color="Red">'property FloatType: Char read _GetFloatType;'</font>);
RegisterHeader(G, <font color="Red">'function _GetSourceLine: Integer;'</font>, @TParser_GetSourceLine);
RegisterProperty(G, <font color="Red">'property SourceLine: Integer read _GetSourceLine;'</font>);
RegisterHeader(G, <font color="Red">'function _GetToken: Char;'</font>, @TParser_GetToken);
RegisterProperty(G, <font color="Red">'property Token: Char read _GetToken;'</font>);
// TComponent ------------------------------------------------------------------
RegisterClassType(H, TBasicAction);
RegisterRTTIType(H, TypeInfo(TComponentState));
RegisterRTTIType(H, TypeInfo(TComponentStyle));
RegisterTypeAlias(0, <font color="Red">'HRESULT'</font>, _typeINTEGER);
G := RegisterClassType(H, TComponent);
RegisterHeader(G, <font color="Red">'constructor Create(AOwner: TComponent); virtual;'</font>, @TComponent.Create);
RegisterHeader(G, <font color="Red">'procedure BeforeDestruction; override;'</font>, @TComponent.BeforeDestruction);
RegisterHeader(G, <font color="Red">'procedure DestroyComponents;'</font>, @TComponent.DestroyComponents);
RegisterHeader(G, <font color="Red">'procedure Destroying;'</font>, @TComponent.Destroying);
RegisterHeader(G, <font color="Red">'function ExecuteAction(Action: TBasicAction): Boolean; dynamic;'</font>, @TComponent.ExecuteAction);
RegisterHeader(G, <font color="Red">'function FindComponent(const AName: string): TComponent;'</font>, @TComponent.FindComponent);
RegisterHeader(G, <font color="Red">'procedure FreeNotification(AComponent: TComponent);'</font>, @TComponent.FreeNotification);
RegisterHeader(G, <font color="Red">'procedure RemoveFreeNotification(AComponent: TComponent);'</font>, @TComponent.RemoveFreeNotification);
RegisterHeader(G, <font color="Red">'procedure FreeOnRelease;'</font>, @TComponent.FreeOnRelease);
RegisterHeader(G, <font color="Red">'function GetParentComponent: TComponent; dynamic;'</font>, @TComponent.GetParentComponent);
RegisterHeader(G, <font color="Red">'function GetNamePath: string; override;'</font>, @TComponent.GetNamePath);
RegisterHeader(G, <font color="Red">'function HasParent: Boolean; dynamic;'</font>, @TComponent.HasParent);
RegisterHeader(G, <font color="Red">'procedure InsertComponent(AComponent: TComponent);'</font>, @TComponent.InsertComponent);
RegisterHeader(G, <font color="Red">'procedure RemoveComponent(AComponent: TComponent);'</font>, @TComponent.RemoveComponent);
RegisterHeader(G, <font color="Red">'function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; override;'</font>, @TComponent.SafeCallException);
RegisterHeader(G, <font color="Red">'function UpdateAction(Action: TBasicAction): Boolean; dynamic;'</font>, @TComponent.UpdateAction);
RegisterHeader(G, <font color="Red">'function _GetComponent(I: Integer): TComponent;'</font>, @TComponent_GetComponent);
RegisterProperty(G, <font color="Red">'property Components[Index: Integer]: TComponent read _GetComponent;'</font>);
RegisterHeader(G, <font color="Red">'function _GetComponentCount: Integer;'</font>, @TComponent_GetComponentCount);
RegisterProperty(G, <font color="Red">'property ComponentCount: Integer read _GetComponentCount;'</font>);
RegisterHeader(G, <font color="Red">'function _GetComponentIndex: Integer;'</font>, @TComponent_GetComponentIndex);
RegisterHeader(G, <font color="Red">'procedure _SetComponentIndex(Value: Integer);'</font>, @TComponent_SetComponentIndex);
RegisterProperty(G, <font color="Red">'property ComponentIndex: Integer read _GetComponentIndex write _SetComponentIndex;'</font>);
RegisterHeader(G, <font color="Red">'function _GetComponentState: TComponentState;'</font>, @TComponent_GetComponentState);
RegisterProperty(G, <font color="Red">'property ComponentState: TComponentState read _GetComponentState;'</font>);
RegisterHeader(G, <font color="Red">'function _GetComponentStyle: TComponentStyle;'</font>, @TComponent_GetComponentStyle);
RegisterProperty(G, <font color="Red">'property ComponentStyle: TComponentStyle read _GetComponentStyle;'</font>);
RegisterHeader(G, <font color="Red">'function _GetDesignInfo: Integer;'</font>, @TComponent_GetDesignInfo);
RegisterHeader(G, <font color="Red">'procedure _SetDesignInfo(Value: Integer);'</font>, @TComponent_SetDesignInfo);
RegisterProperty(G, <font color="Red">'property DesignInfo: Longint read _GetDesignInfo write _SetDesignInfo;'</font>);
RegisterHeader(G, <font color="Red">'function _GetOwner: TComponent;'</font>, @TComponent_GetOwner);
RegisterProperty(G, <font color="Red">'property Owner: TComponent read _GetOwner;'</font>);
{ Point and rectangle constructors }
RegisterHeader(H, <font color="Red">'function Point(AX, AY: Integer): TPoint;'</font>, @Point);
RegisterHeader(H, <font color="Red">'function Rect(ALeft, ATop, ARight, ABottom: Integer): TRect;'</font>, @Rect);
RegisterHeader(H, <font color="Red">'function Bounds(ALeft, ATop, AWidth, AHeight: Integer): TRect;'</font>, @Bounds);
{ Class registration routines }
RegisterHeader(H, <font color="Red">'procedure RegisterClass(AClass: TPersistentClass);'</font>, @RegisterClass);
RegisterHeader(H, <font color="Red">'procedure UnRegisterClass(AClass: TPersistentClass);'</font>, @UnRegisterClass);
RegisterHeader(H, <font color="Red">'function FindClass(const ClassName: string): TPersistentClass;'</font>, @FindClass);
RegisterHeader(H, <font color="Red">'function GetClass(const AClassName: string): TPersistentClass;'</font>, @GetClass);
<font color="blue"><b>end</b></font>;
<font color="blue"><b>initialization</b></font>
Register_Classes;
<font color="blue"><b>end</b></font>.
</pre>
</blockquote>
<p>
<HR>
<font size = 1 color ="gray">
Copyright &copy; 2006-2009
VIRT Laboratory. All rights reserved.
</font>
</body>
</html>