Class TMainForm (unit HugeForm)

Inherits from

TForm

change to TList to compare with standard list type

Constructors



Functions

procedure AbortButtonClick(Sender: TObject);


procedure AddButtonClick(Sender: TObject);

Add or Insert, depending on whether the user supplies an index

procedure ClearButtonClick(Sender: TObject);


procedure DecrButtonClick(Sender: TObject);


procedure DeleteButtonClick(Sender: TObject);


procedure ExchangeButtonClick(Sender: TObject);


procedure FillButtonClick(Sender: TObject);


procedure FormCreate(Sender: TObject);


procedure FormDestroy(Sender: TObject);


procedure IncrButtonClick(Sender: TObject);


procedure IndexEditChange(Sender: TObject);


procedure IndexOfButtonClick(Sender: TObject);

IndexOf looks for the specific value, and does not compare strings.

procedure IterationsChange(Sender: TObject);


procedure LookupButtonClick(Sender: TObject);


procedure MoveButtonClick(Sender: TObject);


procedure OffsetButtonClick(Sender: TObject);


procedure PackButtonClick(Sender: TObject);


procedure SetButtonClick(Sender: TObject);


procedure SpinButton1DownClick(Sender: TObject);


procedure SpinButton1UpClick(Sender: TObject);


procedure SpinOffsetDownClick(Sender: TObject);


procedure SpinOffsetUpClick(Sender: TObject);


procedure StartButtonClick(Sender: TObject);


procedure ValueEditChange(Sender: TObject);


procedure EnableButtons;

When the user types, enable or disable the buttons according to the availability of one or both indexes and the value.

procedure ExceptionHandler(Sender: TObject; Ex: Exception);

Trap exceptions and display the message in the status bar.

procedure StartTiming;


procedure Update;

THugeList page } { After any change to the list, update the count and capacity fields

procedure DoOneTest;

Timing page

function GetOffset: LongInt;


function GetPointer: Pointer;

Pointer page

procedure SetOffset(Offset: LongInt);


procedure SetPointer(Ptr: Pointer);


procedure ShowHint(Sender: TObject);


Properties

property OffsetValue : LongInt


property PointerValue : Pointer


Events

Variables

AbortButton : TButton;


AddButton : TButton;


CapacityEdit : TEdit;


ClearButton : TButton;


CountEdit : TEdit;


DecrButton : TButton;


DeleteButton : TButton;


ElapsedTime : TEdit;


ExchangeButton : TButton;


FillButton : TButton;


IncrButton : TButton;


IndexEdit : TEdit;


IndexEdit2 : TEdit;


IndexOfButton : TButton;


Iterations : TEdit;


IterCount : TEdit;


Label1 : TLabel;


Label10 : TLabel;


Label11 : TLabel;


Label12 : TLabel;


Label2 : TLabel;


Label3 : TLabel;


Label4 : TLabel;


Label5 : TLabel;


Label6 : TLabel;


Label7 : TLabel;


Label8 : TLabel;


Label9 : TLabel;


LookupButton : TButton;


MoveButton : TButton;


OffsetButton : TButton;


OffsetEdit : TMaskEdit;


PackButton : TButton;


PointerEdit : TMaskEdit;


SetButton : TButton;


SpinButton1 : TSpinButton;


SpinOffset : TSpinButton;


StartButton : TButton;


StatusBar : TPanel;


TabbedNotebook : TTabbedNotebook;


ValueEdit : TEdit;


List : TTestList;


AbortFlag : Boolean;



Constructors


Functions


procedure AbortButtonClick(Sender: TObject);


procedure AddButtonClick(Sender: TObject);

Add or Insert, depending on whether the user supplies an index


procedure ClearButtonClick(Sender: TObject);


procedure DecrButtonClick(Sender: TObject);


procedure DeleteButtonClick(Sender: TObject);


procedure ExchangeButtonClick(Sender: TObject);


procedure FillButtonClick(Sender: TObject);


procedure FormCreate(Sender: TObject);


procedure FormDestroy(Sender: TObject);


procedure IncrButtonClick(Sender: TObject);


procedure IndexEditChange(Sender: TObject);


procedure IndexOfButtonClick(Sender: TObject);

IndexOf looks for the specific value, and does not compare strings. Find the string manually, and then use IndexOf to find the pointer. Strange, but a good test.


procedure IterationsChange(Sender: TObject);


procedure LookupButtonClick(Sender: TObject);


procedure MoveButtonClick(Sender: TObject);


procedure OffsetButtonClick(Sender: TObject);


procedure PackButtonClick(Sender: TObject);


procedure SetButtonClick(Sender: TObject);


procedure SpinButton1DownClick(Sender: TObject);


procedure SpinButton1UpClick(Sender: TObject);


procedure SpinOffsetDownClick(Sender: TObject);


procedure SpinOffsetUpClick(Sender: TObject);


procedure StartButtonClick(Sender: TObject);


procedure ValueEditChange(Sender: TObject);


procedure EnableButtons;

When the user types, enable or disable the buttons according to the availability of one or both indexes and the value.


procedure ExceptionHandler(Sender: TObject; Ex: Exception);

Trap exceptions and display the message in the status bar. The messages are usually about indexes out of range, and so on. If you run this demo from Delphi, you probably want to turn off 'Break on Exception' in the Options>Environment dialog.


procedure StartTiming;


procedure Update;

THugeList page } { After any change to the list, update the count and capacity fields


procedure DoOneTest;

Timing page


function GetOffset: LongInt;


function GetPointer: Pointer;

Pointer page


procedure SetOffset(Offset: LongInt);


procedure SetPointer(Ptr: Pointer);


procedure ShowHint(Sender: TObject);


Properties


property OffsetValue : LongInt


property PointerValue : Pointer


Events


Variables


AbortButton : TButton;


AddButton : TButton;


CapacityEdit : TEdit;


ClearButton : TButton;


CountEdit : TEdit;


DecrButton : TButton;


DeleteButton : TButton;


ElapsedTime : TEdit;


ExchangeButton : TButton;


FillButton : TButton;


IncrButton : TButton;


IndexEdit : TEdit;


IndexEdit2 : TEdit;


IndexOfButton : TButton;


Iterations : TEdit;


IterCount : TEdit;


Label1 : TLabel;


Label10 : TLabel;


Label11 : TLabel;


Label12 : TLabel;


Label2 : TLabel;


Label3 : TLabel;


Label4 : TLabel;


Label5 : TLabel;


Label6 : TLabel;


Label7 : TLabel;


Label8 : TLabel;


Label9 : TLabel;


LookupButton : TButton;


MoveButton : TButton;


OffsetButton : TButton;


OffsetEdit : TMaskEdit;


PackButton : TButton;


PointerEdit : TMaskEdit;


SetButton : TButton;


SpinButton1 : TSpinButton;


SpinOffset : TSpinButton;


StartButton : TButton;


StatusBar : TPanel;


TabbedNotebook : TTabbedNotebook;


ValueEdit : TEdit;


List : TTestList;


AbortFlag : Boolean;