home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 2000 October / tst.iso / programs / borland / RUNIMAGE / DELPHI40 / DOC / FORMS.INT < prev    next >
Encoding:
Text File  |  1998-06-17  |  23.8 KB  |  720 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Visual Component Library         }
  5. {                                                       }
  6. {       Copyright (c) 1995,98 Inprise Corporation       }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit Forms;
  11.  
  12. {$P+,S-,W-,R-}
  13. {$C PRELOAD}
  14.  
  15. interface
  16.  
  17. uses Messages, Windows, SysUtils, Classes, Graphics, Menus, Controls, Imm,
  18.   ActnList, MultiMon;
  19.  
  20. type
  21.  
  22. { Forward declarations }
  23.  
  24.   TScrollingWinControl = class;
  25.   TCustomForm = class;
  26.   TForm = class;
  27.   TMonitor = class;
  28.  
  29. { TControlScrollBar }
  30.  
  31.   TScrollBarKind = (sbHorizontal, sbVertical);
  32.   TScrollBarInc = 1..32767;
  33.   TScrollBarStyle = (ssRegular, ssFlat, ssHotTrack);
  34.  
  35.   TControlScrollBar = class(TPersistent)
  36.   public
  37.     procedure Assign(Source: TPersistent); override;
  38.     procedure ChangeBiDiPosition;
  39.     property Kind: TScrollBarKind;
  40.     function IsScrollBarVisible: Boolean;
  41.     property ScrollPos: Integer;
  42.   published
  43.     property ButtonSize: Integer default 0;
  44.     property Color: TColor default clBtnHighlight;
  45.     property Increment: TScrollBarInc default 8;
  46.     property Margin: Word default 0;
  47.     property ParentColor: Boolean default True;
  48.     property Position: Integer default 0;
  49.     property Range: Integer default 0;
  50.     property Smooth: Boolean default False;
  51.     property Size: Integer default 0;
  52.     property Style: TScrollBarStyle default ssRegular;
  53.     property ThumbSize: Integer default 0;
  54.     property Tracking: Boolean default False;
  55.     property Visible: Boolean default True;
  56.   end;
  57.  
  58. { TScrollingWinControl }
  59.  
  60.   TScrollingWinControl = class(TWinControl)
  61.   protected
  62.     procedure AdjustClientRect(var Rect: TRect); override;
  63.     procedure AlignControls(AControl: TControl; var ARect: TRect); override;
  64.     function AutoScrollEnabled: Boolean; virtual;
  65.     procedure AutoScrollInView(AControl: TControl);
  66.     procedure ChangeScale(M, D: Integer); override;
  67.     procedure CreateParams(var Params: TCreateParams); override;
  68.     procedure CreateWnd; override;
  69.     procedure DoFlipChildren; override;
  70.     property AutoScroll: Boolean default True;
  71.   public
  72.     constructor Create(AOwner: TComponent); override;
  73.     destructor Destroy; override;
  74.     procedure DisableAutoRange;
  75.     procedure EnableAutoRange;
  76.     procedure ScrollInView(AControl: TControl);
  77.   published
  78.     property HorzScrollBar: TControlScrollBar;
  79.     property VertScrollBar: TControlScrollBar;
  80.   end;
  81.  
  82. { TScrollBox }
  83.  
  84.   TFormBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow,
  85.     bsSizeToolWin);
  86.   TBorderStyle = bsNone..bsSingle;
  87.  
  88.   TScrollBox = class(TScrollingWinControl)
  89.   protected
  90.     procedure CreateParams(var Params: TCreateParams); override;
  91.   public
  92.     constructor Create(AOwner: TComponent); override;
  93.   published
  94.     property Align;
  95.     property Anchors;
  96.     property AutoScroll;
  97.     property AutoSize;
  98.     property BiDiMode;
  99.     property BorderStyle: TBorderStyle default bsSingle;
  100.     property Constraints;
  101.     property DockSite;
  102.     property DragCursor;
  103.     property DragKind;
  104.     property DragMode;
  105.     property Enabled;
  106.     property Color nodefault;
  107.     property Ctl3D;
  108.     property Font;
  109.     property ParentBiDiMode;
  110.     property ParentColor;
  111.     property ParentCtl3D;
  112.     property ParentFont;
  113.     property ParentShowHint;
  114.     property PopupMenu;
  115.     property ShowHint;
  116.     property TabOrder;
  117.     property TabStop;
  118.     property Visible;
  119.     property OnCanResize;
  120.     property OnClick;
  121.     property OnConstrainedResize;
  122.     property OnDblClick;
  123.     property OnDockDrop;
  124.     property OnDockOver;
  125.     property OnDragDrop;
  126.     property OnDragOver;
  127.     property OnEndDock;
  128.     property OnEndDrag;
  129.     property OnEnter;
  130.     property OnExit;
  131.     property OnGetSiteInfo;
  132.     property OnMouseDown;
  133.     property OnMouseMove;
  134.     property OnMouseUp;
  135.     property OnMouseWheel;
  136.     property OnMouseWheelDown;
  137.     property OnMouseWheelUp;
  138.     property OnResize;
  139.     property OnStartDock;
  140.     property OnStartDrag;
  141.     property OnUnDock;
  142.   end;
  143.  
  144. { IDesigner }
  145.  
  146.   IDesigner = interface(IDesignerNotify)
  147.     ['{ABBE7256-5495-11D1-9FB5-0020AF3D82DA}']
  148.     function GetCustomForm: TCustomForm;
  149.     procedure SetCustomForm(Value: TCustomForm);
  150.     function GetIsControl: Boolean;
  151.     procedure SetIsControl(Value: Boolean);
  152.     function IsDesignMsg(Sender: TControl; var Message: TMessage): Boolean;
  153.     procedure PaintGrid;
  154.     procedure ValidateRename(AComponent: TComponent;
  155.       const CurName, NewName: string);
  156.     property IsControl: Boolean;
  157.     property Form: TCustomForm;
  158.   end;
  159.  
  160. { IOleForm }
  161.  
  162.   IOleForm = interface
  163.     ['{CD02E1C1-52DA-11D0-9EA6-0020AF3D82DA}']
  164.     procedure OnDestroy;
  165.     procedure OnResize;
  166.   end;
  167.   
  168. { TCustomForm }
  169.  
  170.   TWindowState = (wsNormal, wsMinimized, wsMaximized);
  171.   TFormStyle = (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop);
  172.   TBorderIcon = (biSystemMenu, biMinimize, biMaximize, biHelp);
  173.   TBorderIcons = set of TBorderIcon;
  174.   TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly,
  175.     poScreenCenter, poDesktopCenter);
  176.   TDefaultMonitor = (dmDesktop, dmPrimary, dmMainForm, dmActiveForm);
  177.   TPrintScale = (poNone, poProportional, poPrintToFit);
  178.   TShowAction = (saIgnore, saRestore, saMinimize, saMaximize);
  179.   TTileMode = (tbHorizontal, tbVertical);
  180.   TModalResult = Low(Integer)..High(Integer);
  181.   TCloseAction = (caNone, caHide, caFree, caMinimize);
  182.   TCloseEvent = procedure(Sender: TObject; var Action: TCloseAction) of object;
  183.   TCloseQueryEvent = procedure(Sender: TObject;
  184.     var CanClose: Boolean) of object;
  185.   TFormState = set of (fsCreating, fsVisible, fsShowing, fsModal,
  186.     fsCreatedMDIChild);
  187.   TShortCutEvent = procedure (var Msg: TWMKey; var Handled: Boolean) of object;
  188.  
  189.   TCustomForm = class(TScrollingWinControl)
  190.   protected
  191.     FActionLists: TList;
  192.     FFormState: TFormState;
  193.     procedure Activate; dynamic;
  194.     procedure ActiveChanged; dynamic;
  195.     procedure AlignControls(AControl: TControl; var Rect: TRect); override;
  196.     procedure BeginAutoDrag; override;
  197.     procedure ChangeScale(M, D: Integer); override;
  198.     procedure CreateParams(var Params: TCreateParams); override;
  199.     procedure CreateWindowHandle(const Params: TCreateParams); override;
  200.     procedure CreateWnd; override;
  201.     procedure Deactivate; dynamic;
  202.     procedure DefineProperties(Filer: TFiler); override;
  203.     procedure DestroyWindowHandle; override;
  204.     procedure DoClose(var Action: TCloseAction); dynamic;
  205.     procedure DoHide; dynamic;
  206.     procedure DoShow; dynamic;
  207.     function GetClientRect: TRect; override;
  208.     procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
  209.     function GetFloating: Boolean; override;
  210.     procedure Loaded; override;
  211.     procedure Notification(AComponent: TComponent;
  212.       Operation: TOperation); override;
  213.     procedure Paint; dynamic;
  214.     procedure PaintWindow(DC: HDC); override;
  215.     function PaletteChanged(Foreground: Boolean): Boolean; override;
  216.     function QueryInterface(const IID: TGUID; out Obj): HResult; override;
  217.     procedure ReadState(Reader: TReader); override;
  218.     procedure RequestAlign; override;
  219.     procedure SetChildOrder(Child: TComponent; Order: Integer); override;
  220.     procedure SetParentBiDiMode(Value: Boolean); override;
  221.     procedure DoDock(NewDockSite: TWinControl; var ARect: TRect); override;
  222.     procedure SetParent(AParent: TWinControl); override;
  223.     procedure UpdateActions; virtual;
  224.     procedure UpdateWindowState;
  225.     procedure ValidateRename(AComponent: TComponent;
  226.       const CurName, NewName: string); override;
  227.     procedure VisibleChanging; override;
  228.     procedure WndProc(var Message: TMessage); override;
  229.     property ActiveMDIChild: TForm;
  230.     property BorderIcons: TBorderIcons default [biSystemMenu, biMinimize, biMaximize];
  231.     property AutoScroll stored IsAutoScrollStored;
  232.     property ClientHandle: HWND;
  233.     property ClientHeight write SetClientHeight stored IsClientSizeStored;
  234.     property ClientWidth write SetClientWidth stored IsClientSizeStored;
  235.     property Ctl3D default True;
  236.     property DefaultMonitor: TDefaultMonitor default dmActiveForm;
  237.     property FormStyle: TFormStyle default fsNormal;
  238.     property Height stored IsFormSizeStored;
  239.     property HorzScrollBar stored IsForm;
  240.     property Icon: TIcon;
  241.     property MDIChildCount: Integer;
  242.     property MDIChildren[I: Integer]: TForm;
  243.     property OldCreateOrder: Boolean;
  244.     property ObjectMenuItem: TMenuItem;
  245.     property PixelsPerInch: Integer;
  246.     property ParentFont default False;
  247.     property PopupMenu stored IsForm;
  248.     property Position: TPosition default poDesigned;
  249.     property PrintScale: TPrintScale default poProportional;
  250.     property Scaled: Boolean default True;
  251.     property TileMode: TTileMode default tbHorizontal;
  252.     property VertScrollBar stored IsForm;
  253.     property Visible write SetVisible default False;
  254.     property Width stored IsFormSizeStored;
  255.     property WindowMenu: TMenuItem;
  256.     property OnActivate: TNotifyEvent;
  257.     property OnCanResize stored IsForm;
  258.     property OnClick stored IsForm;
  259.     property OnClose: TCloseEvent;
  260.     property OnCloseQuery: TCloseQueryEvent;
  261.     property OnCreate: TNotifyEvent;
  262.     property OnDblClick stored IsForm;
  263.     property OnDestroy: TNotifyEvent;
  264.     property OnDeactivate: TNotifyEvent;
  265.     property OnDragDrop stored IsForm;
  266.     property OnDragOver stored IsForm;
  267.     property OnHelp: THelpEvent;
  268.     property OnHide: TNotifyEvent;
  269.     property OnKeyDown stored IsForm;
  270.     property OnKeyPress stored IsForm;
  271.     property OnKeyUp stored IsForm;
  272.     property OnMouseDown stored IsForm;
  273.     property OnMouseMove stored IsForm;
  274.     property OnMouseUp stored IsForm;
  275.     property OnPaint: TNotifyEvent;
  276.     property OnResize stored IsForm;
  277.     property OnShortCut: TShortCutEvent;
  278.     property OnShow: TNotifyEvent;
  279.   public
  280.     constructor Create(AOwner: TComponent); override;
  281.     constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0); virtual;
  282.     destructor Destroy; override;
  283.     procedure AfterConstruction; override;
  284.     procedure BeforeDestruction; override;
  285.     procedure Close;
  286.     function CloseQuery: Boolean; virtual;
  287.     procedure DefaultHandler(var Message); override;
  288.     procedure DefocusControl(Control: TWinControl; Removing: Boolean);
  289.     procedure Dock(NewDockSite: TWinControl; ARect: TRect); override;
  290.     procedure FocusControl(Control: TWinControl);
  291.     function GetFormImage: TBitmap;
  292.     procedure Hide;
  293.     function IsShortCut(var Message: TWMKey): Boolean; dynamic;
  294.     procedure MouseWheelHandler(var Message: TMessage); override;
  295.     procedure Print;
  296.     procedure Release;
  297.     procedure SendCancelMode(Sender: TControl);
  298.     procedure SetFocus; override;
  299.     function SetFocusedControl(Control: TWinControl): Boolean; virtual;
  300.     procedure Show;
  301.     function ShowModal: Integer; virtual;
  302.     function WantChildKey(Child: TControl; var Message: TMessage): Boolean; virtual;
  303.     property Active: Boolean;
  304.     property ActiveControl: TWinControl;
  305.     property Action;
  306.     property ActiveOleControl: TWinControl;
  307.     property BorderStyle: TFormBorderStyle default bsSizeable;
  308.     property Canvas: TCanvas;
  309.     property Caption stored IsForm;
  310.     property Color nodefault;
  311.     property Designer: IDesigner;
  312.     property DropTarget: Boolean;
  313.     property Font;
  314.     property FormState: TFormState;
  315.     property HelpFile: string;
  316.     property KeyPreview: Boolean default False;
  317.     property Menu: TMainMenu;
  318.     property ModalResult: TModalResult;
  319.     property Monitor: TMonitor;
  320.     property OleFormObject: IOleForm;
  321.     property WindowState: TWindowState default wsNormal;
  322.   end;
  323.  
  324.   { TCustomActiveForm }
  325.  
  326.   TActiveFormBorderStyle = (afbNone, afbSingle, afbSunken, afbRaised);
  327.  
  328.   TCustomActiveForm = class(TCustomForm)
  329.   protected
  330.     procedure CreateParams(var Params: TCreateParams); override;
  331.   public
  332.     constructor Create(AOwner: TComponent); override;
  333.     function WantChildKey(Child: TControl; var Message: TMessage): Boolean; override;
  334.     property Visible;
  335.   published
  336.     property ActiveControl;
  337.     property Anchors;
  338.     property AutoScroll;
  339.     property AutoSize;
  340.     property AxBorderStyle: TActiveFormBorderStyle default afbSingle;
  341.     property BorderWidth;
  342.     property Caption stored True;
  343.     property Color;
  344.     property Constraints;
  345.     property Font;
  346.     property Height stored True;
  347.     property HorzScrollBar;
  348.     property KeyPreview;
  349.     property OldCreateOrder;
  350.     property PixelsPerInch;
  351.     property PopupMenu;
  352.     property PrintScale;
  353.     property Scaled;
  354.     property ShowHint;
  355.     property VertScrollBar;
  356.     property Width stored True;
  357.     property OnActivate;
  358.     property OnClick;
  359.     property OnCreate;
  360.     property OnDblClick;
  361.     property OnDestroy;
  362.     property OnDeactivate;
  363.     property OnDragDrop;
  364.     property OnDragOver;
  365.     property OnKeyDown;
  366.     property OnKeyPress;
  367.     property OnKeyUp;
  368.     property OnMouseDown;
  369.     property OnMouseMove;
  370.     property OnMouseUp;
  371.     property OnPaint;
  372.   end;
  373.  
  374. { TForm }
  375.  
  376.   TForm = class(TCustomForm)
  377.   public
  378.     procedure ArrangeIcons;
  379.     procedure Cascade;
  380.     procedure Next;
  381.     procedure Previous;
  382.     procedure Tile;
  383.     property ActiveMDIChild;
  384.     property ClientHandle;
  385.     property DockManager;
  386.     property MDIChildCount;
  387.     property MDIChildren;
  388.     property TileMode;
  389.   published
  390.     property Action;
  391.     property ActiveControl;
  392.     property Align;
  393.     property Anchors;
  394.     property AutoScroll;
  395.     property AutoSize;
  396.     property BiDiMode;
  397.     property BorderIcons;
  398.     property BorderStyle;
  399.     property BorderWidth;
  400.     property Caption;
  401.     property ClientHeight;
  402.     property ClientWidth;
  403.     property Color;
  404.     property Constraints;
  405.     property Ctl3D;
  406.     property UseDockManager;
  407.     property DefaultMonitor;
  408.     property DockSite;
  409.     property DragKind;
  410.     property DragMode;
  411.     property Enabled;
  412.     property ParentFont default False;
  413.     property Font;
  414.     property FormStyle;
  415.     property Height;
  416.     property HelpFile;
  417.     property HorzScrollBar;
  418.     property Icon;
  419.     property KeyPreview;
  420.     property Menu;
  421.     property OldCreateOrder;
  422.     property ObjectMenuItem;
  423.     property ParentBiDiMode;
  424.     property PixelsPerInch;
  425.     property PopupMenu;
  426.     property Position;
  427.     property PrintScale;
  428.     property Scaled;
  429.     property ShowHint;
  430.     property VertScrollBar;
  431.     property Visible;
  432.     property Width;
  433.     property WindowState;
  434.     property WindowMenu;
  435.     property OnActivate;
  436.     property OnCanResize;
  437.     property OnClick;
  438.     property OnClose;
  439.     property OnCloseQuery;
  440.     property OnConstrainedResize;
  441.     property OnCreate;
  442.     property OnDblClick;
  443.     property OnDestroy;
  444.     property OnDeactivate;
  445.     property OnDockDrop;
  446.     property OnDockOver;
  447.     property OnDragDrop;
  448.     property OnDragOver;
  449.     property OnEndDock;
  450.     property OnGetSiteInfo;
  451.     property OnHide;
  452.     property OnHelp;
  453.     property OnKeyDown;
  454.     property OnKeyPress;
  455.     property OnKeyUp;
  456.     property OnMouseDown;
  457.     property OnMouseMove;
  458.     property OnMouseUp;
  459.     property OnMouseWheel;
  460.     property OnMouseWheelDown;
  461.     property OnMouseWheelUp;
  462.     property OnPaint;
  463.     property OnResize;
  464.     property OnShortCut;
  465.     property OnShow;
  466.     property OnStartDock;
  467.     property OnUnDock;
  468.   end;
  469.  
  470.   TFormClass = class of TForm;
  471.  
  472. { TCustomDockForm }
  473.  
  474.   TCustomDockForm = class(TCustomForm)
  475.   protected
  476.     procedure DoAddDockClient(Client: TControl; const ARect: TRect); override;
  477.     procedure DoRemoveDockClient(Client: TControl); override;
  478.     procedure GetSiteInfo(Client: TControl; var InfluenceRect: TRect;
  479.       MousePos: TPoint; var CanDock: Boolean); override;
  480.     procedure Loaded; override;
  481.   public
  482.     constructor Create(AOwner: TComponent); override;
  483.     property AutoScroll default False;
  484.     property BorderStyle default bsSizeToolWin;
  485.     property FormStyle default fsStayOnTop;
  486.   published
  487.     property PixelsPerInch;
  488.   end;
  489.  
  490. { TDataModule }
  491.  
  492.   TDataModule = class(TComponent)
  493.   protected
  494.     procedure DefineProperties(Filer: TFiler); override;
  495.     procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
  496.     function GetProviderNames: OleVariant; safecall;
  497.     procedure ReadState(Reader: TReader); override;
  498.     class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
  499.   public
  500.     constructor Create(AOwner: TComponent); override;
  501.     constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0);
  502.     destructor Destroy; override;
  503.     procedure AfterConstruction; override;
  504.     procedure BeforeDestruction; override;
  505.     property DesignOffset: TPoint;
  506.     property DesignSize: TPoint;
  507.   published
  508.     property OldCreateOrder: Boolean;
  509.     property OnCreate: TNotifyEvent;
  510.     property OnDestroy: TNotifyEvent;
  511.   end;
  512.  
  513. { TMonitor }
  514.  
  515.   TMonitor = class
  516.   public
  517.     property Handle: HMONITOR;
  518.     property MonitorNum: Integer;
  519.     property Left: Integer;
  520.     property Height: Integer;
  521.     property Top: Integer;
  522.     property Width: Integer;
  523.   end;
  524.  
  525. { TScreen }
  526.  
  527.   PCursorRec = ^TCursorRec;
  528.   TCursorRec = record
  529.     Next: PCursorRec;
  530.     Index: Integer;
  531.     Handle: HCURSOR;
  532.   end;
  533.  
  534.   TScreen = class(TComponent)
  535.   public
  536.     constructor Create(AOwner: TComponent); override;
  537.     destructor Destroy; override;
  538.     procedure DisableAlign;
  539.     procedure EnableAlign;
  540.     procedure Realign;
  541.     property ActiveControl: TWinControl;
  542.     property ActiveCustomForm: TCustomForm;
  543.     property ActiveForm: TForm;
  544.     property CustomFormCount: Integer;
  545.     property CustomForms[Index: Integer]: TCustomForm;
  546.     property Cursor: TCursor;
  547.     property Cursors[Index: Integer]: HCURSOR;
  548.     property DataModules[Index: Integer]: TDataModule;
  549.     property DataModuleCount: Integer;
  550.     property MonitorCount: Integer;
  551.     property Monitors[Index: Integer]: TMonitor;
  552.     property DesktopHeight: Integer;
  553.     property DesktopLeft: Integer;
  554.     property DesktopTop: Integer;
  555.     property DesktopWidth: Integer;
  556.     property IconFont: TFont;
  557.     property Fonts: TStrings;
  558.     property FormCount: Integer;
  559.     property Forms[Index: Integer]: TForm;
  560.     property Imes: TStrings;
  561.     property DefaultIme: string;
  562.     property DefaultKbLayout: HKL;
  563.     property Height: Integer;
  564.     property PixelsPerInch: Integer;
  565.     property Width: Integer;
  566.     property OnActiveControlChange: TNotifyEvent;
  567.     property OnActiveFormChange: TNotifyEvent;
  568.   end;
  569.  
  570. { TApplication }
  571.  
  572.   TTimerMode = (tmShow, tmHide);
  573.  
  574.   PHintInfo = ^THintInfo;
  575.   THintInfo = record
  576.     HintControl: TControl;
  577.     HintWindowClass: THintWindowClass;
  578.     HintPos: TPoint;
  579.     HintMaxWidth: Integer;
  580.     HintColor: TColor;
  581.     CursorRect: TRect;
  582.     CursorPos: TPoint;
  583.     ReshowTimeout: Integer;
  584.     HideTimeout: Integer;
  585.     HintStr: string;
  586.     HintData: Pointer;
  587.   end;
  588.  
  589.   TCMHintShow = record
  590.     Msg: Cardinal;
  591.     Reserved: Integer;
  592.     HintInfo: PHintInfo;
  593.     Result: Integer;
  594.   end;
  595.  
  596.   TCMHintShowPause = record
  597.     Msg: Cardinal;
  598.     WasActive: Integer;
  599.     Pause: PInteger;
  600.     Result: Integer;
  601.   end;
  602.  
  603.   TMessageEvent = procedure (var Msg: TMsg; var Handled: Boolean) of object;
  604.   TExceptionEvent = procedure (Sender: TObject; E: Exception) of object;
  605.   TIdleEvent = procedure (Sender: TObject; var Done: Boolean) of object;
  606.   TShowHintEvent = procedure (var HintStr: string; var CanShow: Boolean;
  607.     var HintInfo: THintInfo) of object;
  608.   TWindowHook = function (var Message: TMessage): Boolean of object;
  609.  
  610.   TApplication = class(TComponent)
  611.   public
  612.     constructor Create(AOwner: TComponent); override;
  613.     destructor Destroy; override;
  614.     procedure BringToFront;
  615.     procedure ControlDestroyed(Control: TControl);
  616.     procedure CancelHint;
  617.     procedure CreateForm(InstanceClass: TComponentClass; var Reference);
  618.     procedure CreateHandle;
  619.     function ExecuteAction(Action: TBasicAction): Boolean; reintroduce;
  620.     procedure HandleException(Sender: TObject);
  621.     procedure HandleMessage;
  622.     function HelpCommand(Command: Integer; Data: Longint): Boolean;
  623.     function HelpContext(Context: THelpContext): Boolean;
  624.     function HelpJump(const JumpID: string): Boolean;
  625.     procedure HideHint;
  626.     procedure HintMouseMessage(Control: TControl; var Message: TMessage);
  627.     procedure HookMainWindow(Hook: TWindowHook);
  628.     procedure Initialize;
  629.     function IsRightToLeft: Boolean;
  630.     function MessageBox(Text, Caption: PChar; Flags: Longint): Integer;
  631.     procedure Minimize;
  632.     procedure NormalizeAllTopMosts;
  633.     procedure NormalizeTopMosts;
  634.     procedure ProcessMessages;
  635.     procedure Restore;
  636.     procedure RestoreTopMosts;
  637.     procedure Run;
  638.     procedure ShowException(E: Exception);
  639.     procedure Terminate;
  640.     procedure UnhookMainWindow(Hook: TWindowHook);
  641.     function UpdateAction(Action: TBasicAction): Boolean; reintroduce;
  642.     function UseRightToLeftAlignment: Boolean;
  643.     function UseRightToLeftReading: Boolean;
  644.     function UseRightToLeftScrollBar: Boolean;
  645.     property Active: Boolean;
  646.     property AllowTesting: Boolean;
  647.     property CurrentHelpFile: string;
  648.     property DialogHandle: HWnd;
  649.     property ExeName: string;
  650.     property Handle: HWnd;
  651.     property HelpFile: string;
  652.     property Hint: string;
  653.     property HintColor: TColor;
  654.     property HintHidePause: Integer;
  655.     property HintPause: Integer;
  656.     property HintShortCuts: Boolean;
  657.     property HintShortPause: Integer;
  658.     property Icon: TIcon;
  659.     property MainForm: TForm;
  660.     property BiDiMode: TBiDiMode default bdLeftToRight;
  661.     property ShowHint: Boolean;
  662.     property ShowMainForm: Boolean;
  663.     property Terminated: Boolean;
  664.     property Title: string;
  665.     property UpdateFormatSettings: Boolean;
  666.     property UpdateMetricSettings: Boolean;
  667.     property OnActionExecute: TActionEvent;
  668.     property OnActionUpdate: TActionEvent;
  669.     property OnActivate: TNotifyEvent;
  670.     property OnDeactivate: TNotifyEvent;
  671.     property OnException: TExceptionEvent;
  672.     property OnIdle: TIdleEvent;
  673.     property OnHelp: THelpEvent;
  674.     property OnHint: TNotifyEvent;
  675.     property OnMessage: TMessageEvent;
  676.     property OnMinimize: TNotifyEvent;
  677.     property OnRestore: TNotifyEvent;
  678.     property OnShowHint: TShowHintEvent;
  679.     property OnShortCut: TShortCutEvent;
  680.   end;
  681.  
  682. { Global objects }
  683.  
  684. var
  685.   Application: TApplication;
  686.   Screen: TScreen;
  687.   Ctl3DBtnWndProc: Pointer = nil;
  688.   Ctl3DDlgFramePaint: function(Window: HWnd; Msg, wParam, lParam: Longint): Longint stdcall = nil;
  689.   Ctl3DCtlColorEx: function(Window: HWnd; Msg, wParam, lParam: Longint): Longint stdcall = nil;
  690.   HintWindowClass: THintWindowClass = THintWindow;
  691.   GetDataModuleProviderNames: function(Component: TComponent): Variant;
  692.   UpdateDataModuleRegistry: procedure(Register: Boolean; const ClassID, ProgID: string);
  693.  
  694. function GetParentForm(Control: TControl): TCustomForm;
  695. function ValidParentForm(Control: TControl): TCustomForm;
  696.  
  697. function DisableTaskWindows(ActiveWindow: HWnd): Pointer;
  698. procedure EnableTaskWindows(WindowList: Pointer);
  699.  
  700. function MakeObjectInstance(Method: TWndMethod): Pointer;
  701. procedure FreeObjectInstance(ObjectInstance: Pointer);
  702.  
  703. function IsAccel(VK: Word; const Str: string): Boolean;
  704.  
  705. function  Subclass3DWnd(Wnd: HWnd): Boolean;
  706. procedure Subclass3DDlg(Wnd: HWnd; Flags: Word);
  707. procedure SetAutoSubClass(Enable: Boolean);
  708. function AllocateHWnd(Method: TWndMethod): HWND;
  709. procedure DeallocateHWnd(Wnd: HWND);
  710. procedure DoneCtl3D;
  711. procedure InitCtl3D;
  712.  
  713. function KeysToShiftState(Keys: Word): TShiftState;
  714. function KeyDataToShiftState(KeyData: Longint): TShiftState;
  715. function KeyboardStateToShiftState(const KeyboardState: TKeyboardState): TShiftState;
  716.  
  717. function ForegroundTask: Boolean;
  718.  
  719. implementation
  720.