Add GUI to connect to SQL

系统 1611 0
      (*********************************************************************************)

(*                                                                               *)

(* Below is the list of support classes that can be used from within the Pascal  *)

(* script. There are also three support objects available: MainForm of type      *)

(* TMainForm, WizardForm of type TWizardForm and UninstallProgressForm of type   *)

(* TUninstallProgressForm and one special constant: crHand of type               *)

(* TControl.Cursor.                                                              *)

(* Note: MainForm is only visible if WindowVisible is set to yes.                *)

(* Note: you may find it useful to also refer to the Delphi Visual Component     *)

(* Library (VCL) Help files by Embarcadero Technologies, since the classes below *)

(* are mostly simple wrappers around the VCL classes Inno Setup uses internally. *)

(* See http://docs.embarcadero.com/products/rad_studio/ .                        *)

(*                                                                               *)

(*********************************************************************************)



Type

  TObject = class

    constructor Create;

    procedure Free;

  end;



  TBits = class(TObject)

    function OpenBit: Integer;

    property Bits[Index: Integer]: Boolean; read write;

    property Size: Integer; read write;

  end;



  TPersistent = class(TObject)

    procedure Assign(Source: TPersistent);

  end;



  TStream = class(TObject)

    function Read(Buffer: String; Count: Longint): Longint;

    function Write(Buffer: String; Count: Longint): Longint;

    function Seek(Offset: Longint; Origin: Word): Longint;

    procedure ReadBuffer(Buffer: String; Count: Longint);

    procedure WriteBuffer(Buffer: String; Count: Longint);

    function CopyFrom(Source: TStream; Count: Int64): Longint;

    property Position: Longint; read write;

    property Size: Longint; read write;

  end;



  TParser = class(TObject)

    constructor Create(Stream: TStream);

    procedure CheckToken(T: Char);

    procedure CheckTokenSymbol(S: String);

    procedure Error(Ident: Integer);

    procedure ErrorStr(Message: String);

    procedure HexToBinary(Stream: TStream);

    function NextToken: Char;

    function SourcePos: Longint;

    function TokenComponentIdent: String;

    function TokenFloat: Extended;

    function TokenInt: Longint;

    function TokenString: String;

    function TokenSymbolIs(S: String): Boolean;

    property SourceLine: Integer; read;

    property Token: Char; read;

  end;



  TCollectionItem = class(TPersistent)

    constructor Create(Collection: TCollection);

    property Collection: TCollection; read write;

    property Index: Integer; read write;

  end;



  TCollection = class(TPersistent)

    function Add: TCollectionItem;

    procedure BeginUpdate;

    procedure Clear;

    procedure EndUpdate;

    property Count: Integer; read;

    property Items[Index: Integer]: TCollectionItem; read write;

  end;



  HMENU = Cardinal;



  HAccel = Cardinal;



  Exception = class(TObject)

  end;



  EMenuError = class(Exception)

  end;



  TMenuBreak = (mbNone, mbBreak, mbBarBreak);



  TShortCut = Word;



  TIMAGEINDEX = Integer;



  TMenuItem = class(TComponent)

    constructor Create(AOwner: TComponent);

    procedure Insert(Index: Integer; Item: TMenuItem);

    procedure Delete(Index: Integer);

    procedure Click;

    function IndexOf(Item: TMenuItem): Integer;

    function GetParentComponent: TComponent;

    function HasParent: Boolean;

    procedure Add(Item: TMenuItem);

    procedure Remove(Item: TMenuItem);

    property Command: Word; read;

    property Handle: HMENU; read;

    property Count: Integer; read;

    property Items[Index: Integer]: TMenuItem; read;

    property MenuIndex: Integer; read write;

    property Parent: TMenuItem; read;

    property Caption: String; read write;

    property Checked: Boolean; read write;

    property Default: Boolean; read write;

    property Enabled: Boolean; read write;

    property GroupIndex: Byte; read write;

    property HelpContext: THelpContext; read write;

    property Hint: String; read write;

    property RadioItem: Boolean; read write;

    property ShortCut: TShortCut; read write;

    property Visible: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property ImageIndex: TImageIndex; read write;

  end;



  TMenuChangeEvent = procedure (Sender: TObject; Source: TMenuItem; Rebuild: Boolean);



  TFindItemKind = (fkCommand, fkHandle, fkShortCut);



  TWMMenuChar = record

    Msg: Cardinal;

    User: Char;

    MenuFlag: Word; { MF_POPUP, MF_SYSMENU }

    Menu: HMENU;

    Result: Longint;

  end;



  TMenuItemAutoFlag = (maAutomatic, maManual, maParent);

  TMenuAutoFlag = TMenuItemAutoFlag;



  TBiDiMode = (bdLeftToRight, bdRightToLeft, bdRightToLeftNoAlign, bdRightToLeftReadingOnly);



  TMenu = class(TComponent)

    constructor Create(AOwner: TComponent);

    function DispatchCommand(ACommand: Word): Boolean;

    function DispatchPopup(AHandle: HMENU): Boolean;

    function FindItem(Value: Integer; Kind: TFindItemKind): TMenuItem;

    function GetHelpContext(Value: Integer; ByCommand: Boolean): THelpContext;

    property Handle: HMENU; read;

    property WindowHandle: HWnd; read write;

    property Items: TMenuItem; read;

    property Images: TCustomImageList; read write;

    function IsRightToLeft: Boolean;

    procedure ParentBiDiModeChanged(AControl: TObject);

    procedure ProcessMenuChar(var Message: TWMMenuChar);

    property AutoHotkeys: TMenuAutoFlag; read write;

    property AutoLineReduction: TMenuAutoFlag; read write;

    property BiDiMode: TBiDiMode; read write;

    property OwnerDraw: Boolean; read write;

    property ParentBiDiMode: Boolean; read write;

  end;



  TMainMenu = class(TMenu)

    procedure Merge(Menu: TMainMenu);

    procedure Unmerge(Menu: TMainMenu);

    procedure PopulateOle2Menu(SharedMenu: HMENU; Groups: TArrayOfInteger; var Widths: TArrayOfInteger);

    procedure GetOle2AcceleratorTable(var AccelTable: HAccel; var AccelCount: Integer; Groups: TArrayOfInteger);

    procedure SetOle2MenuHandle(Handle: HMENU);

    property AutoMerge: Boolean; read write;

  end;



  TPopupAlignment = (paLeft, paRight, paCenter);



  TTrackButton = (tbRightButton, tbLeftButton);

  TMenuAnimations = (maLeftToRight, maRightToLeft, maTopToBottom, maBottomToTop, maNone);

  TMenuAnimation = set of TMenuAnimations;



  TPopupMenu = class(TMenu)

    constructor Create(AOwner: TComponent);

    procedure Popup(X, Y: Integer);

    property PopupComponent: TComponent; read write;

    property Alignment: TPopupAlignment; read write;

    property AutoPopup: Boolean; read write;

    property HelpContext: THelpContext; read write;

    property OnPopup: TNotifyEvent; read write;

    property MenuAnimation: TMenuAnimation; read write;

    property TrackButton: TTrackButton; read write;

  end;



  TComponentStateE = (csLoading, csReading, csWriting, csDestroying, csDesigning, csAncestor, csUpdating, csFixups, csFreeNotification, csInline, csDesignInstance);



  TComponentState = set of TComponentStateE;

  

  TComponent = class(TPersistent)

    function FindComponent(AName: String): TComponent;

    constructor Create(AOwner: TComponent);

    property Owner: TComponent; read write;

    property Components[Index: Integer]: TComponent; read;

    property ComponentCount: Integer; read;

    property ComponentIndex: Integer; read write;

    property ComponentState: Byte; read;

    property Name: String; read write;

    property Tag: Longint; read write;

    procedure DestroyComponents;

    procedure Destroying;

    procedure FreeNotification(AComponent: TComponent);

    procedure InsertComponent(AComponent: TComponent);

    procedure RemoveComponent(AComponent: TComponent);

    property DesignInfo: Longint; read write;

  end;



  TTimer = class(TComponent)

    property Enabled: Boolean; read write;

    property Interval: Cardinal; read write;

    property OnTimer: TNotifyEvent; read write;

  end;



  TStrings = class(TPersistent)

    function Add(S: String): Integer;

    procedure Append(S: String);

    procedure AddStrings(Strings: TStrings);

    procedure Clear;

    procedure Delete(Index: Integer);

    function IndexOf(const S: String): Integer;

    procedure Insert(Index: Integer; S: String);

    property Count: Integer; read;

    property Text: String; read write;

    property CommaText: String; read write;

    procedure LoadFromFile(FileName: String);

    procedure SaveToFile(FileName: String);

    property Strings[Index: Integer]: String; read write;

    property Objects[Index: Integer]: TObject; read write;

    procedure BeginUpdate;

    procedure EndUpdate;

    function Equals(Strings: TStrings): Boolean;

    procedure Exchange(Index1, Index2: Integer);

    function IndexOfName(Name: String): Integer;

    procedure LoadFromStream(Stream: TStream);

    procedure Move(CurIndex, NewIndex: Integer);

    procedure SaveToStream(Stream: TStream);

    procedure SetText(Text: PChar);

    property Names[Index: Integer]: String; read;

    property Values[Name: String]: String; read write;

    function AddObject(S: String; AObject: TObject): Integer;

    function GetText: PChar;

    function IndexOfObject(AObject: TObject): Integer;

    procedure InsertObject(Index: Integer; S: String; AObject: TObject);

  end;



  TAlignment = (taLeftJustify, taRightJustify, taCenter);



  THelpEvent = function (Command: Word; Data: Longint; var CallHelp: Boolean): Boolean;



  TGetStrProc = procedure(const S: String);



  TDuplicates = (dupIgnore, dupAccept, dupError);



  TOperation = (opInsert, opRemove);



  THandle = Longint;



  TNotifyEvent = procedure(Sender: TObject);



  TStringList = class(TStrings)

    function Find(S: String; var Index: Integer): Boolean;

    procedure Sort;

    property Duplicates: TDuplicates; read write;

    property Sorted: Boolean; read write;

    property OnChange: TNotifyEvent; read write;

    property OnChanging: TNotifyEvent; read write;

  end;



  THandleStream = class(TStream)

    constructor Create(AHandle: Integer);

    property Handle: Integer; read;

  end;



  TFileStream = class(THandleStream)

    constructor Create(Filename: String; Mode: Word);

  end;



  TCustomMemoryStream = class(TStream)

    procedure SaveToStream(Stream: TStream);

    procedure SaveToFile(FileName: String);

  end;



  TMemoryStream = class(TCustomMemoryStream)

    procedure Clear;

    procedure LoadFromStream(Stream: TStream);

    procedure LoadFromFile(FileName: String);

    procedure SetSize(NewSize: Longint);

  end;



  TResourceStream = class(TCustomMemoryStream)

    constructor Create(Instance: THandle; ResName: String; ResType: Integer);

    constructor CreateFromID(Instance: THandle; ResID: Integer; ResType: Integer);

  end;



  TGraphicsObject = class(TPersistent)

    property OnChange: TNotifyEvent; read write;

  end;



  TFontStyle = (fsBold, fsItalic, fsUnderline, fsStrikeOut);



  TFontStyles = set of TFontStyle;



  TFontPitch = (fpDefault, fpVariable, fpFixed);



  TFont = class(TGraphicsObject)

    constructor Create;

    property Handle: Integer; read;

    property Color: Integer; read write;

    property Height: Integer; read write;

    property Name: String; read write;

    property Pitch: Byte; read write;

    property Size: Integer; read write;

    property PixelsPerInch: Integer; read write;

    property Style: TFontStyles; read write;

  end;



  TRect = record

    Left, Top, Right, Bottom: Integer;

  end;

  

  TPenMode = (pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, pmMergePenNot, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge, pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor);



  TPenStyle = (psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame);



  TPen = class(TGraphicsObject)

    constructor Create;

    property Color: TColor; read write;

    property Mode: TPenMode; read write;

    property Style: TPenStyle; read write;

    property Width: Integer; read write;

  end;



  TBrushStyle = (bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal, bsBDiagonal, bsCross, bsDiagCross);



  TColor = integer;



  HBITMAP = Integer;



  HPALETTE = Integer;



  TBrush = class(TGraphicsObject)

    constructor Create;

    property Color: TColor; read write;

    property Style: TBrushStyle; read write;

  end;



  TCanvas = class(TPersistent)

    procedure Arc(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);

    procedure Chord(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);

    procedure Draw(X, Y: Integer; Graphic: TGraphic);

    procedure Ellipse(X1, Y1, X2, Y2: Integer);

    procedure FillRect(const Rect: TRect);

    procedure FloodFill(X, Y: Integer; Color: TColor; FillStyle: Byte);

    procedure LineTo(X, Y: Integer);

    procedure MoveTo(X, Y: Integer);

    procedure Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);

    procedure Rectangle(X1, Y1, X2, Y2: Integer);

    procedure Refresh;

    procedure RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer);

    function TextHeight(Text: String): Integer;

    procedure TextOut(X, Y: Integer; Text: String);

    function TextWidth(Text: String): Integer;

    property Handle: Integer; read write;

    property Pixels: Integer; read write;

    property Brush: TBrush; read;

    property CopyMode: Byte; read write;

    property Font: TFont; read;

    property Pen: TPen; read;

  end;



  TGraphic = class(TPersistent)

    procedure LoadFromFile(const Filename: String);

    procedure SaveToFile(const Filename: String);

    property Empty: Boolean; read write;

    property Height: Integer; read write;

    property Modified: Boolean; read write;

    property Width: Integer; read write;

    property OnChange: TNotifyEvent; read write;

  end;



  TBitmap = class(TGraphic)

    procedure LoadFromStream(Stream: TStream);

    procedure SaveToStream(Stream: TStream);

    property Canvas: TCanvas; read write;

    property Handle: HBITMAP; read write;

    procedure Dormant;

    procedure FreeImage;

    procedure LoadFromClipboardFormat(AFormat: Word; AData: THandle; APalette: HPALETTE);

    procedure LoadFromResourceName(Instance: THandle; const ResName: String);

    procedure LoadFromResourceID(Instance: THandle; ResID: Integer);

    function ReleaseHandle: HBITMAP;

    function ReleasePalette: HPALETTE;

    procedure SaveToClipboardFormat(var AFormat: Word; var AData: THandle; var APalette: HPALETTE);

    property Monochrome: Boolean; read write;

    property Palette: HPALETTE; read write;

    property IgnorePalette: Boolean; read write;

    property TransparentColor: TColor; read write;

  end;



  HICON = Integer;



  TIcon = class(TGraphic)

    procedure LoadFromStream(Stream: TStream);

    procedure SaveToStream(Stream: TStream);

    function ReleaseHandle: HICON;

    property Handle: HICON; read write;

  end;



  TNewIcon = class(TGraphic)

    procedure LoadFromStream(Stream: TStream);

    procedure SaveToStream(Stream: TStream);

    procedure LoadFromResourceName(Instance: THandle; const ResName: String);

    procedure LoadFromResourceID(Instance: THandle; ResID: Integer);

    function ReleaseHandle: HICON;

    property Handle: HICON; read write;

  end;



  TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient);



  TDragMode = (dmManual, dmAutomatic);

  

  TDragState = (dsDragEnter, dsDragLeave, dsDragMove);

  

  TDragKind = (dkDrag, dkDock);

  

  TDragOverEvent = procedure(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);

  

  TDragDropEvent = procedure(Sender, Source: TObject;X, Y: Integer);

  

  TEndDragEvent = procedure(Sender, Target: TObject; X, Y: Integer);



  TDragObject = class(TObject)

    function GetName: String;

    procedure HideDragImage;

    function Instance: Longint;

    procedure ShowDragImage;

  end;



  TStartDragEvent = procedure(Sender: TObject; var DragObject: TDragObject);



  TControl = class(TComponent)

    constructor Create(AOwner: TComponent);

    procedure BringToFront;

    procedure Hide;

    procedure Invalidate;

    procedure Refresh;

    procedure Repaint;

    procedure SendToBack;

    procedure Show;

    procedure Update;

    procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer);

    property Parent: TWinControl; read write;

    property Left: Integer; read write;

    property Top: Integer; read write;

    property Width: Integer; read write;

    property Height: Integer; read write;

    property Hint: String; read write;

    property Align: TAlign; read write;

    property ClientHeight: Longint; read write;

    property ClientWidth: Longint; read write;

    property ShowHint: Boolean; read write;

    property ParentShowHint: Boolean; read write;

    property Visible: Boolean; read write;

    property Enabled: Boolean; read write;

    property Cursor: Integer; read write;

    function Dragging: Boolean;

    function HasParent: Boolean;

    procedure BeginDrag(Immediate: Boolean);

    function ClientToScreen(Point: TPoint): TPoint;

    procedure EndDrag(Drop: Boolean);

    function GetTextBuf(Buffer: PChar; BufSize: Integer): Integer;

    function GetTextLen: Integer;

    procedure SetTextBuf(Buffer: PChar);

    function Perform(Msg: Cardinal; WParam, LParam: Longint): Longint;

    function ScreenToClient(Point: TPoint): TPoint;

  end;



  TWinControl = class(TControl)

    property Handle: Longint; read write;

    property Showing: Boolean; read;

    property TabOrder: Integer; read write;

    property TabStop: Boolean; read write;

    function CanFocus: Boolean;

    function Focused: Boolean;

    property Controls[Index: Integer]: TControl; read;

    property ControlCount: Integer; read;

    function HandleAllocated: Boolean;

    procedure HandleNeeded;

    procedure EnableAlign;

    procedure RemoveControl(AControl: TControl);

    procedure InsertControl(AControl: TControl);

    procedure Realign;

    procedure ScaleBy(M, D: Integer);

    procedure ScrollBy(DeltaX, DeltaY: Integer);

    procedure SetFocus;

    procedure PaintTo(DC: HDC; X, Y: Integer);

    function ContainsControl(Control: TControl): Boolean;

    procedure DisableAlign;

    procedure UpdateControlState;

    property Brush: TBrush; read;

    property HelpContext: Longint; read write;

  end;



  TGraphicControl = class(TControl)

  end;



  TCustomControl = class(TWinControl)

  end;



  TFieldChangeEvent = procedure(Sender: TObject; OldField, Value: Byte);



  TIPAddressEdit = class(TCustomControl)

    procedure SetFieldFocus(Field: Byte);

    function IsBlank: Boolean;

    property Field1Value: Byte; read write;

    property Field2Value: Byte; read write;

    property Field3Value: Byte; read write;

    property Field4Value: Byte; read write;

    property Field1Max: Byte; read write;

    property Field1Min: Byte; read write;

    property Field2Max: Byte; read write;

    property Field2Min: Byte; read write;

    property Field3Max: Byte; read write;

    property Field3Min: Byte; read write;

    property Field4Max: Byte; read write;

    property Field4Min: Byte; read write;

    property IPValue: LongWord; read write;

    property OnChange: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnFieldChange: TFieldChangeEvent; read write;

    property InitClear: Boolean; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

  end;



  TNewGroupBox = class(TCustomControl)

    property Caption: String; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property Ctl3D: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property ParentBackground: Boolean; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TScrollBarKind = (sbHorizontal, sbVertical);



  TScrollBarInc = SmallInt;



  TControlScrollBar = class(TPersistent)

    property Kind: TScrollBarKind; read;

    property ScrollPos: Integer; read;

    property Margin: Word; read write;

    property Increment: TScrollBarInc; read write;

    property Range: Integer; read write;

    property Position: Integer; read write;

    property Tracking: Boolean; read write;

    property Visible: Boolean; read write;

  end;



  TScrollingWinControl = class(TWinControl)

    procedure ScrollInView(AControl: TControl);

    property HorzScrollBar: TControlScrollBar; read write;

    property VertScrollBar: TControlScrollBar; read write;

  end;



  TIdleEvent = procedure(Sender: TObject; var Done: Boolean);



  TFormBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin);

  TBorderStyle = TFormBorderStyle;



  TWindowState = (wsNormal, wsMinimized, wsMaximized);



  TFormStyle = (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop);



  TBorderIcon = (biSystemMenu, biMinimize, biMaximize, biHelp);

  TBorderIcons = set of TBorderIcon;



  TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter, poDesktopCenter, poMainFormCenter, poOwnerFormCenter);



  TPrintScale = (poNone, poProportional, poPrintToFit);



  TCloseAction = (caNone, caHide, caFree, caMinimize);



  TCloseEvent = procedure(Sender: TObject; var Action: TCloseAction);



  TCloseQueryEvent = procedure(Sender: TObject; var CanClose: Boolean);



  TEShiftState = (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble, ssMeta, ssSuper, ssHyper, ssAltGr, ssCaps, ssNum, ssScroll, ssTriple, ssQuad);

  TShiftState = set of TEShiftState;



  TKeyEvent = procedure(Sender: TObject; var Key: Word; Shift: TShiftState);



  TKeyPressEvent = procedure(Sender: TObject; var Key: Char);



  THelpContext = Longint;



  TScrollBox = class(TScrollingWinControl)

    property BorderStyle: TBorderStyle; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property AutoScroll: Boolean; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnResize: TNotifyEvent; read write;

    property DragCursor: TCursor; read write;

    property DragMode: TDragMode; read write;

    property PopupMenu: TPopupMenu; read write;

    property Ctl3D: Boolean; read write;

    property ParentCtl3D: Boolean; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TTileMode = (tbHorizontal, tbVertical);



  TForm = class(TScrollingWinControl)

    constructor CreateNew(AOwner: TComponent);

    procedure Close;

    procedure Hide;

    procedure Show;

    function ShowModal: Integer;

    procedure Release;

    property Active: Boolean; read;

    property ActiveControl: TWinControl; read write;

    property BorderIcons: TBorderIcons; read write;

    property BorderStyle: TFormBorderStyle; read write;

    property Caption: String; read write;

    property AutoScroll: Boolean; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property FormStyle: TFormStyle; read write;

    property KeyPreview: Boolean; read write;

    property Position: TPosition; read write;

    property OnActivate: TNotifyEvent; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnClose: TCloseEvent; read write;

    property OnCloseQuery: TCloseQueryEvent; read write;

    property OnCreate: TNotifyEvent; read write;

    property OnDestroy: TNotifyEvent; read write;

    property OnDeactivate: TNotifyEvent; read write;

    property OnHide: TNotifyEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property OnResize: TNotifyEvent; read write;

    property OnShow: TNotifyEvent; read write;

    procedure ArrangeIcons;

    procedure Print;

    procedure SendCancelMode(Sender: TControl);

    property ActiveOLEControl: TWinControl; read write;

    property OleFormObject: TOLEFORMOBJECT; read write;

    property ClientHandle: Longint; read;

    property TileMode: TTileMode; read write;

    procedure Cascade;

    function CloseQuery: Boolean;

    procedure DefocusControl(Control: TWinControl; Removing: Boolean);

    procedure FocusControl(Control: TWinControl);

    procedure Next;

    procedure Previous;

    function SetFocusedControl(Control: TWinControl): Boolean;

    procedure Tile;

    property ActiveMDIChild: TForm; read;

    property Canvas: TCanvas; read;

    property DropTarget: Boolean; read write;

    property ModalResult: Longint; read write;

    property MDIChildCount: Integer; read;

    property MDIChildren[I: Integer]: TForm; read;

    property Icon: TIcon; read write;

    property Menu: TMainMenu; read write;

    property ObjectMenuItem: TMenuItem; read write;

    property PixelsPerInch: Integer; read write;

    property PrintScale: TPrintScale; read write;

    property Scaled: Boolean; read write;

    property WindowState: TWindowState; read write;

    property WindowMenu: TMenuItem; read write;

    property Ctl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDockOver: TDockOverEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnPaint: TNotifyEvent; read write;

    property DoubleBuffered: Boolean; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TMsg = record

    hwnd: HWND;

    message: LongWord;

    wParam: Longint;

    lParam: Longint;

    time: LongWord;

    pt: TPoint;

  end;



  TMessageEvent = procedure (var Msg: TMsg; var Handled: Boolean);



  TApplication = class(TComponent)

    procedure BringToFront;

    function MessageBox(Text, Caption: PChar; Flags: Word): Integer;

    procedure Minimize;

    procedure ProcessMessages;

    procedure Restore;

    procedure Terminate;

    property Active: Boolean; read;

    property ExeName: String; read;

    property Handle: Longint; read;

    property UpdateFormatSettings: Boolean; read write;

    property Hint: String; read write;

    property MainForm: TForm; read;

    property ShowHint: Boolean; read write;

    property ShowMainForm: Boolean; read write;

    property Terminated: Boolean; read;

    property Title: String; read write;

    property OnActivate: TNotifyEvent; read write;

    property OnDeactivate: TNotifyEvent; read write;

    property OnIdle: TIdleEvent; read write;

    property OnHint: TNotifyEvent; read write;

    property OnMinimize: TNotifyEvent; read write;

    property OnRestore: TNotifyEvent; read write;

    procedure ControlDestroyed(Control: TControl);

    procedure CancelHint;

    procedure HandleException(Sender: TObject);

    procedure HandleMessage;

    procedure HideHint;

    procedure Initalize;

    procedure NormalizeTopMosts;

    procedure RestoreTopMosts;

    procedure Run;

    function HelpCommand(Command: Integer; Data: Longint): Boolean;

    function HelpContext(Context: THelpContext): Boolean;

    function HelpJump(JumpID: String): Boolean;

    property DialogHandle: Longint; read write;

    procedure CreateHandle;

    property HelpFile: String; read write;

    property HintColor: TColor; read write;

    property HintPause: Integer; read write;

    property HintShortPause: Integer; read write;

    property HintHidePause: Integer; read write;

    property Icon: TIcon; read write;

    property OnHelp: THelpEvent; read write;

    property OnMessage: TMessageEvent; read write;

  end;



  TScreen = class(TComponent)

    property ActiveControl: TWinControl; read;

    property ActiveForm: TForm; read;

    property Cursor: TCursor; read write;

    property Cursors[Index: Integer]: Longword; read write;

    property FormCount: Integer; read;

    property Forms[Index: Integer]: TForm; read;

    property Fonts: TStrings; read;

    property Height: Integer; read;

    property Width: Integer; read;

    property PixelsPerInch: Integer; read;

    property OnActiveControlChange: TNotifyEvent; read write;

    property OnActiveFormChange: TNotifyEvent; read write;

  end;



  TCustomLabel = class(TGraphicControl)

  end;



  TMouseButton = (mbLeft, mbRight, mbMiddle);



  TMouseEvent = procedure (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

  

  TMouseMoveEvent = procedure(Sender: TObject; Shift: TShiftState; X, Y: Integer);



  HWND = Longint;



  TAnchorKind = (akTop, akLeft, akRight, akBottom);

  TAnchors = set of TAnchorKind;



  TModalResult = Integer;



  TCursor = Integer;



  TPoint = record

    x, y: Longint;

  end;



  TTextLayout = (tlTop, tlCenter, tlBottom);



  TLabel = class(TCustomLabel)

    property Alignment: TAlignment; read write;

    property AutoSize: Boolean; read write;

    property Caption: String; read write;

    property Color: TColor; read write;

    property FocusControl: TWinControl; read write;

    property Font: TFont; read write;

    property Layout: TTextLayout; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property Transparent: Boolean; read write;

    property WordWrap: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property ShowAccelChar: Boolean; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TCustomEdit = class(TWinControl)

    procedure Clear;

    procedure ClearSelection;

    procedure SelectAll;

    property Modified: Boolean; read write;

    property SelLength: Integer; read write;

    property SelStart: Integer; read write;

    property SelText: String; read write;

    property Text: String; read write;

    procedure CopyToClipboard;

    procedure CutToClipboard;

    procedure PasteFromClipboard;

    function GetSelTextBuf(Buffer: PChar; BufSize: Integer): Integer;

    procedure SetSelTextBuf(Buffer: PChar);

  end;



  TEditCharCase = (ecNormal, ecUpperCase, ecLowerCase);



  TEdit = class(TCustomEdit)

    property AutoSelect: Boolean; read write;

    property AutoSize: Boolean; read write;

    property BorderStyle: TBorderStyle; read write;

    property CharCase: TEditCharCase; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property HideSelection: Boolean; read write;

    property MaxLength: Integer; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property PasswordChar: Char; read write;

    property ReadOnly: Boolean; read write;

    property Text: String; read write;

    property OnChange: TNotifyEvent; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property Ctl3D: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property OEMConvert: Boolean; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewEdit = class(TEdit)

  end;



  TCustomMemo = class(TCustomEdit)

    property Lines: TStrings; read write;

  end;



  TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth);



  TMemo = class(TCustomMemo)

    property Alignment: TAlignment; read write;

    property BorderStyle: TBorderStyle; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property HideSelection: Boolean; read write;

    property MaxLength: Integer; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property ReadOnly: Boolean; read write;

    property ScrollBars: TScrollStyle; read write;

    property WantReturns: Boolean; read write;

    property WantTabs: Boolean; read write;

    property WordWrap: Boolean; read write;

    property OnChange: TNotifyEvent; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property Ctl3D: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property OEMConvert: Boolean; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewMemo = class(TMemo)

  end;



  TCustomComboBox = class(TWinControl)

    property DroppedDown: Boolean; read write;

    property Items: TStrings; read write;

    property ItemIndex: Integer; read write;

    procedure Clear;

    procedure SelectAll;

    property Canvas: TCanvas; read;

    property SelLength: Integer; read write;

    property SelStart: Integer; read write;

    property SelText: String; read write;

  end;



  TComboBoxStyle = (csDropDown, csSimple, csDropDownList, csOwnerDrawFixed, csOwnerDrawVariable);



  TDrawItemEvent = procedure(Control: TWinControl; Index: Integer; Rect: TRect; State: Byte);



  TMeasureItemEvent = procedure(Control: TWinControl; Index: Integer; var Height: Integer);



  TComboBox = class(TCustomComboBox)

    property Style: TComboBoxStyle; read write;

    property Color: TColor; read write;

    property DropDownCount: Integer; read write;

    property Font: TFont; read write;

    property MaxLength: Integer; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property Sorted: Boolean; read write;

    property Text: String; read write;

    property OnChange: TNotifyEvent; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnDropDown: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property Ctl3D: Boolean; read write;

    property DragMode: TDragMode; read write;

    property DragCursor: Longint; read write;

    property ItemHeight: Integer; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnDrawItem: TDrawItemEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMeasureItem: TMeasureItemEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

  end;



  TNewComboBox = class(TComboBox)

  end;



  TButtonControl = class(TWinControl)

  end;



  TButton = class(TButtonControl)

    procedure Click;

    property Cancel: Boolean; read write;

    property Caption: String; read write;

    property Default: Boolean; read write;

    property Font: TFont; read write;

    property ModalResult: Longint; read write;

    property ParentFont: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewButton = class(TButton)

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TCustomCheckBox = class(TButtonControl)

  end;



  TCheckBoxState = (cbUnchecked, cbChecked, cbGrayed);



  TCheckBox = class(TCustomCheckBox)

    property Alignment: TAlignment; read write;

    property AllowGrayed: Boolean; read write;

    property Caption: String; read write;

    property Checked: Boolean; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property State: TCheckBoxState; read write;

    property OnClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property Ctl3D: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewCheckBox = class(TCheckBox)

    property ParentBackground: Boolean; read write;

  end;



  TRadioButton = class(TButtonControl)

    property Alignment: TAlignment; read write;

    property Caption: String; read write;

    property Checked: Boolean; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property Ctl3D: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewRadioButton = class(TRadioButton)

    property ParentBackground: Boolean; read write;

  end;



  TCustomListBox = class(TWinControl)

    property Items: TStrings; read write;

    property ItemIndex: Integer; read write;

    property SelCount: Integer; read;

    property Selected[Index: Integer]: Boolean; read write;

    procedure Clear;

    function ItemAtPos(Pos: TPoint; Existing: Boolean): Integer;

    function ItemRect(Index: Integer): TRect;

    property Canvas: TCanvas; read;

    property TopIndex: Integer; read write;

  end;



  TListBoxStyle = (lbStandard, lbOwnerDrawFixed, lbOwnerDrawVariable);



  TScrollCode = (scLineUp, scLineDown, scPageUp, scPageDown, scPosition, scTrack, scTop, scBottom, scEndScroll);



  TScrollEvent = procedure(Sender: TObject; ScrollCode: TScrollCode;var ScrollPos: Integer);



  TEOwnerDrawState = (odSelected, odGrayed, odDisabled, odChecked, odFocused, odDefault, odHotLight, odInactive, odNoAccel, odNoFocusRect, odReserved1, odReserved2, odComboBoxEdit);



  TOwnerDrawState = set of TEOwnerDrawState;

  

  TListBox = class(TCustomListBox)

    property BorderStyle: TBorderStyle; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property MultiSelect: Boolean; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property Sorted: Boolean; read write;

    property Style: TListBoxStyle; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property Columns: Integer; read write;

    property Ctl3D: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property ExtendedSelect: Boolean; read write;

    property IntegralHeight: Boolean; read write;

    property ItemHeight: Integer; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property TabWidth: Integer; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnDrawItem: TDrawItemEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMeasureItem: TMeasureItemEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewListBox = class(TListBox)

  end;



  TScrollBar = class(TWinControl)

    property Kind: TScrollBarKind; read write;

    property Max: Integer; read write;

    property Min: Integer; read write;

    property Position: Integer; read write;

    property OnChange: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    procedure SetParams(APosition, AMin, AMax: Integer);

    property Ctl3D: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property LargeChange: TScrollBarInc; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property SmallChange: TScrollBarInc; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property OnScroll: TScrollEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

  end;



  TTrackBarOrientation = (trHorizontal, trVertical);



  TTickMark = (tmBottomRight, tmTopLeft, tmBoth);



  TTickStyle = (tsNone, tsAuto, tsManual);



  TTrackBar = class(TWinControl)

    procedure SetTick(Value: Integer);

    property LineSize: Integer; read write;

    property Max: Integer; read write;

    property Min: Integer; read write;

    property Orientation: TTrackBarOrientation; read write;

    property PageSize: Integer; read write;

    property Frequency: Integer; read write;

    property Position: Integer; read write;

    property SelEnd: Integer; read write;

    property SelStart: Integer; read write;

    property TickMarks: TTickMark; read write;

    property TickStyle: TTickStyle; read write;

    property OnChange: TNotifyEvent; read write;

  end;



  TUDAlignButton = (udLeft, udRight);



  TUDOrientation = (udHorizontal, udVertical);



  TUDBtnType = (btNext, btPrev);



  TUDClickEvent = procedure(Sender: TObject; Button: TUDBtnType);



  TUDChangingEvent = procedure(Sender: TObject; var AllowChange: Boolean);



  TCustomUpDown = class(TWinControl)

  end;



  TUpDown = class(TCustomUpDown)

    property AlignButton: TUDAlignButton; read write;

    property Associate: TWinControl; read write;

    property ArrowKeys: Boolean; read write;

    property Min: SmallInt; read write;

    property Max: SmallInt; read write;

    property Increment: Integer; read write;

    property Orientation: TUDOrientation; read write;

    property Position: SmallInt; read write;

    property Thousands: Boolean; read write;

    property Wrap: Boolean; read write;

    property OnChanging: TUDChangingEvent; read write;

    property OnClick: TUDClickEvent; read write;

  end;



  THKModifier = (hkShift, hkCtrl, hkAlt, hkExt);



  THKModifiers = set of THKModifier;



  THKInvalidKey = (hcNone, hcShift, hcCtrl, hcAlt, hcShiftCtrl, hcShiftAlt, hcCtrlAlt, hcShiftCtrlAlt);



  THKInvalidKeys = set of THKInvalidKey;



  TCustomHotKey = class(TWinControl)

  end;



  THotKey = class(TCustomHotKey)

    property Color: TColor; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property AutoSize: Boolean; read write;

    property HotKey: TShortCut; read write;

    property InvalidKeys: THKInvalidKeys; read write;

    property Modifiers: THKModifiers; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TCustomTabControl = class(TWinControl)

  end;



  TTabChangingEvent = procedure(Sender: TObject; var AllowChange: Boolean);



  TTabControl = class(TCustomTabControl)

    property ParentFont: Boolean; read write;

    property Font: TFont; read write;

    property DisplayRect: TRect; read;

    property MultiLine: Boolean; read write;

    property TabHeight: Smallint; read write;

    property TabIndex: Integer; read write;

    property Tabs: TStrings; read write;

    property TabWidth: Smallint; read write;

    property OnChange: TNotifyEvent; read write;

    property OnChanging: TTabChangingEvent; read write;

  end;



  TTabSheet = class(TWinControl)

    property ParentFont: Boolean; read write;

    property Font: TFont; read write;

    property PageControl: TPageControl; read write;

    property Caption: String; read write;

    property TabIndex: Integer; read;

    property PageIndex: Integer; read write;

    property TabVisible: Boolean; read write;

  end;



  TPageControl = class(TCustomTabControl)

    property ParentFont: Boolean; read write;

    property Font: TFont; read write;

    function FindNextPage(CurPage: TTabSheet; GoForward, CheckTabVisible: Boolean): TTabSheet;

    procedure SelectNextPage(GoForward: Boolean);

    property PageCount: Integer; read;

    property Pages[Index: Integer]: TTabSheet; read;

    property ActivePage: TTabSheet; read write;

    property MultiLine: Boolean; read write;

    property TabHeight: Smallint; read write;

    property TabWidth: Smallint; read write;

    property OnChange: TNotifyEvent; read write;

    property OnChanging: TTabChangingEvent; read write;

  end;



  TShapeType = (stRectangle, stSquare, stRoundRect, stRoundSquare, stEllipse, stCircle);



  TBevelShape = (bsBox, bsFrame, bsTopLine, bsBottomLine, bsLeftLine, bsRightLine, bsSpacer);



  TBevelStyle = (bsLowered, bsRaised);



  TBevel = class(TGraphicControl)

    property Shape: TBevelShape; read write;

    property Style: TBevelStyle; read write;

  end;



  TShape = class(TGraphicControl)

    property Brush: TBrush; read write;

    property Pen: TPen; read write;

    property Shape: TShapeType; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TPaintBox = class(TGraphicControl)

    property Canvas: TCanvas; read;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnPaint: TNotifyEvent; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TCustomPanel = class(TCustomControl)

  end;



  TPanelBevel = (bvNone, bvLowered, bvRaised, bvSpace);



  TBevelWidth = Longint;



  TBorderWidth = Longint;



  TSectionEvent = procedure(Sender: TObject; ASection, AWidth: Integer);



  TPanel = class(TCustomPanel)

    property Alignment: TAlignment; read write;

    property BevelInner: TPanelBevel; read write;

    property BevelOuter: TPanelBevel; read write;

    property BevelWidth: TBevelWidth; read write;

    property BorderWidth: TBorderWidth; read write;

    property BorderStyle: TBorderStyle; read write;

    property Caption: String; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property Ctl3D: Boolean; read write;

    property Locked: Boolean; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnResize: TNotifyEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property ParentBackground: Boolean; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  THeaderSectionStyle = (hsText, hsOwnerDraw);



  THeaderSection = class(TCollectionItem)

    property Left: Integer; read;

    property Right: Integer; read;

    property Alignment: TAlignment; read write;

    property AllowClick: Boolean; read write;

    property MaxWidth: Integer; read write;

    property MinWidth: Integer; read write;

    property Style: THeaderSectionStyle; read write;

    property Text: string; read write;

    property Width: Integer; read write;

  end;



  THeaderSections = class(TCollection)

    constructor Create(HeaderControl: THeaderControl);

    function Add: THeaderSection;

    Property Items[Index: Integer]: THeaderSection; read write;

  end;



  TSectionTrackState = (tsTrackBegin, tsTrackMove, tsTrackEnd);



  TDrawSectionEvent = procedure(HeaderControl: THeaderControl; Section: THeaderSection; const Rect: TRect; Pressed: Boolean);



  TSectionNotifyEvent = procedure(HeaderControl: THeaderControl; Section: THeaderSection);



  TSectionTrackEvent = procedure(HeaderControl: THeaderControl; Section: THeaderSection; Width: Integer; State: TSectionTrackState);



  THeaderControl = class(TWinControl)

    property Canvas: TCanvas; read;

    property Sections: THeaderSections; read write;

    property OnDrawSection: TDrawSectionEvent; read write;

    property OnResize: TNotifyEvent; read write;

    property OnSectionClick: TSectionNotifyEvent; read write;

    property OnSectionResize: TSectionNotifyEvent; read write;

    property OnSectionTrack: TSectionTrackEvent; read write;

  end;



  HTreeItem = Longword;



  TTVCompare = function(lParam1, lParam2, lParamSort: Longint): Integer;



  TNodeAttachMode = (naAdd, naAddFirst, naAddChild, naAddChildFirst, naInsert);



  THitTest = (htAbove, htBelow, htNowhere, htOnItem, htOnButton, htOnIcon, htOnIndent, 

       htOnLabel, htOnRight, htOnStateIcon, htToLeft, htToRight);



  THitTests = set of THitTest;



  TSortType = (stNone, stData, stText, stBoth);    



  TResType = (rtBitmap, rtCursor, rtIcon);



  HImageList = THandle;



  TDrawingStyle = (dsFocus, dsSelected, dsNormal, dsTransparent);



  TImageType = (itImage, itMask);



  TTreeNode = class(TPersistent)

    constructor Create(AOwner: TTreeNodes);

    function AlphaSort: Boolean;

    procedure Collapse(Recurse: Boolean);

    function CustomSort(SortProc: TTVCompare; Data: Longint): Boolean;

    procedure Delete;

    procedure DeleteChildren;

    function DisplayRect(TextOnly: Boolean): TRect;

    function EditText: Boolean;

    procedure EndEdit(Cancel: Boolean);

    procedure Expand(Recurse: Boolean);

    function GetFirstChild: TTreeNode;

    function GetHandle: HWND;

    function GetLastChild: TTreeNode;

    function GetNext: TTreeNode;

    function GetNextChild(Value: TTreeNode): TTreeNode;

    function GetNextSibling: TTreeNode;

    function GetNextVisible: TTreeNode;

    function GetPrev: TTreeNode;

    function GetPrevChild(Value: TTreeNode): TTreeNode;

    function GetPrevSibling: TTreeNode;

    function GetPrevVisible: TTreeNode;

    function HasAsParent(Value: TTreeNode): Boolean;

    function IndexOf(Value: TTreeNode): Integer;

    procedure MakeVisible;

    procedure MoveTo(Destination: TTreeNode; Mode: TNodeAttachMode);

    property AbsoluteIndex: Integer; read;

    property Count: Integer; read;

    property Cut: Boolean; read write;

    property Data: TObject; read write;

    property Deleting: Boolean; read;

    property Focused: Boolean; read write;

    property DropTarget: Boolean; read write;

    property Selected: Boolean; read write;

    property Expanded: Boolean; read write;

    property Handle: HWND; read;

    property HasChildren: Boolean; read write;

    property ImageIndex: Integer; read write;

    property Index: Integer; read;

    property IsVisible: Boolean; read;

    property Item[Index: Integer]: TTreeNode; read write;

    property ItemId: HTreeItem; read;

    property Level: Integer; read;

    property OverlayIndex: Integer; read write;

    property Parent: TTreeNode; read;

    property SelectedIndex: Integer; read write;

    property StateIndex: Integer; read write;

    property Text: String; read write;

    property Owner: TTreeNodes; read;

    property TreeView: TCustomTreeView; read;

  end;



  TTreeNodes = class(TPersistent)

    constructor Create(AOwner: TCustomTreeView);

    function AddChildFirst(Node: TTreeNode; const S: String): TTreeNode;

    function AddChild(Node: TTreeNode; const S: String): TTreeNode;

    function AddChildObjectFirst(Node: TTreeNode; const S: String; Obj: TObject): TTreeNode;

    function AddChildObject(Node: TTreeNode; const S: String; Obj: TObject): TTreeNode;

    function AddFirst(Node: TTreeNode; const S: String): TTreeNode;

    function Add(Node: TTreeNode; const S: String): TTreeNode;

    function AddObjectFirst(Node: TTreeNode; const S: String; Obj: TObject): TTreeNode;

    function AddObject(Node: TTreeNode; const S: String; Obj: TObject): TTreeNode;

    procedure BeginUpdate;

    procedure Clear;

    procedure Delete(Node: TTreeNode);

    procedure EndUpdate;

    function GetFirstNode: TTreeNode;

    function GetNode(ItemId: HTreeItem): TTreeNode;

    function Insert(Node: TTreeNode; const S: String): TTreeNode;

    function InsertObject(Node: TTreeNode; const S: String; Obj: TObject): TTreeNode;

    property Count: Integer; read;

    property Handle: HWND; read;

    property Item[Index: Integer]: TTreeNode; read;

    property Owner: TCustomTreeView; read;

  end;



  TTVChangingEvent = procedure(Sender: TObject; Node: TTreeNode; var AllowChange: Boolean);



  TTVChangedEvent = procedure(Sender: TObject; Node: TTreeNode);



  TTVEditingEven = procedure(Sender: TObject; Node: TTreeNode; var AllowEdit: Boolean);



  TTVEditedEvent = procedure(Sender: TObject; Node: TTreeNode; var S: String);



  TTVExpandingEvent = procedure(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean);



  TTVCollapsingEvent = procedure(Sender: TObject; Node: TTreeNode; var AllowCollapse: Boolean);



  TTVExpandedEvent = procedure(Sender: TObject; Node: TTreeNode);



  TTVCompareEvent = procedure(Sender: TObject; Node1, Node2: TTreeNode; Data: Integer; var Compare: Integer);



  TCustomImageList = class(TComponent)

    Constructor CreateSize(AWidth, AHeight: Integer);

    function Add(Image, Mask: TBitmap): Integer;

    function AddIcon(Image: TIcon): Integer;

    procedure AddImages(Value: TCustomImageList);

    function AddMasked(Image: TBitmap; MaskColor: TColor): Integer;

    procedure Clear;

    procedure Delete(Index: Integer);

    procedure Draw(Canvas: TCanvas; X, Y, Index: Integer);

    procedure DrawOverlay(Canvas: TCanvas; X, Y: Integer; ImageIndex: Integer; Overlay: Byte);

    function FileLoad(ResType: TResType; Name: String; MaskColor: TColor): Boolean;

    procedure GetBitmap(Index: Integer; Image: TBitmap);

    function GetHotSpot: TPoint;

    procedure GetIcon(Index: Integer; Image: TIcon);

    function GetImageBitmap: HBITMAP;

    function GetMaskBitmap: HBITMAP;

    function GetResource(ResType: TResType; Name: String; Width: Integer; LoadFlags: TLoadResources; MaskColor: TColor): Boolean;

    function HandleAllocated: Boolean;

    procedure Insert(Index: Integer; Image, Mask: TBitmap);

    procedure InsertIcon(Index: Integer; Image: TIcon);

    procedure InsertMasked(Index: Integer; Image: TBitmap; MaskColor: TColor);

    procedure Move(CurIndex, NewIndex: Integer);

    function Overlay(ImageIndex: Integer; Overlay: TOverlay): Boolean;

    function ResourceLoad(ResType: TResType; Name: String; MaskColor: TColor): Boolean;

    procedure Replace(Index: Integer; Image, Mask: TBitmap);

    procedure ReplaceIcon(Index: Integer; Image: TIcon);

    procedure ReplaceMasked(Index: Integer; NewImage: TBitmap; MaskColor: TColor);

    property Count: Integer; read;

    property Handle: HImageList; read write;

  end;



  TImageList = class(TCustomImageList)

    property BlendColor: TColor; read write;

    property BkColor: TColor; read write;

    property AllocBy: Integer; read write;

    property DrawingStyle: TDrawingStyle; read write;

    property Height: Integer; read write;

    property ImageType: TImageType; read write;

    property Masked: Boolean; read write;

    property OnChange: TNotifyEvent; read write;

    property ShareImages: Boolean; read write;

    property Width: Integer; read write;

  end;



  TCustomTreeView = class(TWinControl)

    function AlphaSort: Boolean;

    function CustomSort(SortProc: TTVCompare; Data: Longint): Boolean;

    procedure FullCollapse;

    procedure FullExpand;

    function GetHitTestInfoAt(X, Y: Integer): THitTests;

    function GetNodeAt(X, Y: Integer): TTreeNode;

    function IsEditing: Boolean;

    procedure LoadFromFile(const FileName: String);

    procedure LoadFromStream(Stream: TStream);

    procedure SaveToFile(const FileName: String);

    procedure SaveToStream(Stream: TStream);

    property DropTarget: TTreeNode; read write;

    property Selected: TTreeNode; read write;

    property TopItem: TTreeNode; read write;

  end;



  TTreeView = class(TCustomTreeView)

    property ShowButtons: Boolean; read write;

    property BorderStyle: TBorderStyle; read write;

    property DragCursor: TCursor; read write;

    property ShowLines: Boolean; read write;

    property ShowRoot: Boolean; read write;

    property ReadOnly: Boolean; read write;

    property DragMode: TDragMode; read write;

    property HideSelection: Boolean; read write;

    property Indent: Integer; read write;

    property Items: TTreeNodes; read write;

    property OnEditing: TTVEditingEvent; read write;

    property OnEdited: TTVEditedEvent; read write;

    property OnExpanding: TTVExpandingEvent; read write;

    property OnExpanded: TTVExpandedEvent; read write;

    property OnCollapsing: TTVCollapsingEvent; read write;

    property OnCompare: TTVCompareEvent; read write;

    property OnCollapsed: TTVExpandedEvent; read write;

    property OnChanging: TTVChangingEvent; read write;

    property OnChange: TTVChangedEvent; read write;

    property OnDeletion: TTVExpandedEvent; read write;

    property OnGetImageIndex: TTVExpandedEvent; read write;

    property OnGetSelectedIndex: TTVExpandedEvent; read write;

    property Font: TFont; read write;

    property Color: TColor; read write;

    property ParentColor: Boolean; read write;

    property ParentCtl3D: Boolean; read write;

    property Ctl3D: Boolean; read write;

    property SortType: TSortType; read write;

    property OnClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property PopupMenu: TPopupMenu; read write;

    property ParentFont: Boolean; read write;

    property Images: TImageList; read write;

    property StateImages: TImageList; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TDisplayCode = (drBounds, drIcon, drLabel, drSelectBounds);



  TListItem = class(TPersistent)

    constructor Create(AOwner: TListItems);

    procedure CancelEdit;

    procedure Delete;

    function DisplayRect(Code: TDisplayCode): TRect;

    function EditCaption: Boolean;

    function GetPosition: TPoint;

    procedure MakeVisible(PartialOK: Boolean);

    procedure Update;

    procedure SetPosition(const Value: TPoint);

    property Caption: String; read write;

    property Cut: Boolean; read write;

    property Data: TObject; read write;

    property DropTarget: Boolean; read write;

    property Focused: Boolean; read write;

    property Handle: HWND; read;

    property ImageIndex: Integer; read write;

    property Index: Integer; read;

    property Left: Integer; read write;

    property OverlayIndex: Integer; read write;

    property Selected: Boolean; read write;

    property StateIndex: Integer; read write;

    property SubItems: TStrings; read write;

    property Top: Integer; read write;

    property Owner: TListItems; read;

    property ListView: TCustomListView; read;

  end;



  TListItems = class(TPersistent)

    constructor Create(AOwner: TCustomListView);

    function Add: TListItem;

    procedure BeginUpdate;

    procedure Clear;

    procedure Delete(Index: Integer);

    procedure EndUpdate;

    function IndexOf(Value: TListItem): Integer;

    function Insert(Index: Integer): TListItem;

    property Count: Integer; read;

    property Handle: HWND; read;

    property Item[Index: Integer]: TListItem; read write;

    property Owner: TCustomListView; read;

  end;



  TListColumn = class(TCollectionItem)

    property WidthType: Integer; read;

    property Alignment: TAlignment; read write;

    property Caption: String; read write;

    property Width: Integer; read write;

  end;



  TListColumns = class(TCollection)

    constructor Create(AOwner: TCustomListView);

    function Add: TListColumn;

    property Items[Index: Integer]: TListColumn; read write;

    property Owner: TCustomListView; read;

  end;



  TIconArrangement = (iaTop, iaLeft);



  TIconOptions = class(TPersistent)

    constructor Create(AOwner: TCustomListView);

    property Arrangement: TIconArrangement; read write;

    property AutoArrange: Boolean; read write;

    property WrapText: Boolean; read write;

  end;



  TListArrangement = (arAlignBottom, arAlignLeft, arAlignRight, arAlignTop, arDefault, arSnapToGrid);



  TSearchDirection = (sdLeft, sdRight, sdAbove, sdBelow, sdAll);



  TViewStyle = (vsIcon, vsSmallIcon, vsList, vsReport);



  TItemState = (isNone, isCut, isDropHilited, isFocused, isSelected);



  TItemStates = set of TItemState;



  TItemChange = (ctText, ctImage, ctState);



  TLVCompare = function(lParam1, lParam2, lParamSort: Integer): Integer;



  TLVDeletedEvent = procedure(Sender: TObject; Item: TListItem);



  TLVEditingEvent = procedure(Sender: TObject; Item: TListItem; var AllowEdit: Boolean);



  TLVEditedEvent = procedure(Sender: TObject; Item: TListItem; var S: String);



  TLVChangeEvent = procedure(Sender: TObject; Item: TListItem; Change: TItemChange);



  TLVChangingEvent = procedure(Sender: TObject; Item: TListItem; Change: TItemChange; var AllowChange: Boolean);



  TLVColumnClickEvent = procedure(Sender: TObject; Column: TListColumn);



  TLVCompareEvent = procedure(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);



  TCustomListView = class(TWinControl)

    function AlphaSort: Boolean;

    procedure Arrange(Code: TListArrangement);

    function FindCaption(StartIndex: Integer; Value: String; Partial, Inclusive, Wrap: Boolean): TListItem;

    function FindData(StartIndex: Integer; Value: TObject; Inclusive, Wrap: Boolean): TListItem;

    function GetItemAt(X, Y: Integer): TListItem;

    function GetNearestItem(Point: TPoint; Direction: TSearchDirection): TListItem;

    function GetNextItem(StartItem: TListItem; Direction: TSearchDirection; States: TItemStates): TListItem;

    function GetSearchString: String;

    function IsEditing: Boolean;

    procedure Scroll(DX, DY: Integer);

    property Column[Index: Integer]: TListColumn; read;

    property DropTarget: TListItem; read write;

    property ItemFocused: TListItem; read write;

    property SelCount: Integer; read;

    property Selected: TListItem; read write;

    function CustomSort(SortProc: TLVCompare; lParam: Longint): Boolean;

    function StringWidth(S: String): Integer;

    procedure UpdateItems(FirstIndex, LastIndex: Integer);

    property TopItem: TListItem; read;

    property ViewOrigin: TPoint; read;

    property VisibleRowCount: Integer; read;

    property BoundingRect: TRect; read;

  end;



  TListView = class(TCustomListView)

    property BorderStyle: TBorderStyle; read write;

    property Color: TColor; read write;

    property ColumnClick: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property Columns: TListColumns; read write;

    property Ctl3D: Boolean; read write;

    property DragMode: TDragMode; read write;

    property ReadOnly: Boolean; read write;

    property Font: TFont; read write;

    property HideSelection: Boolean; read write;

    property IconOptions: TIconOptions; read write;

    property Items: TListItems; read write;

    property AllocBy: Integer; read write;

    property MultiSelect: Boolean; read write;

    property OnChange: TLVChangeEvent; read write;

    property OnChanging: TLVChangingEvent; read write;

    property OnColumnClick: TLVColumnClickEvent; read write;

    property OnCompare: TLVCompareEvent; read write;

    property OnDeletion: TLVDeletedEvent; read write;

    property OnEdited: TLVEditedEvent; read write;

    property OnEditing: TLVEditingEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnInsert: TLVDeletedEvent; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property DragCursor: TCursor; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property PopupMenu: TPopupMenu; read write;

    property ShowColumnHeaders: Boolean; read write;

    property SortType: TSortType; read write;

    property ViewStyle: TViewStyle; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property LargeImages: TImageList; read write;

    property SmallImages: TImageList; read write;

    property StateImages: TImageList; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TStatusPanelStyle = (psText, psOwnerDraw);



  TStatusPanelBevel = (pbNone, pbLowered, pbRaised);



  TStatusPanel = class(TCollectionItem)

    property Alignment: TAlignment; read write;

    property Bevel: TStatusPanelBevel; read write;

    property Style: TStatusPanelStyle; read write;

    property Text: string; read write;

    property Width: Integer; read write;

  end;



  TStatusPanels = class(TCollection)

    constructor Create(StatusBar: TStatusBar);

    function Add: TStatusPanel;

    property Items[Index: Integer]: TStatusPanel; read write;

  end;



  TDrawPanelEvent = procedure(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);



  TStatusBar = class(TWinControl)

    property Canvas: TCanvas; read;

    property Panels: TStatusPanels; read write;

    property SimplePanel: Boolean; read write;

    property SimpleText: string; read write;

    property SizeGrip: Boolean; read write;

    property OnDrawPanel: TDrawPanelEvent; read write;

    property OnResize: TNotifyEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property DragCursor: TCursor; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property Font: TFont; read write;

    property Color: TColor; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property DragMode: TDragMode; read write;

    property ThemeBackground: Boolean; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewStaticText = class(TWinControl)

    function AdjustHeight: Integer;

    property AutoSize: Boolean; read write;

    property Caption: String; read write;

    property Color: TColor; read write;

    property FocusControl: TWinControl; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property ShowAccelChar: Boolean; read write;

    property WordWrap: Boolean; read write;

    property Transparent: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TCheckItemOperation = (coUncheck, coCheck, coCheckWithChildren);



  TItemArea = (iaOther, iaButton, iaCheckmark, iaItem, iaSubItem);

  TItemMouseMoveEvent = procedure(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);



  TNewCheckListBox = class(TCustomListBox)

    function AddCheckBox(const ACaption, ASubItem: String; ALevel: Byte; AChecked, AEnabled, AHasInternalChildren, ACheckWhenParentChecked: Boolean; AObject: TObject): Integer;

    function AddGroup(ACaption, ASubItem: String; ALevel: Byte; AObject: TObject): Integer;

    function AddRadioButton(const ACaption, ASubItem: String; ALevel: Byte; AChecked, AEnabled: Boolean; AObject: TObject): Integer;

    function AddCheckBoxEx(const ACaption, ASubItem: String; ALevel: Byte; AChecked, AEnabled, AHasInternalChildren, ACheckWhenParentChecked: Boolean; AObject: TObject; AExpanded: Boolean): Integer;

    function AddGroupEx(ACaption, ASubItem: String; ALevel: Byte; AObject: TObject; AExpanded: Boolean): Integer;

    function AddRadioButtonEx(const ACaption, ASubItem: String; ALevel: Byte; AChecked, AEnabled: Boolean; AObject: TObject; AExpanded: Boolean): Integer;

    procedure LoadBtnBmpFromBitmap(Bmp: TBitmap);

    procedure LoadBtnBmpFromFile(FileName: String);

    procedure LoadBGBmpFromBitmap(Bmp: TBitmap; OffsetX, OffsetY: Integer);

    procedure LoadBGBmpFromFile(FileName: String; OffsetX, OffsetY: Integer);

    property SubItemFontStyle[Index: Integer]: TFontStyles; read write;

    property ItemFontStyle[Index: Integer]: TFontStyles; read write;

    property TreeViewStyle: Boolean; read write;

    property Showroot: Boolean; read write;

    property ItemCount: Integer; read;

    property ItemHeightFixed: Boolean; read write;

    property OnItemMouseMove: TItemMouseMoveEvent; read write;

    property AbsItemIndex: Integer; read;

    property ItemExpanded[Index: Integer]: Boolean; read write;

    property HideSelection: Boolean; read write;

    function CheckItem(const Index: Integer; const AOperation: TCheckItemOperation): Boolean;

    property Checked[Index: Integer]: Boolean; read write;

    property State[Index: Integer]: TCheckBoxState; read;

    property ItemCaption[Index: Integer]: String; read write;

    property ItemEnabled[Index: Integer]: Boolean; read write;

    property ItemLevel[Index: Integer]: Byte; read;

    property ItemObject[Index: Integer]: TObject; read write;

    property ItemSubItem[Index: Integer]: String; read write;

    property AllowGrayed: Boolean; read write;

    property Flat: Boolean; read write;

    property MinItemHeight: Integer; read write;

    property Offset: Integer; read write;

    property OnClickCheck: TNotifyEvent; read write;

    property BorderStyle: TBorderStyle; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property Sorted: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property ShowLines: Boolean; read write;

    property WantTabs: Boolean; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property Ctl3D: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewProgressBarState = (npbsNormal, npbsError, npbsPaused);



  TNewProgressBarStyle = (npbstNormal, npbstMarquee);



  TNewProgressBar = class(TWinControl)

    property Min: Longint; read write;

    property Max: Longint; read write;

    property Position: Longint; read write;

    property State: TNewProgressBarState; read write;

    property Style: TNewProgressBarStyle; read write;

  end;



  TRichEditViewer = class(TMemo)

    property RTFText: AnsiString; write;

    property UseRichEdit: Boolean; read write;

    property ThemeBorder: Boolean; read write;

  end;



  TPasswordEdit = class(TCustomEdit)

    property AutoSelect: Boolean; read write;

    property AutoSize: Boolean; read write;

    property BorderStyle: TBorderStyle; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property HideSelection: Boolean; read write;

    property MaxLength: Integer; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property Password: Boolean; read write;

    property ReadOnly: Boolean; read write;

    property Text: String; read write;

    property OnChange: TNotifyEvent; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property CharCase: TEditCharCase; read write;

    property Ctl3D: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property OEMConvert: Boolean; read write;

    property ParentCtl3D: Boolean; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TCustomFolderTreeView = class(TWinControl)

    procedure ChangeDirectory(const Value: String; const CreateNewItems: Boolean);

    procedure CreateNewDirectory(const ADefaultName: String);

    property Directory: String; read write;

    property ShowAllFolders: Boolean; read write;

  end;



  TFolderRenameEvent = procedure(Sender: TCustomFolderTreeView; var NewName: String; var Accept: Boolean);



  TFolderTreeView = class(TCustomFolderTreeView)

    property OnChange: TNotifyEvent; read write;

    property OnRename: TFolderRenameEvent; read write;

  end;



  TStartMenuFolderTreeView = class(TCustomFolderTreeView)

    procedure SetPaths(const AUserPrograms, ACommonPrograms, AUserStartup, ACommonStartup: String);

    property OnChange: TNotifyEvent; read write;

    property OnRename: TFolderRenameEvent; read write;

  end;



  TBitmapImage = class(TGraphicControl)

    property AutoSize: Boolean; read write;

    property BackColor: TColor; read write;

    property Center: Boolean; read write;

    property Bitmap: TBitmap; read write;

    property ReplaceColor: TColor; read write;

    property ReplaceWithColor: TColor; read write;

    property Stretch: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewIconImage = class(TGraphicControl)

    property AutoSize: Boolean; read write;

    property BackColor: TColor; read write;

    property Center: Boolean; read write;

    property Icon: TNewIcon; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property PopupMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewSpeedButtonLayout = (blGlyphLeft, blGlyphRight, blGlyphTop, blGlyphBottom);



  TNewSpeedButtonStyle = (nsbButton, nsbDropDown);



  TNewSpeedButton = class(TGraphicControl)

    property AllowAllUp: Boolean; read write;

    property GroupIndex: Integer; read write;

    property Down: Boolean; read write;

    property Caption: String; read write;

    property Enabled: Boolean; read write;

    property Flat: Boolean; read write;

    property Font: TFont; read write;

    property ParentFont: Boolean; read write;

    property FocusControl: TWinControl; read write;

    property Glyph: TBitmap; read write;

    property Layout: TNewSpeedButtonLayout; read write;

    property Margin: Integer; read write;

    property NumGlyphs: Integer; read write;

    property ParentShowHint: Boolean; read write;

    property Style: TNewSpeedButtonStyle; read write;

    property ThemeEnabled: Boolean; read write;

    property Spacing: Integer; read write;

    property Transparent: Boolean; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property PopupMenu: TPopupMenu; read write;

    property DropdownMenu: TPopupMenu; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnMouseDown: TMouseEvent; read write;

    property OnMouseMove: TMouseMoveEvent; read write;

    property OnMouseUp: TMouseEvent; read write;

    property OnMouseEnter: TNotifyEvent; read write;

    property OnMouseLeave: TNotifyEvent; read write;

  end;



  TNewNotebookPage = class(TCustomControl)

    property Color: TColor; read write;

    property Notebook: TNewNotebook; read write;

    property PageIndex: Integer; read write;

  end;



  TNewNotebook = class(TWinControl)

    function FindNextPage(CurPage: TNewNotebookPage; GoForward: Boolean): TNewNotebookPage;

    property PageCount: Integer; read write;

    property Pages[Index: Integer]: TNewNotebookPage; read;

    property ActivePage: TNewNotebookPage; read write;

  end;



  TWizardPage = class(TComponent)

    property ID: Integer; read;

    property Caption: String; read write;

    property Description: String; read write;

    property Surface: TNewNotebookPage; read write;

    property SurfaceHeight: Integer; read write;

    property SurfaceWidth: Integer; read write;

    property OnActivate: TWizardPageNotifyEvent; read write;

    property OnBackButtonClick: TWizardPageButtonEvent; read write;

    property OnCancelButtonClick: TWizardPageCancelEvent; read write;

    property OnNextButtonClick: TWizardPageButtonEvent; read write;

    property OnShouldSkipPage: TWizardPageShouldSkipEvent; read write;

  end;



  TWizardPageNotifyEvent = procedure(Sender: TWizardPage);



  TWizardPageButtonEvent = function(Sender: TWizardPage): Boolean;



  TWizardPageCancelEvent = procedure(Sender: TWizardPage; var ACancel, AConfirm: Boolean);



  TWizardPageShouldSkipEvent = function(Sender: TWizardPage): Boolean;



  TInputQueryWizardPage = class(TWizardPage)

    function Add(const APrompt: String; const APassword: Boolean): Integer;

    property Edits[Index: Integer]: TPasswordEdit; read;

    property PromptLabels[Index: Integer]: TNewStaticText; read;

    property SubCaptionLabel: TNewStaticText; read;

    property Values[Index: Integer]: String; read write;

  end;



  TInputOptionWizardPage = class(TWizardPage)

    function Add(const ACaption: String): Integer;

    function AddEx(const ACaption: String; const ALevel: Byte; const AExclusive: Boolean): Integer;

    property CheckListBox: TNewCheckListBox; read;

    property SelectedValueIndex: Integer; read write;

    property SubCaptionLabel: TNewStaticText; read;

    property Values[Index: Integer]: Boolean; read write;

  end;



  TInputDirWizardPage = class(TWizardPage)

    function Add(const APrompt: String): Integer;

    property Buttons[Index: Integer]: TNewButton; read;

    property Edits[Index: Integer]: TEdit; read;

    property PromptLabels[Index: Integer]: TNewStaticText; read;

    property SubCaptionLabel: TNewStaticText; read;

    property Values[Index: Integer]: String; read write;

  end;



  TInputFileWizardPage = class(TWizardPage)

    function Add(const APrompt, AFilter, ADefaultExtension: String): Integer;

    property Buttons[Index: Integer]: TNewButton; read;

    property Edits[Index: Integer]: TEdit; read;

    property PromptLabels[Index: Integer]: TNewStaticText; read;

    property SubCaptionLabel: TNewStaticText; read;

    property Values[Index: Integer]: String; read write;

    property IsSaveButton[Index: Integer]: Boolean; read write;

  end;



  TOutputMsgWizardPage = class(TWizardPage)

    property MsgLabel: TNewStaticText; read;

  end;



  TOutputMsgMemoWizardPage = class(TWizardPage)

    property RichEditViewer: TRichEditViewer; read;

    property SubCaptionLabel: TNewStaticText; read;

  end;



  TOutputProgressWizardPage = class(TWizardPage)

    procedure Hide;

    property Msg1Label: TNewStaticText; read;

    property Msg2Label: TNewStaticText; read;

    property ProgressBar: TNewProgressBar; read;

    procedure SetProgress(const Position, Max: Longint);

    procedure SetText(const Msg1, Msg2: String);

    procedure Show;

  end;



  TUIStateForm = class(TForm)

  end;



  TSetupForm = class(TUIStateForm)

    procedure Center;

    procedure CenterInsideControl(const Ctl: TWinControl; const InsideClientArea: Boolean);

    property ControlsFlipped: Boolean; read;

    property FlipControlsOnShow: Boolean; read write;

    property RightToLeft: Boolean; read;

  end;



  TMainForm = class(TSetupForm)

    procedure ShowAboutBox;

  end;



  TWizardForm = class(TSetupForm)

    property CancelButton: TNewButton; read;

    property NextButton: TNewButton; read;

    property BackButton: TNewButton; read;

    property OuterNotebook: TNewNotebook; read;

    property InnerNotebook: TNewNotebook; read;

    property WelcomePage: TNewNotebookPage; read;

    property InnerPage: TNewNotebookPage; read;

    property FinishedPage: TNewNotebookPage; read;

    property LicensePage: TNewNotebookPage; read;

    property PasswordPage: TNewNotebookPage; read;

    property InfoBeforePage: TNewNotebookPage; read;

    property UserInfoPage: TNewNotebookPage; read;

    property SelectDirPage: TNewNotebookPage; read;

    property SelectComponentsPage: TNewNotebookPage; read;

    property SelectProgramGroupPage: TNewNotebookPage; read;

    property SelectTasksPage: TNewNotebookPage; read;

    property ReadyPage: TNewNotebookPage; read;

    property PreparingPage: TNewNotebookPage; read;

    property InstallingPage: TNewNotebookPage; read;

    property InfoAfterPage: TNewNotebookPage; read;

    property DiskSpaceLabel: TNewStaticText; read;

    property DirEdit: TEdit; read;

    property GroupEdit: TNewEdit; read;

    property NoIconsCheck: TNewCheckBox; read;

    property PasswordLabel: TNewStaticText; read;

    property PasswordEdit: TPasswordEdit; read;

    property PasswordEditLabel: TNewStaticText; read;

    property ReadyMemo: TNewMemo; read;

    property TypesCombo: TNewComboBox; read;

    property Bevel: TBevel; read;

    property WizardBitmapImage: TBitmapImage; read;

    property WelcomeLabel1: TNewStaticText; read;

    property InfoBeforeMemo: TRichEditViewer; read;

    property InfoBeforeClickLabel: TNewStaticText; read;

    property MainPanel: TPanel; read;

    property Bevel1: TBevel; read;

    property PageNameLabel: TNewStaticText; read;

    property PageDescriptionLabel: TNewStaticText; read;

    property WizardSmallBitmapImage: TBitmapImage; read;

    property ReadyLabel: TNewStaticText; read;

    property FinishedLabel: TNewStaticText; read;

    property YesRadio: TNewRadioButton; read;

    property NoRadio: TNewRadioButton; read;

    property WizardBitmapImage2: TBitmapImage; read;

    property WelcomeLabel2: TNewStaticText; read;

    property LicenseLabel1: TNewStaticText; read;

    property LicenseMemo: TRichEditViewer; read;

    property InfoAfterMemo: TRichEditViewer; read;

    property InfoAfterClickLabel: TNewStaticText; read;

    property ComponentsList: TNewCheckListBox; read;

    property ComponentsDiskSpaceLabel: TNewStaticText; read;

    property BeveledLabel: TNewStaticText; read;

    property StatusLabel: TNewStaticText; read;

    property FilenameLabel: TNewStaticText; read;

    property ProgressGauge: TNewProgressBar; read;

    property SelectDirLabel: TNewStaticText; read;

    property SelectStartMenuFolderLabel: TNewStaticText; read;

    property SelectComponentsLabel: TNewStaticText; read;

    property SelectTasksLabel: TNewStaticText; read;

    property LicenseAcceptedRadio: TNewRadioButton; read;

    property LicenseNotAcceptedRadio: TNewRadioButton; read;

    property UserInfoNameLabel: TNewStaticText; read;

    property UserInfoNameEdit: TNewEdit; read;

    property UserInfoOrgLabel: TNewStaticText; read;

    property UserInfoOrgEdit: TNewEdit; read;

    property PreparingErrorBitmapImage: TBitmapImage; read;

    property PreparingLabel: TNewStaticText; read;

    property FinishedHeadingLabel: TNewStaticText; read;

    property UserInfoSerialLabel: TNewStaticText; read;

    property UserInfoSerialEdit: TNewEdit; read;

    property TasksList: TNewCheckListBox; read;

    property RunList: TNewCheckListBox; read;

    property DirBrowseButton: TNewButton; read;

    property GroupBrowseButton: TNewButton; read;

    property SelectDirBitmapImage: TBitmapImage; read;

    property SelectGroupBitmapImage: TBitmapImage; read;

    property SelectDirBrowseLabel: TNewStaticText; read;

    property SelectStartMenuFolderBrowseLabel: TNewStaticText; read;

    property PreparingYesRadio: TNewRadioButton; read;

    property PreparingNoRadio: TNewRadioButton; read;

    property CurPageID: Integer; read;

    function AdjustLabelHeight(ALabel: TNewStaticText): Integer;

    procedure IncTopDecHeight(AControl: TControl; Amount: Integer);

    property PrevAppDir: String; read;

  end;



  TUninstallProgressForm = class(TSetupForm)

    property OuterNotebook: TNewNotebook; read;

    property InnerPage: TNewNotebookPage; read;

    property InnerNotebook: TNewNotebook; read;

    property InstallingPage: TNewNotebookPage; read;

    property MainPanel: TPanel; read;

    property PageNameLabel: TNewStaticText; read;

    property PageDescriptionLabel: TNewStaticText; read;

    property WizardSmallBitmapImage: TBitmapImage; read;

    property Bevel1: TBevel; read;

    property StatusLabel: TNewStaticText; read;

    property ProgressBar: TNewProgressBar; read;

    property BeveledLabel: TNewStaticText; read;

    property Bevel: TBevel; read;

    property CancelButton: TNewButton; read;

  end;



  TArrayOfString = array of String;



  TArrayOfChar = array of Char;



  TArrayOfBoolean = array of Boolean;



  TArrayOfInteger = array of Integer;



  DWORD = LongWord;



  UINT = LongWord;



  BOOL = LongBool;

  

  DWORD_PTR = LongWord;



  UINT_PTR = LongWord;



  INT_PTR = Longint;



  TMsgBoxType = (mbInformation, mbConfirmation, mbError, mbCriticalError);



  TShellFolderID = (sfDesktop, sfStartMenu, sfPrograms, sfStartup, sfSendTo,

       sfFonts, sfAppData, sfDocs, sfTemplates, sfFavorites, sfLocalAppData);



  TSetupMessageID = (

    msgAboutSetupMenuItem,

    msgAboutSetupMessage,

    msgAboutSetupNote,

    msgAboutSetupTitle,

    msgAdminPrivilegesRequired,

    msgBadDirName32,

    msgBadGroupName,

    msgBeveledLabel,

    msgBrowseDialogLabel,

    msgBrowseDialogTitle,

    msgButtonBack,

    msgButtonBrowse,

    msgButtonCancel,

    msgButtonFinish,

    msgButtonInstall,

    msgButtonNewFolder,

    msgButtonNext,

    msgButtonNo,

    msgButtonNoToAll,

    msgButtonOK,

    msgButtonWizardBrowse,

    msgButtonYes,

    msgButtonYesToAll,

    msgCannotContinue,

    msgChangeDiskTitle,

    msgClickFinish,

    msgClickNext,

    msgCompactInstallation,

    msgComponentSize1,

    msgComponentSize2,

    msgComponentsDiskSpaceMBLabel,

    msgConfirmDeleteSharedFile2,

    msgConfirmDeleteSharedFileTitle,

    msgConfirmTitle,

    msgConfirmUninstall,

    msgCustomInstallation,

    msgDirDoesntExist,

    msgDirDoesntExistTitle,

    msgDirExists,

    msgDirExistsTitle,

    msgDirNameTooLong,

    msgDiskSpaceMBLabel,

    msgDiskSpaceWarning,

    msgDiskSpaceWarningTitle,

    msgEntryAbortRetryIgnore,

    msgErrorChangingAttr,

    msgErrorCopying,

    msgErrorCreatingDir,

    msgErrorCreatingTemp,

    msgErrorExecutingProgram,

    msgErrorFunctionFailed,

    msgErrorFunctionFailedNoCode,

    msgErrorFunctionFailedWithMessage,

    msgErrorIniEntry,

    msgErrorInternal2,

    msgErrorOpeningReadme,

    msgErrorReadingExistingDest,

    msgErrorReadingSource,

    msgErrorRegCreateKey,

    msgErrorRegisterServer,

    msgErrorRegisterServerMissingExport,

    msgErrorRegisterTypeLib,

    msgErrorRegOpenKey,

    msgErrorRegWriteKey,

    msgErrorRenamingTemp,

    msgErrorReplacingExistingFile,

    msgErrorRestartingComputer,

    msgErrorRestartReplace,

    msgErrorTitle,

    msgErrorTooManyFilesInDir,

    msgExistingFileNewer,

    msgExistingFileReadOnly,

    msgExitSetupMessage,

    msgExitSetupTitle,

    msgFileAbortRetryIgnore,

    msgFileAbortRetryIgnore2,

    msgFileExists,

    msgFileNotInDir2,

    msgFinishedHeadingLabel,

    msgFinishedLabel,

    msgFinishedLabelNoIcons,

    msgFinishedRestartLabel,

    msgFinishedRestartMessage, 

    msgFullInstallation,

    msgGroupNameTooLong,

    msgIncorrectPassword,

    msgInfoAfterClickLabel,

    msgInfoAfterLabel,

    msgInfoBeforeClickLabel,

    msgInfoBeforeLabel,

    msgInformationTitle,

    msgInstallingLabel,

    msgInvalidDirName,

    msgInvalidDrive,

    msgInvalidGroupName,

    msgInvalidPath,

    msgLastErrorMessage,

    msgLdrCannotCreateTemp,

    msgLdrCannotExecTemp,

    msgLicenseAccepted,

    msgLicenseLabel,

    msgLicenseLabel3,

    msgLicenseNotAccepted,

    msgMissingWOW64APIs,

    msgMustEnterGroupName,

    msgNewFolderName,

    msgNoProgramGroupCheck2,

    msgNoRadio,

    msgNotOnThisPlatform,

    msgNoUninstallWarning,

    msgNoUninstallWarningTitle, 

    msgOnlyAdminCanUninstall,

    msgOnlyOnTheseArchitectures,

    msgOnlyOnThisPlatform,

    msgPasswordEditLabel,

    msgPasswordLabel1,

    msgPasswordLabel3,

    msgPathLabel,

    msgPowerUserPrivilegesRequired,

    msgPreparingDesc,

    msgPreviousInstallNotCompleted,

    msgReadyLabel1,

    msgReadyLabel2a,

    msgReadyLabel2b,

    msgReadyMemoComponents, 

    msgReadyMemoDir, 

    msgReadyMemoGroup,

    msgReadyMemoTasks,

    msgReadyMemoType,

    msgReadyMemoUserInfo,

    msgRunEntryExec,

    msgRunEntryShellExec,

    msgSelectComponentsDesc,

    msgSelectComponentsLabel2,

    msgSelectDirBrowseLabel,

    msgSelectDirDesc,

    msgSelectDirectoryLabel,

    msgSelectDirLabel3,

    msgSelectDiskLabel2,

    msgSelectLanguageLabel,

    msgSelectLanguageTitle,

    msgSelectStartMenuFolderBrowseLabel,

    msgSelectStartMenuFolderDesc,

    msgSelectStartMenuFolderLabel3,

    msgSelectTasksDesc,

    msgSelectTasksLabel2,

    msgSetupAborted,

    msgSetupAppRunningError,

    msgSetupAppTitle,

    msgSetupFileCorrupt,

    msgSetupFileCorruptOrWrongVer,

    msgSetupFileMissing,

    msgSetupLdrStartupMessage,

    msgSetupWindowTitle,

    msgSharedFileNameLabel,

    msgSharedFileLocationLabel,

    msgShowReadmeCheck,

    msgSourceDoesntExist,

    msgSourceIsCorrupted,

    msgStatusCreateDirs,

    msgStatusCreateIcons,

    msgStatusCreateIniEntries,

    msgStatusCreateRegistryEntries,

    msgStatusExtractFiles,

    msgStatusRegisterFiles,

    msgStatusRollback,

    msgStatusSavingUninstall,

    msgStatusRunProgram,

    msgStatusUninstalling,

    msgToUNCPathname,

    msgTranslatorNote,

    msgUninstallAppFullTitle,

    msgUninstallAppTitle,

    msgUninstallDataCorrupted,

    msgUninstalledAll,

    msgUninstalledAndNeedsRestart,

    msgUninstalledMost,

    msgUninstallAppRunningError,

    msgUninstallNotFound,

    msgUninstallOnlyOnWin64,

    msgUninstallOpenError,

    msgUninstallStatusLabel,

    msgUninstallUnknownEntry,

    msgUninstallUnsupportedVer,

    msgUserInfoDesc,

    msgUserInfoName,

    msgUserInfoNameRequired,

    msgUserInfoOrg,

    msgUserInfoSerial,

    msgWelcomeLabel1,

    msgWelcomeLabel2,

    msgWinVersionTooHighError,

    msgWinVersionTooLowError,

    msgWizardInfoAfter,

    msgWizardInfoBefore,

    msgWizardInstalling,

    msgWizardLicense,

    msgWizardPassword,

    msgWizardPreparing,

    msgWizardReady,

    msgWizardSelectDir,

    msgWizardSelectComponents,

    msgWizardSelectProgramGroup,

    msgWizardSelectTasks,

    msgWizardUninstalling,

    msgWizardUserInfo,

    msgYesRadio);

    

  TSetupStep = (ssPreInstall, ssInstall, ssPostInstall, ssDone);



  TUninstallStep = (usAppMutexCheck, usUninstall, usPostUninstall, usDone);



  TExecWait = (ewNoWait, ewWaitUntilTerminated, ewWaitUntilIdle);

  

  TSetupProcessorArchitecture = (paUnknown, paX86, paX64, paIA64);

  

  TFileTime = record

    dwLowDateTime: DWORD;

    dwHighDateTime: DWORD;

  end;



  TFindRec = record

    Name: String;               // name of the found file (no path)

    Attributes: LongWord;       // file attributes

    SizeHigh: LongWord;         // size of the file, upper 32 bits

    SizeLow: LongWord;          // size of the file, lower 32 bits

    CreationTime: TFileTime;    // time file was created

    LastAccessTime: TFileTime;  // time file was last accessed

    LastWriteTime: TFileTime;   // time file was last modified

    AlternateName: String;      // file's short name (empty if none)

    FindHandle: THandle;        // used internally

  end;



  TWindowsVersion = record

    Major: Cardinal;

    Minor: Cardinal;

    Build: Cardinal;

    ServicePackMajor: Cardinal;

    ServicePackMinor: Cardinal;

    NTPlatform: Boolean;

    ProductType: Byte;

    SuiteMask: Word;

  end;



  TVarType = Word;



  TIFException = (ErNoError, erCannotImport, erInvalidType, ErInternalError,

    erInvalidHeader, erInvalidOpcode, erInvalidOpcodeParameter, erNoMainProc,

    erOutOfGlobalVarsRange, erOutOfProcRange, ErOutOfRange, erOutOfStackRange,

    ErTypeMismatch, erUnexpectedEof, erVersionError, ErDivideByZero, ErMathError,

    erCouldNotCallProc, erOutofRecordRange, erOutOfMemory, erException,

    erNullPointerException, erNullVariantError, erInterfaceNotSupported,

    erCustomError);



  TArrayOfLongWord = array of LongWord;



  TNewCommonCalendar = class(TWinControl)

    procedure BoldDays(Days: TArrayLongWord; var MonthBoldInfo: LongWord);

  end;



  TNewMonthCalColors = class(TPersistent)

    constructor Create(AOwner: TNewCommonCalendar);

    property BackColor: TColor; read write;

    property TextColor: TColor; read write;

    property TitleBackColor: TColor; read write;

    property TitleTextColor: TColor; read write;

    property MonthBackColor: TColor; read write;

    property TrailingTextColor: TColor; read write;

  end;



  TDateTime = Double;



  TDate = TDateTime;



  TTime = TDateTime;



  TDateTimeKind = (dtkDate, dtkTime);



  TDTDateMode = (dmComboBox, dmUpDown);



  TDTDateFormat = (dfShort, dfLong);



  TDTCalAlignment = (dtaLeft, dtaRight);



  TDTParseInputEvent = procedure(Sender: TObject; const UserString: string; var DateAndTime: TDateTime; var AllowChange: Boolean);



  TNewDateTimePicker = class(TNewCommonCalendar)

    property DateTime: TDateTime; read write;

    property DroppedDown: Boolean; read;

    property CalAlignment: TDTCalAlignment; read write;

    property CalColors: TNewMonthCalColors; read write;

    property Date: TDate; read write;

    property Format: String; read write;

    property Time: TTime; read write;

    property ShowCheckbox: Boolean; read write;

    property Checked: Boolean; read write;

    property DateFormat: TDTDateFormat; read write;

    property DateMode: TDTDateMode; read write;

    property Kind: TDateTimeKind; read write;

    property MaxDate: TDate; read write;

    property MinDate: TDate; read write;

    property ParseInput: Boolean; read write;

    property OnCloseUp: TNotifyEvent; read write;

    property OnChange: TNotifyEvent; read write;

    property OnDropDown: TNotifyEvent; read write;

    property OnUserInput: TDTParseInputEvent; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property OnChange: TNotifyEvent; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

  end;



  TCalDayOfWeek = (dowMonday, dowTuesday, dowWednesday, dowThursday, dowFriday, dowSaturday, dowSunday, dowLocaleDefault);



  TOnGetMonthInfoEvent = procedure(Sender: TObject; Month: LongWord; var MonthBoldInfo: LongWord);



  TNewMonthCalendar = class(TNewCommonCalendar)

    property AutoSize: Boolean; read write;

    property CalColors: TNewMonthCalColors; read write;

    property MultiSelect: Boolean; read write;

    property Date: TDate; read write;

    property FirstDayOfWeek: TCalDayOfWeek; read write;

    property MaxDate: TDate; read write;

    property MaxSelectRange: Integer; read write;

    property MinDate: TDate; read write;

    property ShowToday: Boolean; read write;

    property ShowTodayCircle: Boolean; read write;

    property WeekNumbers: Boolean; read write;

    property OnGetMonthInfo: TOnGetMonthInfoEvent; read write;

    property Color: TColor; read write;

    property Font: TFont; read write;

    property ParentColor: Boolean; read write;

    property ParentFont: Boolean; read write;

    property OnClick: TNotifyEvent; read write;

    property OnDblClick: TNotifyEvent; read write;

    property OnEnter: TNotifyEvent; read write;

    property OnExit: TNotifyEvent; read write;

    property OnKeyDown: TKeyEvent; read write;

    property OnKeyPress: TKeyPressEvent; read write;

    property OnKeyUp: TKeyEvent; read write;

    property DragCursor: Longint; read write;

    property DragMode: TDragMode; read write;

    property OnDragDrop: TDragDropEvent; read write;

    property OnDragOver: TDragOverEvent; read write;

    property OnEndDrag: TEndDragEvent; read write;

    property OnStartDrag: TStartDragEvent; read write;

    property OnChange: TNotifyEvent; read write;

  end;



  HResult = LongInt;



  TGUID = record

    D1: LongWord;

    D2: Word;

    D3: Word;

    D4: array[0..7] of Byte;

  end;



  TCLSID = TGUID;



  TIID = TGUID;



