home *** CD-ROM | disk | FTP | other *** search
/ PC Format Collection 48 / SENT14D.ISO / tech / delphi / disk14 / doc.pak / DBCTRLS.INT < prev    next >
Encoding:
Text File  |  1995-08-24  |  14.6 KB  |  529 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Delphi Visual Component Library                 }
  5. {                                                       }
  6. {       Copyright (c) 1995 Borland International        }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit DBCtrls;
  11.  
  12. interface
  13.  
  14. uses SysUtils, WinTypes, WinProcs, Messages, Classes, Controls, Forms,
  15.   Graphics, Menus, StdCtrls, ExtCtrls, DB, DBTables, Mask, Buttons;
  16.  
  17. type
  18.  
  19. { TDBEdit }
  20.  
  21.   TDBEdit = class(TCustomMaskEdit)
  22.   protected
  23.     procedure Change; override;
  24.     function EditCanModify: Boolean; override;
  25.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  26.     procedure KeyPress(var Key: Char); override;
  27.     procedure Notification(AComponent: TComponent;
  28.       Operation: TOperation); override;
  29.   public
  30.     constructor Create(AOwner: TComponent); override;
  31.     destructor Destroy; override;
  32.     property Field: TField;
  33.   published
  34.     property AutoSelect;
  35.     property AutoSize;
  36.     property BorderStyle;
  37.     property CharCase;
  38.     property Color;
  39.     property Ctl3D;
  40.     property DataField: string;
  41.     property DataSource: TDataSource;
  42.     property DragCursor;
  43.     property DragMode;
  44.     property Enabled;
  45.     property Font;
  46.     property MaxLength;
  47.     property ParentColor;
  48.     property ParentCtl3D;
  49.     property ParentFont;
  50.     property ParentShowHint;
  51.     property PasswordChar;
  52.     property PopupMenu;
  53.     property ReadOnly: Boolean default False;
  54.     property ShowHint;
  55.     property TabOrder;
  56.     property TabStop;
  57.     property Visible;
  58.     property OnChange;
  59.     property OnClick;
  60.     property OnDblClick;
  61.     property OnDragDrop;
  62.     property OnDragOver;
  63.     property OnEndDrag;
  64.     property OnEnter;
  65.     property OnExit;
  66.     property OnKeyDown;
  67.     property OnKeyPress;
  68.     property OnKeyUp;
  69.     property OnMouseDown;
  70.     property OnMouseMove;
  71.     property OnMouseUp;
  72.   end;
  73.  
  74. { TDBText }
  75.  
  76.   TDBText = class(TCustomLabel)
  77.   protected
  78.     procedure Notification(AComponent: TComponent;
  79.       Operation: TOperation); override;
  80.   public
  81.     constructor Create(AOwner: TComponent); override;
  82.     destructor Destroy; override;
  83.     property Field: TField;
  84.   published
  85.     property Align;
  86.     property Alignment;
  87.     property AutoSize default False;
  88.     property Color;
  89.     property DataField: string;
  90.     property DataSource: TDataSource;
  91.     property DragCursor;
  92.     property DragMode;
  93.     property Enabled;
  94.     property Font;
  95.     property ParentColor;
  96.     property ParentFont;
  97.     property ParentShowHint;
  98.     property PopupMenu;
  99.     property Transparent;
  100.     property ShowHint;
  101.     property Visible;
  102.     property WordWrap;
  103.     property OnClick;
  104.     property OnDblClick;
  105.     property OnDragDrop;
  106.     property OnDragOver;
  107.     property OnEndDrag;
  108.     property OnMouseDown;
  109.     property OnMouseMove;
  110.     property OnMouseUp;
  111.   end;
  112.  
  113. { TDBCheckBox }
  114.  
  115.   TDBCheckBox = class(TCustomCheckBox)
  116.   protected
  117.     procedure Toggle; override;
  118.     procedure KeyPress(var Key: Char); override;
  119.     procedure Notification(AComponent: TComponent;
  120.       Operation: TOperation); override;
  121.   public
  122.     constructor Create(AOwner: TComponent); override;
  123.     destructor Destroy; override;
  124.     property Checked;
  125.     property Field: TField;
  126.     property State;
  127.   published
  128.     property Alignment;
  129.     property AllowGrayed;
  130.     property Caption;
  131.     property Color;
  132.     property Ctl3D;
  133.     property DataField: string;
  134.     property DataSource: TDataSource;
  135.     property DragCursor;
  136.     property DragMode;
  137.     property Enabled;
  138.     property Font;
  139.     property ParentColor;
  140.     property ParentCtl3D;
  141.     property ParentFont;
  142.     property ParentShowHint;
  143.     property PopupMenu;
  144.     property ReadOnly: Boolean default False;
  145.     property ShowHint;
  146.     property TabOrder;
  147.     property TabStop;
  148.     property ValueChecked: string;
  149.     property ValueUnchecked: string;
  150.     property Visible;
  151.     property OnClick;
  152.     property OnDragDrop;
  153.     property OnDragOver;
  154.     property OnEndDrag;
  155.     property OnEnter;
  156.     property OnExit;
  157.     property OnKeyDown;
  158.     property OnKeyPress;
  159.     property OnKeyUp;
  160.     property OnMouseDown;
  161.     property OnMouseMove;
  162.     property OnMouseUp;
  163.   end;
  164.  
  165. { TDBComboBox }
  166.  
  167.   TDBComboBox = class(TCustomComboBox)
  168.   protected
  169.     procedure Change; override;
  170.     procedure Click; override;
  171.     procedure ComboWndProc(var Message: TMessage; ComboWnd: HWnd;
  172.       ComboProc: Pointer); override;
  173.     procedure CreateWnd; override;
  174.     procedure DropDown; override;
  175.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  176.     procedure KeyPress(var Key: Char); override;
  177.     procedure Notification(AComponent: TComponent;
  178.       Operation: TOperation); override;
  179.     procedure WndProc(var Message: TMessage); override;
  180.   public
  181.     constructor Create(AOwner: TComponent); override;
  182.     destructor Destroy; override;
  183.     property Field: TField;
  184.     property Text;
  185.   published
  186.     property Style; {Must be published before Items}
  187.     property Color;
  188.     property Ctl3D;
  189.     property DataField: string;
  190.     property DataSource: TDataSource;
  191.     property DragMode;
  192.     property DragCursor;
  193.     property DropDownCount;
  194.     property Enabled;
  195.     property Font;
  196.     property ItemHeight;
  197.     property Items write SetItems;
  198.     property ParentColor;
  199.     property ParentCtl3D;
  200.     property ParentFont;
  201.     property ParentShowHint;
  202.     property PopupMenu;
  203.     property ReadOnly: Boolean default False;
  204.     property ShowHint;
  205.     property Sorted;
  206.     property TabOrder;
  207.     property TabStop;
  208.     property Visible;
  209.     property OnChange;
  210.     property OnClick;
  211.     property OnDblClick;
  212.     property OnDragDrop;
  213.     property OnDragOver;
  214.     property OnDrawItem;
  215.     property OnDropDown;
  216.     property OnEndDrag;
  217.     property OnEnter;
  218.     property OnExit;
  219.     property OnKeyDown;
  220.     property OnKeyPress;
  221.     property OnKeyUp;
  222.     property OnMeasureItem;
  223.   end;
  224.  
  225. { TDBListBox }
  226.  
  227.   TDBListBox = class(TCustomListBox)
  228.   protected
  229.     procedure Click; override;
  230.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  231.     procedure KeyPress(var Key: Char); override;
  232.     procedure Notification(AComponent: TComponent;
  233.       Operation: TOperation); override;
  234.   public
  235.     constructor Create(AOwner: TComponent); override;
  236.     destructor Destroy; override;
  237.     property Field: TField;
  238.   published
  239.     property Align;
  240.     property BorderStyle;
  241.     property Color;
  242.     property Ctl3D default True;
  243.     property DataField: string;
  244.     property DataSource: TDataSource;
  245.     property DragCursor;
  246.     property DragMode;
  247.     property Enabled;
  248.     property Font;
  249.     property IntegralHeight;
  250.     property ItemHeight;
  251.     property Items write SetItems;
  252.     property ParentColor;
  253.     property ParentCtl3D;
  254.     property ParentFont;
  255.     property ParentShowHint;
  256.     property PopupMenu;
  257.     property ReadOnly: Boolean default False;
  258.     property ShowHint;
  259.     property TabOrder;
  260.     property TabStop;
  261.     property Visible;
  262.     property OnClick;
  263.     property OnDblClick;
  264.     property OnDragDrop;
  265.     property OnDragOver;
  266.     property OnDrawItem;
  267.     property OnEndDrag;
  268.     property OnEnter;
  269.     property OnExit;
  270.     property OnKeyDown;
  271.     property OnKeyPress;
  272.     property OnKeyUp;
  273.     property OnMeasureItem;
  274.     property OnMouseDown;
  275.     property OnMouseMove;
  276.     property OnMouseUp;
  277.   end;
  278.  
  279. { TDBRadioGroup }
  280.  
  281.   TDBRadioGroup = class(TCustomRadioGroup)
  282.   protected
  283.     procedure Change; dynamic;
  284.     procedure Click; override;
  285.     procedure KeyPress(var Key: Char); override;
  286.     function CanModify: Boolean; override;
  287.     procedure Notification(AComponent: TComponent;
  288.       Operation: TOperation); override;
  289.     property DataLink: TFieldDataLink;
  290.   public
  291.     constructor Create(AOwner: TComponent); override;
  292.     destructor Destroy; override;
  293.     property Field: TField;
  294.     property ItemIndex;
  295.     property Value: string;
  296.   published
  297.     property Align;
  298.     property Caption;
  299.     property Color;
  300.     property Columns;
  301.     property Ctl3D;
  302.     property DataField: string;
  303.     property DataSource: TDataSource;
  304.     property DragCursor;
  305.     property DragMode;
  306.     property Enabled;
  307.     property Font;
  308.     property Items write SetItems;
  309.     property ParentColor;
  310.     property ParentCtl3D;
  311.     property ParentFont;
  312.     property ParentShowHint;
  313.     property PopupMenu;
  314.     property ReadOnly: Boolean default False;
  315.     property ShowHint;
  316.     property TabOrder;
  317.     property TabStop;
  318.     property Values: TStrings;
  319.     property Visible;
  320.     property OnChange: TNotifyEvent;
  321.     property OnClick;
  322.     property OnDragDrop;
  323.     property OnDragOver;
  324.     property OnEndDrag;
  325.     property OnEnter;
  326.     property OnExit;
  327.   end;
  328.  
  329. { TDBMemo }
  330.  
  331.   TDBMemo = class(TCustomMemo)
  332.   protected
  333.     procedure Change; override;
  334.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  335.     procedure KeyPress(var Key: Char); override;
  336.     procedure Notification(AComponent: TComponent;
  337.       Operation: TOperation); override;
  338.   public
  339.     constructor Create(AOwner: TComponent); override;
  340.     destructor Destroy; override;
  341.     procedure LoadMemo;
  342.     property Field: TField;
  343.   published
  344.     property Align;
  345.     property Alignment;
  346.     property AutoDisplay: Boolean default True;
  347.     property BorderStyle;
  348.     property Color;
  349.     property Ctl3D;
  350.     property DataField: string;
  351.     property DataSource: TDataSource;
  352.     property DragCursor;
  353.     property DragMode;
  354.     property Enabled;
  355.     property Font;
  356.     property MaxLength;
  357.     property ParentColor;
  358.     property ParentCtl3D;
  359.     property ParentFont;
  360.     property ParentShowHint;
  361.     property PopupMenu;
  362.     property ReadOnly: Boolean default False;
  363.     property ScrollBars;
  364.     property ShowHint;
  365.     property TabOrder;
  366.     property TabStop;
  367.     property Visible;
  368.     property WantTabs;
  369.     property WordWrap;
  370.     property OnChange;
  371.     property OnClick;
  372.     property OnDblClick;
  373.     property OnDragDrop;
  374.     property OnDragOver;
  375.     property OnEndDrag;
  376.     property OnEnter;
  377.     property OnExit;
  378.     property OnKeyDown;
  379.     property OnKeyPress;
  380.     property OnKeyUp;
  381.     property OnMouseDown;
  382.     property OnMouseMove;
  383.     property OnMouseUp;
  384.   end;
  385.  
  386. { TDBImage }
  387.  
  388.   TDBImage = class(TCustomControl)
  389.   protected
  390.     procedure CreateParams(var Params: TCreateParams); override;
  391.     function GetPalette: HPALETTE; override;
  392.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  393.     procedure KeyPress(var Key: Char); override;
  394.     procedure Notification(AComponent: TComponent;
  395.       Operation: TOperation); override;
  396.     procedure Paint; override;
  397.   public
  398.     constructor Create(AOwner: TComponent); override;
  399.     destructor Destroy; override;
  400.     procedure CopyToClipboard;
  401.     procedure CutToClipboard;
  402.     procedure LoadPicture;
  403.     procedure PasteFromClipboard;
  404.     property Field: TField;
  405.     property Picture: TPicture;
  406.   published
  407.     property Align;
  408.     property AutoDisplay: Boolean default True;
  409.     property BorderStyle: TBorderStyle default bsSingle;
  410.     property Center: Boolean default True;
  411.     property Color;
  412.     property Ctl3D;
  413.     property DataField: string;
  414.     property DataSource: TDataSource;
  415.     property DragCursor;
  416.     property DragMode;
  417.     property Enabled;
  418.     property Font;
  419.     property ParentColor default False;
  420.     property ParentCtl3D;
  421.     property ParentFont;
  422.     property ParentShowHint;
  423.     property PopupMenu;
  424.     property ReadOnly: Boolean default False;
  425.     property ShowHint;
  426.     property Stretch: Boolean default False;
  427.     property TabOrder;
  428.     property TabStop default True;
  429.     property Visible;
  430.     property OnClick;
  431.     property OnDblClick;
  432.     property OnDragDrop;
  433.     property OnDragOver;
  434.     property OnEndDrag;
  435.     property OnEnter;
  436.     property OnExit;
  437.     property OnKeyDown;
  438.     property OnKeyPress;
  439.     property OnKeyUp;
  440.     property OnMouseDown;
  441.     property OnMouseMove;
  442.     property OnMouseUp;
  443.   end;
  444.  
  445. type
  446.   TNavButton = class;
  447.   TNavDataLink = class;
  448.  
  449.   TNavGlyph = (ngEnabled, ngDisabled);
  450.   TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast,
  451.                   nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh);
  452.   TButtonSet = set of TNavigateBtn;
  453.   TNavButtonStyle = set of (nsAllowTimer, nsFocusRect);
  454.  
  455.   ENavClick = procedure (Sender: TObject; Button: TNavigateBtn) of object;
  456.  
  457. { TDBNavigator }
  458.  
  459.   TDBNavigator = class (TCustomPanel)
  460.   protected
  461.     Buttons: array[TNavigateBtn] of TNavButton;
  462.     procedure DataChanged;
  463.     procedure EditingChanged;
  464.     procedure ActiveChanged;
  465.     procedure Loaded; override;
  466.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  467.     procedure Notification(AComponent: TComponent;
  468.       Operation: TOperation); override;
  469.   public
  470.     constructor Create(AOwner: TComponent); override;
  471.     destructor Destroy; override;
  472.     procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
  473.     procedure BtnClick(Index: TNavigateBtn);
  474.   published
  475.     property DataSource: TDataSource;
  476.     property VisibleButtons: TButtonSet default [nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh];
  477.     property Align;
  478.     property DragCursor;
  479.     property DragMode;
  480.     property Enabled;
  481.     property Ctl3D;
  482.     property Hints: TStrings;
  483.     property ParentCtl3D;
  484.     property ParentShowHint;
  485.     property PopupMenu;
  486.     property ConfirmDelete: Boolean default True;
  487.     property ShowHint;
  488.     property TabOrder;
  489.     property TabStop;
  490.     property Visible;
  491.     property OnClick: ENavClick;
  492.     property OnDblClick;
  493.     property OnDragDrop;
  494.     property OnDragOver;
  495.     property OnEndDrag;
  496.     property OnEnter;
  497.     property OnExit;
  498.     property OnResize;
  499.   end;
  500.  
  501. { TNavButton }
  502.  
  503.   TNavButton = class(TSpeedButton)
  504.   protected
  505.     procedure Paint; override;
  506.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  507.       X, Y: Integer); override;
  508.     procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
  509.       X, Y: Integer); override;
  510.   public
  511.     destructor Destroy; override;
  512.     property NavStyle: TNavButtonStyle;
  513.     property Index : TNavigateBtn;
  514.   end;
  515.  
  516. { TNavDataLink }
  517.  
  518.   TNavDataLink = class(TDataLink)
  519.   protected
  520.     procedure EditingChanged; override;
  521.     procedure DataSetChanged; override;
  522.     procedure ActiveChanged; override;
  523.   public
  524.     constructor Create(ANav: TDBNavigator);
  525.     destructor Destroy; override;
  526.   end;
  527.  
  528. implementation
  529.