home *** CD-ROM | disk | FTP | other *** search
-
- {*******************************************************}
- { }
- { Delphi Visual Component Library }
- { }
- { Copyright (c) 1995,97 Borland International }
- { }
- {*******************************************************}
-
- unit Forms;
-
- {$P+,S-,W-,R-}
- {$C PRELOAD}
-
- interface
-
- uses Messages, Windows, SysUtils, Classes, Graphics, Menus, Controls, Imm;
-
- type
-
- { Forward declarations }
-
- TScrollingWinControl = class;
- TCustomForm = class;
- TForm = class;
-
- { TControlScrollBar }
-
- TScrollBarKind = (sbHorizontal, sbVertical);
- TScrollBarInc = 1..32767;
-
- TControlScrollBar = class(TPersistent)
- public
- procedure Assign(Source: TPersistent); override;
- property Kind: TScrollBarKind;
- property ScrollPos: Integer;
- published
- property Margin: Word default 0;
- property Increment: TScrollBarInc default 8;
- property Range: Integer default 0;
- property Position: Integer default 0;
- property Tracking: Boolean default False;
- property Visible: Boolean default True;
- end;
-
- { TScrollingWinControl }
-
- TScrollingWinControl = class(TWinControl)
- protected
- procedure AutoScrollInView(AControl: TControl);
- procedure ChangeScale(M, D: Integer); override;
- procedure CreateParams(var Params: TCreateParams); override;
- procedure CreateWnd; override;
- procedure AlignControls(AControl: TControl; var ARect: TRect); override;
- property AutoScroll: Boolean default True;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- procedure DisableAutoRange;
- procedure EnableAutoRange;
- procedure ScrollInView(AControl: TControl);
- published
- property HorzScrollBar: TControlScrollBar;
- property VertScrollBar: TControlScrollBar;
- end;
-
- { TScrollBox }
-
- TFormBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow,
- bsSizeToolWin);
- TBorderStyle = bsNone..bsSingle;
-
- TScrollBox = class(TScrollingWinControl)
- protected
- procedure CreateParams(var Params: TCreateParams); override;
- procedure Resize; dynamic;
- public
- constructor Create(AOwner: TComponent); override;
- published
- property Align;
- property AutoScroll;
- property BorderStyle: TBorderStyle default bsSingle;
- property DragCursor;
- property DragMode;
- property Enabled;
- property Color nodefault;
- property Ctl3D;
- property Font;
- property ParentColor;
- property ParentCtl3D;
- property ParentFont;
- property ParentShowHint;
- property PopupMenu;
- property ShowHint;
- property TabOrder;
- property TabStop;
- property Visible;
- property OnClick;
- property OnDblClick;
- property OnDragDrop;
- property OnDragOver;
- property OnEndDrag;
- property OnEnter;
- property OnExit;
- property OnMouseDown;
- property OnMouseMove;
- property OnMouseUp;
- property OnResize: TNotifyEvent;
- end;
-
- { TDesigner }
-
- TDesigner = class(TObject)
- public
- function IsDesignMsg(Sender: TControl; var Message: TMessage): Boolean;
- virtual; abstract;
- procedure Modified; virtual; abstract;
- procedure Notification(AComponent: TComponent;
- Operation: TOperation); virtual; abstract;
- procedure PaintGrid; virtual; abstract;
- procedure ValidateRename(AComponent: TComponent;
- const CurName, NewName: string); virtual; abstract;
- property IsControl: Boolean;
- property Form: TCustomForm;
- end;
-
- { IOleForm }
-
- IOleForm = interface
- ['{CD02E1C1-52DA-11D0-9EA6-0020AF3D82DA}']
- procedure OnDestroy;
- procedure OnResize;
- end;
-
- { TCustomForm }
-
- TWindowState = (wsNormal, wsMinimized, wsMaximized);
- TFormStyle = (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop);
- TBorderIcon = (biSystemMenu, biMinimize, biMaximize, biHelp);
- TBorderIcons = set of TBorderIcon;
- TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly,
- poScreenCenter);
- TPrintScale = (poNone, poProportional, poPrintToFit);
- TShowAction = (saIgnore, saRestore, saMinimize, saMaximize);
- TTileMode = (tbHorizontal, tbVertical);
- TModalResult = Low(Integer)..High(Integer);
- TCloseAction = (caNone, caHide, caFree, caMinimize);
- TCloseEvent = procedure(Sender: TObject; var Action: TCloseAction) of object;
- TCloseQueryEvent = procedure(Sender: TObject;
- var CanClose: Boolean) of object;
- TFormState = set of (fsCreating, fsVisible, fsShowing, fsModal,
- fsCreatedMDIChild);
-
- TCustomForm = class(TScrollingWinControl)
- protected
- procedure Activate; dynamic;
- procedure ActiveChanged; dynamic;
- procedure ChangeScale(M, D: Integer); override;
- procedure CreateParams(var Params: TCreateParams); override;
- procedure CreateWindowHandle(const Params: TCreateParams); override;
- procedure CreateWnd; override;
- procedure Deactivate; dynamic;
- procedure DefaultHandler(var Message); override;
- procedure DefineProperties(Filer: TFiler); override;
- procedure DestroyWindowHandle; override;
- procedure DoHide; dynamic;
- procedure DoShow; dynamic;
- function GetClientRect: TRect; override;
- procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
- procedure Loaded; override;
- procedure Notification(AComponent: TComponent;
- Operation: TOperation); override;
- procedure Paint; dynamic;
- procedure PaintWindow(DC: HDC); override;
- function PaletteChanged(Foreground: Boolean): Boolean; override;
- procedure SetChildOrder(Child: TComponent; Order: Integer); override;
- procedure ReadState(Reader: TReader); override;
- procedure Resize; dynamic;
- procedure SetParent(AParent: TWinControl); override;
- procedure ValidateRename(AComponent: TComponent;
- const CurName, NewName: string); override;
- procedure VisibleChanging; override;
- procedure WndProc(var Message: TMessage); override;
- property ActiveMDIChild: TForm;
- property BorderIcons: TBorderIcons default [biSystemMenu, biMinimize, biMaximize];
- property BorderStyle: TFormBorderStyle default bsSizeable;
- property AutoScroll stored IsAutoScrollStored;
- property ClientHandle: HWND;
- property ClientHeight write SetClientHeight stored IsClientSizeStored;
- property ClientWidth write SetClientWidth stored IsClientSizeStored;
- property Ctl3D default True;
- property FormStyle: TFormStyle default fsNormal;
- property Height stored IsFormSizeStored;
- property HorzScrollBar stored IsForm;
- property Icon: TIcon;
- property MDIChildCount: Integer;
- property MDIChildren[I: Integer]: TForm;
- property ObjectMenuItem: TMenuItem;
- property PixelsPerInch: Integer;
- property ParentFont default False;
- property PopupMenu stored IsForm;
- property Position: TPosition default poDesigned;
- property PrintScale: TPrintScale default poProportional;
- property Scaled: Boolean default True;
- property TileMode: TTileMode default tbHorizontal;
- property VertScrollBar stored IsForm;
- property Visible write SetVisible default False;
- property Width stored IsFormSizeStored;
- property WindowMenu: TMenuItem;
- property OnActivate: TNotifyEvent;
- property OnClick stored IsForm;
- property OnClose: TCloseEvent;
- property OnCloseQuery: TCloseQueryEvent;
- property OnCreate: TNotifyEvent;
- property OnDblClick stored IsForm;
- property OnDestroy: TNotifyEvent;
- property OnDeactivate: TNotifyEvent;
- property OnDragDrop stored IsForm;
- property OnDragOver stored IsForm;
- property OnHelp: THelpEvent;
- property OnHide: TNotifyEvent;
- property OnKeyDown stored IsForm;
- property OnKeyPress stored IsForm;
- property OnKeyUp stored IsForm;
- property OnMouseDown stored IsForm;
- property OnMouseMove stored IsForm;
- property OnMouseUp stored IsForm;
- property OnPaint: TNotifyEvent;
- property OnResize: TNotifyEvent;
- property OnShow: TNotifyEvent;
- public
- constructor Create(AOwner: TComponent); override;
- constructor CreateNew(AOwner: TComponent);
- destructor Destroy; override;
- procedure Close;
- function CloseQuery: Boolean;
- procedure DefocusControl(Control: TWinControl; Removing: Boolean);
- procedure FocusControl(Control: TWinControl);
- function GetFormImage: TBitmap;
- procedure Hide;
- procedure Print;
- procedure Release;
- procedure SendCancelMode(Sender: TControl);
- procedure SetFocus; override;
- function SetFocusedControl(Control: TWinControl): Boolean;
- procedure Show;
- function ShowModal: Integer;
- function WantChildKey(Child: TControl; var Message: TMessage): Boolean; virtual;
- property Active: Boolean;
- property ActiveControl: TWinControl;
- property ActiveOleControl: TWinControl;
- property Canvas: TCanvas;
- property Caption stored IsForm;
- property Color stored IsColorStored;
- property Designer: TDesigner;
- property DropTarget: Boolean;
- property Font;
- property HelpFile: string;
- property KeyPreview: Boolean default False;
- property Menu: TMainMenu;
- property ModalResult: TModalResult;
- property OleFormObject: IOleForm;
- property WindowState: TWindowState default wsNormal;
- end;
-
- { TForm }
-
- TForm = class(TCustomForm)
- public
- procedure ArrangeIcons;
- procedure Cascade;
- procedure Next;
- procedure Previous;
- procedure Tile;
- property ActiveMDIChild;
- property ClientHandle;
- property MDIChildCount;
- property MDIChildren;
- property TileMode;
- published
- property ActiveControl;
- property BorderIcons;
- property BorderStyle;
- property AutoScroll;
- property Caption;
- property ClientHeight;
- property ClientWidth;
- property Ctl3D;
- property Color;
- property Enabled;
- property ParentFont default False;
- property Font;
- property FormStyle;
- property Height;
- property HelpFile;
- property HorzScrollBar;
- property Icon;
- property KeyPreview;
- property Menu;
- property ObjectMenuItem;
- property PixelsPerInch;
- property PopupMenu;
- property Position;
- property PrintScale;
- property Scaled;
- property ShowHint;
- property VertScrollBar;
- property Visible;
- property Width;
- property WindowState;
- property WindowMenu;
- property OnActivate;
- property OnClick;
- property OnClose;
- property OnCloseQuery;
- property OnCreate;
- property OnDblClick;
- property OnDestroy;
- property OnDeactivate;
- property OnDragDrop;
- property OnDragOver;
- property OnHide;
- property OnHelp;
- property OnKeyDown;
- property OnKeyPress;
- property OnKeyUp;
- property OnMouseDown;
- property OnMouseMove;
- property OnMouseUp;
- property OnPaint;
- property OnResize;
- property OnShow;
- end;
-
- TFormClass = class of TForm;
-
- { TDataModule }
-
- TDataModule = class(TComponent)
- protected
- procedure DefineProperties(Filer: TFiler); override;
- procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
- function GetProviderNames: OleVariant; safecall;
- class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
- public
- constructor Create(AOwner: TComponent); override;
- constructor CreateNew(AOwner: TComponent);
- destructor Destroy; override;
- property DesignOffset: TPoint;
- property DesignSize: TPoint;
- published
- property OnCreate: TNotifyEvent;
- property OnDestroy: TNotifyEvent;
- end;
-
- { TScreen }
-
- PCursorRec = ^TCursorRec;
- TCursorRec = record
- Next: PCursorRec;
- Index: Integer;
- Handle: HCURSOR;
- end;
-
- TScreen = class(TComponent)
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- property ActiveControl: TWinControl;
- property ActiveCustomForm: TCustomForm;
- property ActiveForm: TForm;
- property CustomFormCount: Integer;
- property CustomForms[Index: Integer]: TCustomForm;
- property Cursor: TCursor;
- property Cursors[Index: Integer]: HCURSOR;
- property DataModules[Index: Integer]: TDataModule;
- property DataModuleCount: Integer;
- property IconFont: TFont;
- property Fonts: TStrings;
- property FormCount: Integer;
- property Forms[Index: Integer]: TForm;
- property Imes: TStrings;
- property DefaultIme: string;
- property DefaultKbLayout: HKL;
- property Height: Integer;
- property PixelsPerInch: Integer;
- property Width: Integer;
- property OnActiveControlChange: TNotifyEvent;
- property OnActiveFormChange: TNotifyEvent;
- end;
-
- { TApplication }
-
- TTimerMode = (tmShow, tmHide);
-
- PHintInfo = ^THintInfo;
- THintInfo = record
- HintControl: TControl;
- HintWindowClass: THintWindowClass;
- HintPos: TPoint;
- HintMaxWidth: Integer;
- HintColor: TColor;
- CursorRect: TRect;
- CursorPos: TPoint;
- ReshowTimeout: Integer;
- HideTimeout: Integer;
- HintStr: string;
- HintData: Pointer;
- end;
-
- TCMHintShow = record
- Msg: Cardinal;
- Reserved: Integer;
- HintInfo: PHintInfo;
- Result: Integer;
- end;
-
- TMessageEvent = procedure (var Msg: TMsg; var Handled: Boolean) of object;
- TExceptionEvent = procedure (Sender: TObject; E: Exception) of object;
- TIdleEvent = procedure (Sender: TObject; var Done: Boolean) of object;
- TShowHintEvent = procedure (var HintStr: string; var CanShow: Boolean;
- var HintInfo: THintInfo) of object;
- TWindowHook = function (var Message: TMessage): Boolean of object;
-
- TApplication = class(TComponent)
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- procedure BringToFront;
- procedure ControlDestroyed(Control: TControl);
- procedure CancelHint;
- procedure CreateForm(InstanceClass: TComponentClass; var Reference);
- procedure CreateHandle;
- procedure HandleException(Sender: TObject);
- procedure HandleMessage;
- function HelpCommand(Command: Integer; Data: Longint): Boolean;
- function HelpContext(Context: THelpContext): Boolean;
- function HelpJump(const JumpID: string): Boolean;
- procedure HideHint;
- procedure HintMouseMessage(Control: TControl; var Message: TMessage);
- procedure HookMainWindow(Hook: TWindowHook);
- procedure Initialize;
- function MessageBox(Text, Caption: PChar; Flags: Longint): Integer;
- procedure Minimize;
- procedure NormalizeAllTopMosts;
- procedure NormalizeTopMosts;
- procedure ProcessMessages;
- procedure Restore;
- procedure RestoreTopMosts;
- procedure Run;
- procedure ShowException(E: Exception);
- procedure Terminate;
- procedure UnhookMainWindow(Hook: TWindowHook);
- property Active: Boolean;
- property AllowTesting: Boolean;
- property CurrentHelpFile: string;
- property DialogHandle: HWnd;
- property ExeName: string;
- property Handle: HWnd;
- property HelpFile: string;
- property Hint: string;
- property HintColor: TColor;
- property HintPause: Integer;
- property HintShortPause: Integer;
- property HintHidePause: Integer;
- property Icon: TIcon;
- property MainForm: TForm;
- property ShowHint: Boolean;
- property ShowMainForm: Boolean;
- property Terminated: Boolean;
- property Title: string;
- property UpdateFormatSettings: Boolean;
- property UpdateMetricSettings: Boolean;
- property OnActivate: TNotifyEvent;
- property OnDeactivate: TNotifyEvent;
- property OnException: TExceptionEvent;
- property OnIdle: TIdleEvent;
- property OnHelp: THelpEvent;
- property OnHint: TNotifyEvent;
- property OnMessage: TMessageEvent;
- property OnMinimize: TNotifyEvent;
- property OnRestore: TNotifyEvent;
- property OnShowHint: TShowHintEvent;
- end;
-
- { Global objects }
-
- var
- Application: TApplication;
- Screen: TScreen;
- Ctl3DBtnWndProc: Pointer = nil;
- Ctl3DDlgFramePaint: function(Window: HWnd; Msg, wParam, lParam: Longint): Longint stdcall = nil;
- Ctl3DCtlColorEx: function(Window: HWnd; Msg, wParam, lParam: Longint): Longint stdcall = nil;
- HintWindowClass: THintWindowClass = THintWindow;
- GetDataModuleProviderNames: function(Component: TComponent): Variant;
- UpdateDataModuleRegistry: procedure(Register: Boolean; const ClassID, ProgID: string);
-
- function GetParentForm(Control: TControl): TCustomForm;
- function ValidParentForm(Control: TControl): TCustomForm;
-
- function DisableTaskWindows(ActiveWindow: HWnd): Pointer;
- procedure EnableTaskWindows(WindowList: Pointer);
-
- function MakeObjectInstance(Method: TWndMethod): Pointer;
- procedure FreeObjectInstance(ObjectInstance: Pointer);
-
- function IsAccel(VK: Word; const Str: string): Boolean;
-
- function Subclass3DWnd(Wnd: HWnd): Boolean;
- procedure Subclass3DDlg(Wnd: HWnd; Flags: Word);
- procedure SetAutoSubClass(Enable: Boolean);
- function AllocateHWnd(Method: TWndMethod): HWND;
- procedure DeallocateHWnd(Wnd: HWND);
- procedure DoneCtl3D;
- procedure InitCtl3D;
-
- function KeysToShiftState(Keys: Word): TShiftState;
- function KeyDataToShiftState(KeyData: Longint): TShiftState;
-
- function ForegroundTask: Boolean;
-
- implementation
-