(******************************************************************)

(*                                                                *)

(* The Pascal script can call several built-in support functions. *)

(*                                                                *)

(******************************************************************)



// Support functions

// Here's the list of support functions that can be called from

// within the Pascal script.



// Setup or Uninstall Info functions



function GetCmdTail: String; // Returns all command line parameters passed to Setup or Uninstall as a single String.

function ParamCount: Integer; // Returns the number of command line parameters passed to Setup or Uninstall.

function ParamStr(Index: Integer): String; // Returns the Index-th command line parameter passed to Setup or Uninstall.



function ActiveLanguage: String; // Returns the name of the active language.



function CustomMessage(const MsgName: String): String; // Returns the value of the [CustomMessages] entry with the specified name.

function FmtMessage(const S: String; const Args: array of String): String; // Formats the String S using the specified String arguments.

function SetupMessage(const ID: TSetupMessageID): String; // Returns the value of the specified message.



function WizardDirValue: String; // Returns the current contents of the edit control on the Select Destination Location page of the wizard.

function WizardGroupValue: String; // Returns the current contents of the edit control on the Select Start Menu Folder page of the wizard.

function WizardNoIcons: Boolean; // Returns the current setting of the Don't create any icons check box on the Select Start Menu Folder page of the wizard.

function WizardSetupType(const Description: Boolean): String; // Returns the name or description of the setup type selected by the user.

function WizardSelectedComponents(const Descriptions: Boolean): String; // Returns a comma-separated list of names or descriptions of the components selected by the user.

function WizardSelectedTasks(const Descriptions: Boolean): String; // Returns a comma-separated list of names or descriptions of the tasks selected by the user.

function WizardSilent: Boolean; // Returns True if Setup is running silently, False otherwise.



function IsUninstaller: Boolean;

function UninstallSilent: Boolean;



function CurrentFileName: String;



function ExpandConstant(const S: String): String;

function ExpandConstantEx(const S: String; const CustomConst, CustomValue: String): String;



function IsComponentSelected(const Components: String): Boolean;

function IsTaskSelected(const Tasks: String): Boolean;



procedure ExtractTemporaryFile(const FileName: String);

procedure ExtractTemporaryFileEx(const FileName: String; const DestDir: String);

procedure ExtractTemporaryFileToStream(const FileName: String; const Stream: TStream);

function ExtractTemporaryFileSize(const FileName: String): LongWord;

procedure ExtractTemporaryFileToBuffer(const FileName: String; Buffer: Integer);



function GetSetupPreviousData(const ValueName, DefaultValueData: String): String;

function SetSetupPreviousData(const PreviousDataKey: Integer; const ValueName, ValueData: String): Boolean;

function GetPreviousData(const ValueName, DefaultValueData: String): String;

function SetPreviousData(const PreviousDataKey: Integer; const ValueName, ValueData: String): Boolean;



function Terminated: Boolean;



// Exception functions



procedure Abort; // Escapes from the current execution path without reporting an error.

procedure RaiseException(const Msg: String); //



function GetExceptionMessage: String;

procedure ShowExceptionMessage;



procedure RaiseLastException;

procedure RaiseException(Ex: TIFException; Param: String);

function ExceptionType: TIFException;

function ExceptionParam: String;

function ExceptionProc: Cardinal;

function ExceptionPos: Cardinal;

function ExceptionToString(er: TIFException; Param: String): String;



// System functions



function IsAdminLoggedOn: Boolean;

function IsPowerUserLoggedOn: Boolean;

function UsingWinNT: Boolean;

function GetWindowsVersion: Cardinal;

procedure GetWindowsVersionEx(var Version: TWindowsVersion);

function GetWindowsVersionString: String;



function IsWin64: Boolean;

function Is64BitInstallMode: Boolean;

function ProcessorArchitecture: TSetupProcessorArchitecture;



function InstallOnThisVersion(const MinVersion, OnlyBelowVersion: String): Integer;



function GetEnv(const EnvVar: String): String;

function GetUserNameString: String;

function GetComputerNameString: String;



function GetUILanguage: Integer;



function FontExists(const FaceName: String): Boolean;



function FindWindowByClassName(const ClassName: String): HWND;

function FindWindowByWindowName(const WindowName: String): HWND;

function SendMessage(const Wnd: HWND; const Msg, WParam, LParam: Longint): Longint;

function PostMessage(const Wnd: HWND; const Msg, WParam, LParam: Longint): Boolean;

function SendNotifyMessage(const Wnd: HWND; const Msg, WParam, LParam: Longint): Boolean;

function RegisterWindowMessage(const Name: String): Longint;

function SendBroadcastMessage(const Msg, WParam, LParam: Longint): Longint;

function PostBroadcastMessage(const Msg, WParam, LParam: Longint): Boolean;

function SendBroadcastNotifyMessage(const Msg, WParam, LParam: Longint): Boolean;



procedure CreateMutex(const Name: String);

function CheckForMutexes(Mutexes: String): Boolean;



function MakePendingFileRenameOperationsChecksum: String;



procedure UnloadDLL(Filename: String);

function DLLGetLastError(): Longint;



// String functions



function Chr(B: Byte): Char;

function Ord(C: Char): Byte;

function Copy(S: String; Indx, Count: Integer): String;

function Length(S: String): Longint;

function Lowercase(S: String): String;

function Uppercase(S: String): String;

function AnsiLowercase(S: String): String;

function AnsiUppercase(S: String): String;

function StringOfChar(C: Char; I: Longint): String;

function Replicate(C: Char; I: Longint): String;

procedure Delete(var S: String; Indx, Count: Integer);

procedure Insert(Source: String; var Dest: String; Indx: Integer);

function StringChange(var S: String; const FromStr, ToStr: String): Integer;

function StringChangeEx(var S: String; const FromStr, ToStr: String; const SupportDBCS: Boolean): Integer;

function Pos(SubStr, S: String): Integer;

function AddQuotes(const S: String): String;

function RemoveQuotes(const S: String): String;

function ConvertPercentStr(var S: String): Boolean;



function CompareText(const S1, S2: String): Integer;

function CompareStr(const S1, S2: String): Integer;



function Format(const Format: String; const Args: array of const): String;

function FormatFloat(const Format: string; Value: Extended): string;



function Trim(const S: String): String;

function TrimLeft(const S: String): String;

function TrimRight(const S: String): String;



function StrToIntDef(S: String; def: Longint): Longint;

function StrToInt(S: String): Longint;

function IntToStr(I: Longint): String;



function CharLength(const S: String; const Index: Integer): Integer;



function AddBackslash(const S: String): String;

function RemoveBackslashUnlessRoot(const S: String): String;

function RemoveBackslash(const S: String): String;

function AddPeriod(const S: String): String;

function ChangeFileExt(const FileName, Extension: String): String;

function ExtractFileExt(const FileName: String): String;

function ExtractFileDir(const FileName: String): String;

function ExtractFilePath(const FileName: String): String;

function ExtractFileName(const FileName: String): String;

function ExtractFileDrive(const FileName: String): String;

function ExtractRelativePath(const BaseName, DestName: String): String;

function ExpandFileName(const FileName: String): String;

function ExpandUNCFileName(const FileName: String): String;



function GetDateTimeString(const DateTimeFormat: String; const DateSeparator, TimeSeparator: Char): String;



procedure SetLength(var S: String; L: Longint);

procedure CharToOemBuff(var S: AnsiString);

procedure OemToCharBuff(var S: AnsiString);



function GetMD5OfString(const S: AnsiString): String;

function GetMD5OfUnicodeString(const S: String): String;

function GetSHA1OfString(const S: AnsiString): String;

function GetSHA1OfUnicodeString(const S: String): String;



function SysErrorMessage(ErrorCode: Integer): String;



// Math functions



function Sin(E: Extended): Extended;

function Cos(E: Extended): Extended;

function Sqrt(E: Extended): Extended;

function Round(E: Extended): Longint;

function Trunc(E: Extended): Longint;

function Int(E: Extended): Extended;

function Pi: Extended;

function Abs(E: Extended): Extended;

function StrToFloat(S: String): Extended;

function FloatToStr(E: Extended): String;

function Padl(S: String; I: Longint): String;

function Padr(S: String; I: Longint): String;

function Padz(S: String; I: Longint): String;



// Array functions



function GetArrayLength(var Arr: Array): Longint;

procedure SetArrayLength(var Arr: Array; I: Longint);



// Variant functions



function Null: Variant;

function Assigned(const P: Variant): Boolean;

function Unassigned: Variant;



function VarIsEmpty(const V: Variant): Boolean;

function VarIsNull(const V: Variant): Boolean;

function VarType(const V: Variant): TVarType;

function SizeOf(const V: Variant): Longint; 



// File System functions



function DirExists(const Name: String): Boolean;

function FileExists(const Name: String): Boolean;

function FileOrDirExists(const Name: String): Boolean;

function FileSize(const Name: String; var Size: Integer): Boolean;

function GetSpaceOnDisk(const Path: String; const InMegabytes: Boolean; var Free, Total: Cardinal): Boolean;



function FileSearch(const Name, DirList: String): String;

function FindFirst(const FileName: String; var FindRec: TFindRec): Boolean;

function FindNext(var FindRec: TFindRec): Boolean;

procedure FindClose(var FindRec: TFindRec);



function GetCurrentDir: String;

function SetCurrentDir(const Dir: String): Boolean;

function GetWinDir: String;

function GetSystemDir: String;

function GetSysWow64Dir: String;

function GetTempDir: String;

function GetShellFolder(Common: Boolean; const ID: TShellFolderID): String;

function GetShellFolderByCSIDL(const Folder: Integer; const Create: Boolean): String;



function GetShortName(const LongName: String): String;

function GenerateUniqueName(Path: String; const Extension: String): String;

function MinimizePathName(const Filename: String; const Font: TFont; MaxLen: Integer): String;



function GetVersionNumbers(const Filename: String; var VersionMS, VersionLS: Cardinal): Boolean;

function GetVersionNumbersString(const Filename: String; var Version: String): Boolean;



function IsProtectedSystemFile(const Filename: String): Boolean;



function GetMD5OfFile(const Filename: String): String;

function GetSHA1OfFile(const Filename: String): String;



function EnableFsRedirection(const Enable: Boolean): Boolean;



// File functions



function Exec(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean;

function ExecAsOriginalUser(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean;

function ShellExec(const Verb, Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ErrorCode: Integer): Boolean;

function ShellExecAsOriginalUser(const Verb, Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ErrorCode: Integer): Boolean;



function RenameFile(const OldName, NewName: String): Boolean;

function FileCopy(const ExistingFile, NewFile: String; const FailIfExists: Boolean): Boolean;

function DeleteFile(const FileName: String): Boolean;

procedure DelayDeleteFile(const Filename: String; const Tries: Integer);

function SetNTFSCompression(const FileOrDir: String; Compress: Boolean): Boolean;



function LoadStringFromFile(const FileName: String; var S: AnsiString): Boolean;

function LoadStringsFromFile(const FileName: String; var S: TArrayOfString): Boolean;

function SaveStringToFile(const FileName, S: AnsiString; const Append: Boolean): Boolean;

function SaveStringsToFile(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;

function SaveStringsToUTF8File(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;



function CreateDir(const Dir: String): Boolean;

function ForceDirectories(Dir: String): Boolean;

function RemoveDir(const Dir: String): Boolean;

function DelTree(const Path: String; const IsDir, DeleteFiles, DeleteSubdirsAlso: Boolean): Boolean;



function CreateShellLink(const Filename, Description, ShortcutTo, Parameters, WorkingDir, IconFilename: String; const IconIndex, ShowCmd: Integer): String;



procedure RegisterServer(const Is64Bit: Boolean; const Filename: String; const FailCriticalErrors: Boolean);

function UnregisterServer(const Is64Bit: Boolean; const Filename: String; const FailCriticalErrors: Boolean): Boolean;

procedure RegisterTypeLibrary(const Is64Bit: Boolean; const Filename: String);

function UnregisterTypeLibrary(const Is64Bit: Boolean; const Filename: String): Boolean;

procedure IncrementSharedCount(const Is64Bit: Boolean; const Filename: String; const AlreadyExisted: Boolean);

function DecrementSharedCount(const Is64Bit: Boolean; const Filename: String): Boolean;

procedure RestartReplace(const TempFile, DestFile: String);

procedure UnregisterFont(const FontName, FontFilename: String);

function ModifyPifFile(const Filename: String; const CloseOnExit: Boolean): Boolean;



// Registry functions



function RegKeyExists(const RootKey: Integer; const SubKeyName: String): Boolean;

function RegValueExists(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean;



function RegGetSubkeyNames(const RootKey: Integer; const SubKeyName: String; var Names: TArrayOfString): Boolean;

function RegGetValueNames(const RootKey: Integer; const SubKeyName: String; var Names: TArrayOfString): Boolean;



function RegQueryStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean;

function RegQueryMultiStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean;

function RegQueryDWordValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultDWord: Cardinal): Boolean;

function RegQueryBinaryValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: AnsiString): Boolean;



function RegWriteStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean;

function RegWriteExpandStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean;

function RegWriteMultiStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean;

function RegWriteDWordValue(const RootKey: Integer; const SubKeyName, ValueName: String; const Data: Cardinal): Boolean;

function RegWriteBinaryValue(const RootKey: Integer; const SubKeyName, ValueName, Data: AnsiString): Boolean;



function RegDeleteKeyIncludingSubkeys(const RootKey: Integer; const SubkeyName: String): Boolean;

function RegDeleteKeyIfEmpty(const RootKey: Integer; const SubkeyName: String): Boolean;

function RegDeleteValue(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean;



// INI File functions



function IniKeyExists(const Section, Key, Filename: String): Boolean;

function IsIniSectionEmpty(const Section, Filename: String): Boolean;



function GetIniBool(const Section, Key: String; const Default: Boolean; const Filename: String): Boolean;

function GetIniInt(const Section, Key: String; const Default, Min, Max: Longint; const Filename: String): Longint;

function GetIniString(const Section, Key, Default, Filename: String): String;



function SetIniBool(const Section, Key: String; const Value: Boolean; const Filename: String): Boolean;

function SetIniInt(const Section, Key: String; const Value: Longint; const Filename: String): Boolean;

function SetIniString(const Section, Key, Value, Filename: String): Boolean;



procedure DeleteIniSection(const Section, Filename: String);

procedure DeleteIniEntry(const Section, Key, Filename: String);



// Custom Setup Wizard Page functions



function CreateInputQueryPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String): TInputQueryWizardPage;

function CreateInputOptionPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; Exclusive, ListBox: Boolean): TInputOptionWizardPage;

function CreateInputDirPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; AAppendDir: Boolean; ANewFolderName: String): TInputDirWizardPage;

function CreateInputFilePage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String): TInputFileWizardPage;

function CreateOutputMsgPage(const AfterID: Integer; const ACaption, ADescription, AMsg: String): TOutputMsgWizardPage;

function CreateOutputMsgMemoPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; const AMsg: AnsiString): TOutputMsgMemoWizardPage;

function CreateOutputProgressPage(const ACaption, ADescription: String): TOutputProgressWizardPage;

function CreateCustomPage(const AfterID: Integer; const ACaption, ADescription: String): TWizardPage;



function CreateCustomForm: TSetupForm;



function PageFromID(const ID: Integer): TWizardPage;

function PageIndexFromID(const ID: Integer): Integer;

function ScaleX(X: Integer): Integer;

function ScaleY(Y: Integer): Integer;



// Dialog functions



function MsgBox(const Text: String; const Typ: TMsgBoxType; const Buttons: Integer): Integer;

function SuppressibleMsgBox(const Text: String; const Typ: TMsgBoxType; const Buttons, Default: Integer): Integer;

function GetOpenFileName(const Prompt: String; var FileName: String; const InitialDirectory, Filter, DefaultExtension: String): Boolean;

function GetSaveFileName(const Prompt: String; var FileName: String; const InitialDirectory, Filter, DefaultExtension: String): Boolean;

function BrowseForFolder(const Prompt: String; var Directory: String; const NewFolderButton: Boolean): Boolean;

function ExitSetupMsgBox: Boolean;



// COM Automation objects support functions



function CreateOleObject(const ClassName: string): Variant;

function GetActiveOleObject(const ClassName: string): Variant;

function IDispatchInvoke(Self: IDispatch; PropertySet: Boolean; const Name: String; Par: array of variant): variant;

function CreateComObject(const ClassID: TGUID): IUnknown;

function StringToGUID(const S: String): TGUID;

procedure OleCheck(Result: HResult);

procedure CoFreeUnusedLibraries;



// Setup Logging functions



procedure Log(const S: String);



// Menu functions



function ShortCut(Key: Word; Shift: TShiftState): TShortCut;

procedure ShortCutToKey(ShortCut: TShortCut; var Key: Word; var Shift: TShiftState);

function ShortCutToText(ShortCut: TShortCut): String;

function TextToShortCut(Text: String): TShortCut;

function NewMenu(Owner: TComponent; const AName: String; Items: array of TMenuItem): TMainMenu;

function NewPopupMenu(Owner: TComponent; const AName: String; Alignment: TPopupAlignment; AutoPopup: Boolean; Items: array of TMenuItem): TPopupMenu;

function NewSubMenu(const ACaption: String; hCtx: Word; const AName: String; Items: array of TMenuItem; AEnabled: Boolean): TMenuItem;

function NewItem(const ACaption: String; AShortCut: TShortCut; AChecked, AEnabled: Boolean; AOnClick: TNotifyEvent; hCtx: Word; const AName: String): TMenuItem;

function NewLine: TMenuItem;

procedure DrawMenuItem(MenuItem: TMenuItem; ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState);



// Other functions



procedure Sleep(const Milliseconds: Longint);

function Random(const Range: Integer): Integer;

procedure Randomize;

procedure Beep;



procedure BringToFrontAndRestore;



function MainForm: TMainForm;

function WizardForm: TWizardForm;

function UninstallProgressForm: TUninstallProgressForm;



function Application: TApplication;

function Screen: TScreen;



// Enhanced functions

procedure SetPassword(const Password: String);

function CallbackAddr(ProcNameOrFuncName: String): Integer;

function MsgBoxEx(AWnd: HWND; AText, ACaption: string; AType, AIcon: UINT; ATimeOut: Integer): Integer;

function InputBoxEx(AWnd: HWND; AText, ACaption, ADefaut, APasswordChar: string; AIcon: UINT; AWidth, AHeight, ATimeOut: Integer; var AResultStr: String): Boolean;

function PerformPreviousUninstall(ProgressBar: TNewProgressBar): Boolean;

function HInstance: LongWord;



// Date & Time function

function Date: TDateTime;

function DateTimeToStr(DateTime: TDateTime): String;

procedure DateTimeToString(var Result: String; const Format: String; DateTime: TDateTime);

function DateToStr(Date: TDateTime): String;

function DayOfWeek(Date: TDateTime): Integer;

procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);

procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);

function EncodeDate(Year, Month, Day: Word): TDateTime;

function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;

function FormatDateTime(const Format: String; DateTime: TDateTime): String;

function Now: TDateTime;

function StrToDate(const S: String): TDateTime;

function StrToDateTime(const S: String): TDateTime;

function StrToTime(const S: String): TDateTime;

function Time: TDateTime;

function TimeToStr(Time: TDateTime): String;



// Deprecated functions



function LoadDLL(const DLLName: String; var ErrorCode: Integer): Longint;

function CallDLLProc(const DLLHandle: Longint; const ProcName: String; const Param1, Param2: Longint; var Result: Longint): Boolean;

function FreeDLL(const DLLHandle: Longint): Boolean;



function CastStringToInteger(var S: String): Longint;

function CastIntegerToString(const L: Longint): String;

function CastAnsiStringToInteger(var S: AnsiString): Longint;

function CastIntegerToAnsiString(const L: Longint): AnsiString;



(********************************************************)

(*                                                      *)

(* Here's the list of constants used by these functions *)

(*                                                      *)

(********************************************************)



const

  wpWelcome = 1;

  wpLicense = 2;

  wpPassword = 3;

  wpInfoBefore = 4;

  wpUserInfo = 5;

  wpSelectDir = 6;

  wpSelectComponents = 7;

  wpSelectProgramGroup = 8;

  wpSelectTasks = 9;

  wpReady = 10;

  wpPreparing = 11;

  wpInstalling = 12;

  wpInfoAfter = 13;

  wpFinished = 14;



  mrNone = 0;

  mrOk = 1;

  mrCancel = 2;

  mrAbort = 3;

  mrRetry = 4;

  mrIgnore = 5;

  mrYes = 6;

  mrNo = 7;

  mrAll = 8;

  mrNoToAll = 9;

  mrYesToAll = 10;

  crDefault = 0;

  crNone = -1;

  crArrow = -2;

  crCross = -3;

  crIBeam = -4;

  crSizeNESW = -6;

  crSizeNS = -7;

  crSizeNWSE = -8;

  crSizeWE = -9;

  crUpArrow = -10;

  crHourGlass = -11;

  crDrag = -12;

  crNoDrop = -13;

  crHSplit = -14;

  crVSplit = -15;

  crMultiDrag = -16;

  crSQLWait = -17;

  crNo = -18;

  crAppStart = -19;

  crHelp = -20;

  crHand = 1;



  MB_OK = $00000000;

  MB_OKCANCEL = $00000001;

  MB_ABORTRETRYIGNORE = $00000002;

  MB_YESNOCANCEL = $00000003;

  MB_YESNO = $00000004;

  MB_RETRYCANCEL = $00000005;

  MB_DEFBUTTON1 = $00000000;

  MB_DEFBUTTON2 = $00000100;

  MB_DEFBUTTON3 = $00000200;

  MB_SETFOREGROUND = $00010000;

  MB_ICONWARNING = $00000030;

  MB_ICONERROR = $00000010;

  MB_ICONINFORMATION = $00000040;

  MB_ICONQUESTION = $00000020;



  IDOK = 1;

  IDCANCEL = 2;

  IDABORT = 3;

  IDRETRY = 4;

  IDIGNORE = 5;

  IDYES = 6;

  IDNO = 7;



  MaxInt = $7FFFFFFF;



  HWND_BROADCAST = $FFFF;



  CodeRootKeyFlag32Bit = $01000000;

  CodeRootKeyFlag64Bit = $02000000;



  HKEY_CLASSES_ROOT      = $80000000;

  HKEY_CLASSES_ROOT_32   = HKEY_CLASSES_ROOT or CodeRootKeyFlag32Bit;

  HKEY_CLASSES_ROOT_64   = HKEY_CLASSES_ROOT or CodeRootKeyFlag64Bit;

  HKEY_CURRENT_USER      = $80000001;

  HKEY_CURRENT_USER_32   = HKEY_CURRENT_USER or CodeRootKeyFlag32Bit;

  HKEY_CURRENT_USER_64   = HKEY_CURRENT_USER or CodeRootKeyFlag64Bit;

  HKEY_LOCAL_MACHINE     = $80000002;

  HKEY_LOCAL_MACHINE_32  = HKEY_LOCAL_MACHINE or CodeRootKeyFlag32Bit;

  HKEY_LOCAL_MACHINE_64  = HKEY_LOCAL_MACHINE or CodeRootKeyFlag64Bit;

  HKEY_USERS             = $80000003;

  HKEY_USERS_32          = HKEY_USERS or CodeRootKeyFlag32Bit;

  HKEY_USERS_64          = HKEY_USERS or CodeRootKeyFlag64Bit;

  HKEY_PERFORMANCE_DATA  = $80000004;

  HKEY_CURRENT_CONFIG    = $80000005;

  HKEY_CURRENT_CONFIG_32 = HKEY_CURRENT_CONFIG or CodeRootKeyFlag32Bit;

  HKEY_CURRENT_CONFIG_64 = HKEY_CURRENT_CONFIG or CodeRootKeyFlag64Bit;

  HKEY_DYN_DATA          = $80000006;



  HKCR   = HKEY_CLASSES_ROOT;

  HKCR32 = HKEY_CLASSES_ROOT or CodeRootKeyFlag32Bit;

  HKCR64 = HKEY_CLASSES_ROOT or CodeRootKeyFlag64Bit;

  HKCU   = HKEY_CURRENT_USER;

  HKCU32 = HKEY_CURRENT_USER or CodeRootKeyFlag32Bit;

  HKCU64 = HKEY_CURRENT_USER or CodeRootKeyFlag64Bit;

  HKLM   = HKEY_LOCAL_MACHINE;

  HKLM32 = HKEY_LOCAL_MACHINE or CodeRootKeyFlag32Bit;

  HKLM64 = HKEY_LOCAL_MACHINE or CodeRootKeyFlag64Bit;

  HKU    = HKEY_USERS;

  HKU32  = HKEY_USERS or CodeRootKeyFlag32Bit;

  HKU64  = HKEY_USERS or CodeRootKeyFlag64Bit;

  HKCC   = HKEY_CURRENT_CONFIG;

  HKCC32 = HKEY_CURRENT_CONFIG or CodeRootKeyFlag32Bit;

  HKCC64 = HKEY_CURRENT_CONFIG or CodeRootKeyFlag64Bit;



  SW_HIDE = 0;

  SW_SHOWNORMAL = 1;

  SW_SHOWMINIMIZED = 2;

  SW_SHOWMAXIMIZED = 3;

  SW_SHOW = 5;

  SW_SHOWMINNOACTIVE = 7;



  FILE_ATTRIBUTE_READONLY            = $00000001;

  FILE_ATTRIBUTE_HIDDEN              = $00000002;

  FILE_ATTRIBUTE_SYSTEM              = $00000004;

  FILE_ATTRIBUTE_DIRECTORY           = $00000010;

  FILE_ATTRIBUTE_ARCHIVE             = $00000020;

  FILE_ATTRIBUTE_DEVICE              = $00000040;

  FILE_ATTRIBUTE_NORMAL              = $00000080;

  FILE_ATTRIBUTE_TEMPORARY           = $00000100;

  FILE_ATTRIBUTE_SPARSE_FILE         = $00000200;

  FILE_ATTRIBUTE_REPARSE_POINT       = $00000400;

  FILE_ATTRIBUTE_COMPRESSED          = $00000800;

  FILE_ATTRIBUTE_OFFLINE             = $00001000;

  FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = $00002000;

  FILE_ATTRIBUTE_ENCRYPTED           = $00004000;



  VER_NT_WORKSTATION       = $0000001;

  VER_NT_DOMAIN_CONTROLLER = $0000002;

  VER_NT_SERVER            = $0000003;



  VER_SUITE_SMALLBUSINESS            = $00000001;

  VER_SUITE_ENTERPRISE               = $00000002;

  VER_SUITE_BACKOFFICE               = $00000004;

  VER_SUITE_COMMUNICATIONS           = $00000008;

  VER_SUITE_TERMINAL                 = $00000010;

  VER_SUITE_SMALLBUSINESS_RESTRICTED = $00000020;

  VER_SUITE_EMBEDDEDNT               = $00000040;

  VER_SUITE_DATACENTER               = $00000080;

  VER_SUITE_SINGLEUSERTS             = $00000100;

  VER_SUITE_PERSONAL                 = $00000200;

  VER_SUITE_BLADE                    = $00000400;

  VER_SUITE_EMBEDDED_RESTRICTED      = $00000800;

  VER_SUITE_SECURITY_APPLIANCE       = $00001000;



  soFromBeginning = 0;

  soFromCurrent = 1;

  soFromEnd = 2;

  toEOF = #0;

  toSymbol = #1;

  toString = #2;

  toInteger = #3;

  toFloat = #4;

  fmCreate = $FFFF;

  fmOpenRead = 0;

  fmOpenWrite = 1;

  fmOpenReadWrite = 2;

  fmShareCompat = 0;

  fmShareExclusive = $10;

  fmShareDenyWrite = $20;

  fmShareDenyRead = $30;

  fmShareDenyNone = $40;

  SecsPerDay = 86400;

  MSecPerDay = 86400000;

  DateDelta = 693594;



  clScrollBar           = $FF000000;

  clBackground          = $FF000001;

  clActiveCaption       = $FF000002;

  clInactiveCaption     = $FF000003;

  clMenu                = $FF000004;

  clWindow              = $FF000005;

  clWindowFrame         = $FF000006;

  clMenuText            = $FF000007;

  clWindowText          = $FF000008;

  clCaptionText         = $FF000009;

  clActiveBorder        = $FF00000A;

  clInactiveBorder      = $FF00000B;

  clAppWorkSpace        = $FF00000C;

  clHighlight           = $FF00000D;

  clHighlightText       = $FF00000E;

  clBtnFace             = $FF00000F;

  clBtnShadow           = $FF000010;

  clGrayText            = $FF000011;

  clBtnText             = $FF000012;

  clInactiveCaptionText = $FF000013;

  clBtnHighlight        = $FF000014;

  cl3DDkShadow          = $FF000015;

  cl3DLight             = $FF000016;

  clInfoText            = $FF000017;

  clInfoBk              = $FF000018;

  clHotLight            = $FF00001A;



  clBlack   = $000000;

  clMaroon  = $000080;

  clGreen   = $008000;

  clOlive   = $008080;

  clNavy    = $800000;

  clPurple  = $800080;

  clTeal    = $808000;

  clGray    = $808080;

  clSilver  = $C0C0C0;

  clRed     = $0000FF;

  clLime    = $00FF00;

  clYellow  = $00FFFF;

  clBlue    = $FF0000;

  clFuchsia = $FF00FF;

  clAqua    = $FFFF00;

  clLtGray  = $C0C0C0;

  clDkGray  = $808080;

  clWhite   = $FFFFFF;

  clNone    = $1FFFFFFF;

  clDefault = $20000000;



  irInstall           = 0;

  irNotOnThisPlatform = 1;

  irVerTooLow         = 2;

  irVerTooHigh        = 3;

  irInvalid           = 4;


    

 

Add GUI to connect to SQL


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论