home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 August / VPR9708A.ISO / D3TRIAL / INSTALL / DATA.Z / DBCTRLS.INT < prev    next >
Text File  |  1997-03-21  |  24KB  |  848 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Delphi Visual Component Library                 }
  5. {                                                       }
  6. {       Copyright (c) 1995,97 Borland International     }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit DBCtrls;
  11.  
  12. {$R-}
  13.  
  14. interface
  15.  
  16. uses Windows, SysUtils, Messages, Classes, Controls, Forms,
  17.      Graphics, Menus, StdCtrls, ExtCtrls, Mask, Buttons, ComCtrls, Db;
  18.  
  19. type
  20.  
  21. { TFieldDataLink }
  22.  
  23.   TFieldDataLink = class(TDataLink)
  24.   protected
  25.     procedure ActiveChanged; override;
  26.     procedure EditingChanged; override;
  27.     procedure FocusControl(Field: TFieldRef); override;
  28.     procedure LayoutChanged; override;
  29.     procedure RecordChanged(Field: TField); override;
  30.     procedure UpdateData; override;
  31.   public
  32.     function Edit: Boolean;
  33.     procedure Modified;
  34.     procedure Reset;
  35.     property CanModify: Boolean;
  36.     property Control: TComponent;
  37.     property Editing: Boolean;
  38.     property Field: TField;
  39.     property FieldName: string;
  40.     property OnDataChange: TNotifyEvent;
  41.     property OnEditingChange: TNotifyEvent;
  42.     property OnUpdateData: TNotifyEvent;
  43.     property OnActiveChange: TNotifyEvent;
  44.   end;
  45.  
  46. { TPaintControl }
  47.  
  48.   TPaintControl = class
  49.   public
  50.     constructor Create(AOwner: TWinControl; const ClassName: string);
  51.     destructor Destroy; override;
  52.     procedure DestroyHandle;
  53.     property Ctl3DButton: Boolean;
  54.     property Handle: HWnd;
  55.   end;
  56.  
  57. { TDBEdit }
  58.  
  59.   TDBEdit = class(TCustomMaskEdit)
  60.   protected
  61.     procedure Change; override;
  62.     function EditCanModify: Boolean; override;
  63.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  64.     procedure KeyPress(var Key: Char); override;
  65.     procedure Loaded; override;
  66.     procedure Notification(AComponent: TComponent;
  67.       Operation: TOperation); override;
  68.     procedure Reset; override;
  69.   public
  70.     constructor Create(AOwner: TComponent); override;
  71.     destructor Destroy; override;
  72.     property Field: TField;
  73.   published
  74.     property AutoSelect;
  75.     property AutoSize;
  76.     property BorderStyle;
  77.     property CharCase;
  78.     property Color;
  79.     property Ctl3D;
  80.     property DataField: string;
  81.     property DataSource: TDataSource;
  82.     property DragCursor;
  83.     property DragMode;
  84.     property Enabled;
  85.     property Font;
  86.     property ImeMode;
  87.     property ImeName;
  88.     property MaxLength;
  89.     property ParentColor;
  90.     property ParentCtl3D;
  91.     property ParentFont;
  92.     property ParentShowHint;
  93.     property PasswordChar;
  94.     property PopupMenu;
  95.     property ReadOnly: Boolean default False;
  96.     property ShowHint;
  97.     property TabOrder;
  98.     property TabStop;
  99.     property Visible;
  100.     property OnChange;
  101.     property OnClick;
  102.     property OnDblClick;
  103.     property OnDragDrop;
  104.     property OnDragOver;
  105.     property OnEndDrag;
  106.     property OnEnter;
  107.     property OnExit;
  108.     property OnKeyDown;
  109.     property OnKeyPress;
  110.     property OnKeyUp;
  111.     property OnMouseDown;
  112.     property OnMouseMove;
  113.     property OnMouseUp;
  114.     property OnStartDrag;
  115.   end;
  116.  
  117. { TDBText }
  118.  
  119.   TDBText = class(TCustomLabel)
  120.   protected
  121.     function GetLabelText: string; override;
  122.     procedure Loaded; override;
  123.     procedure Notification(AComponent: TComponent;
  124.       Operation: TOperation); override;
  125.     procedure SetAutoSize(Value: Boolean); override;
  126.   public
  127.     constructor Create(AOwner: TComponent); override;
  128.     destructor Destroy; override;
  129.     property Field: TField;
  130.   published
  131.     property Align;
  132.     property Alignment;
  133.     property AutoSize default False;
  134.     property Color;
  135.     property DataField: string;
  136.     property DataSource: TDataSource;
  137.     property DragCursor;
  138.     property DragMode;
  139.     property Enabled;
  140.     property Font;
  141.     property ParentColor;
  142.     property ParentFont;
  143.     property ParentShowHint;
  144.     property PopupMenu;
  145.     property Transparent;
  146.     property ShowHint;
  147.     property Visible;
  148.     property WordWrap;
  149.     property OnClick;
  150.     property OnDblClick;
  151.     property OnDragDrop;
  152.     property OnDragOver;
  153.     property OnEndDrag;
  154.     property OnMouseDown;
  155.     property OnMouseMove;
  156.     property OnMouseUp;
  157.     property OnStartDrag;
  158.   end;
  159.  
  160. { TDBCheckBox }
  161.  
  162.   TDBCheckBox = class(TCustomCheckBox)
  163.   protected
  164.     procedure Toggle; override;
  165.     procedure KeyPress(var Key: Char); override;
  166.     procedure Notification(AComponent: TComponent;
  167.       Operation: TOperation); override;
  168.     procedure WndProc(var Message: TMessage); override;
  169.   public
  170.     constructor Create(AOwner: TComponent); override;
  171.     destructor Destroy; override;
  172.     property Checked;
  173.     property Field: TField;
  174.     property State;
  175.   published
  176.     property Alignment;
  177.     property AllowGrayed;
  178.     property Caption;
  179.     property Color;
  180.     property Ctl3D;
  181.     property DataField: string;
  182.     property DataSource: TDataSource;
  183.     property DragCursor;
  184.     property DragMode;
  185.     property Enabled;
  186.     property Font;
  187.     property ParentColor;
  188.     property ParentCtl3D;
  189.     property ParentFont;
  190.     property ParentShowHint;
  191.     property PopupMenu;
  192.     property ReadOnly: Boolean default False;
  193.     property ShowHint;
  194.     property TabOrder;
  195.     property TabStop;
  196.     property ValueChecked: string;
  197.     property ValueUnchecked: string;
  198.     property Visible;
  199.     property OnClick;
  200.     property OnDragDrop;
  201.     property OnDragOver;
  202.     property OnEndDrag;
  203.     property OnEnter;
  204.     property OnExit;
  205.     property OnKeyDown;
  206.     property OnKeyPress;
  207.     property OnKeyUp;
  208.     property OnMouseDown;
  209.     property OnMouseMove;
  210.     property OnMouseUp;
  211.     property OnStartDrag;
  212.   end;
  213.  
  214. { TDBComboBox }
  215.  
  216.   TDBComboBox = class(TCustomComboBox)
  217.   protected
  218.     procedure Change; override;
  219.     procedure Click; override;
  220.     procedure ComboWndProc(var Message: TMessage; ComboWnd: HWnd;
  221.       ComboProc: Pointer); override;
  222.     procedure CreateWnd; override;
  223.     procedure DropDown; override;
  224.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  225.     procedure KeyPress(var Key: Char); override;
  226.     procedure Loaded; override;
  227.     procedure Notification(AComponent: TComponent;
  228.       Operation: TOperation); override;
  229.     procedure SetStyle(Value: TComboboxStyle); override;
  230.     procedure WndProc(var Message: TMessage); override;
  231.   public
  232.     constructor Create(AOwner: TComponent); override;
  233.     destructor Destroy; override;
  234.     property Field: TField;
  235.     property Text;
  236.   published
  237.     property Style; {Must be published before Items}
  238.     property Color;
  239.     property Ctl3D;
  240.     property DataField: string;
  241.     property DataSource: TDataSource;
  242.     property DragMode;
  243.     property DragCursor;
  244.     property DropDownCount;
  245.     property Enabled;
  246.     property Font;
  247.     property ImeMode;
  248.     property ImeName;
  249.     property ItemHeight;
  250.     property Items write SetItems;
  251.     property ParentColor;
  252.     property ParentCtl3D;
  253.     property ParentFont;
  254.     property ParentShowHint;
  255.     property PopupMenu;
  256.     property ReadOnly: Boolean default False;
  257.     property ShowHint;
  258.     property Sorted;
  259.     property TabOrder;
  260.     property TabStop;
  261.     property Visible;
  262.     property OnChange;
  263.     property OnClick;
  264.     property OnDblClick;
  265.     property OnDragDrop;
  266.     property OnDragOver;
  267.     property OnDrawItem;
  268.     property OnDropDown;
  269.     property OnEndDrag;
  270.     property OnEnter;
  271.     property OnExit;
  272.     property OnKeyDown;
  273.     property OnKeyPress;
  274.     property OnKeyUp;
  275.     property OnMeasureItem;
  276.     property OnStartDrag;
  277.   end;
  278.  
  279. { TDBListBox }
  280.  
  281.   TDBListBox = class(TCustomListBox)
  282.   protected
  283.     procedure Click; override;
  284.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  285.     procedure KeyPress(var Key: Char); override;
  286.     procedure Notification(AComponent: TComponent;
  287.       Operation: TOperation); override;
  288.   public
  289.     constructor Create(AOwner: TComponent); override;
  290.     destructor Destroy; override;
  291.     property Field: TField;
  292.   published
  293.     property Align;
  294.     property BorderStyle;
  295.     property Color;
  296.     property Ctl3D default True;
  297.     property DataField: string;
  298.     property DataSource: TDataSource;
  299.     property DragCursor;
  300.     property DragMode;
  301.     property Enabled;
  302.     property Font;
  303.     property ImeMode;
  304.     property ImeName;
  305.     property IntegralHeight;
  306.     property ItemHeight;
  307.     property Items write SetItems;
  308.     property ParentColor;
  309.     property ParentCtl3D;
  310.     property ParentFont;
  311.     property ParentShowHint;
  312.     property PopupMenu;
  313.     property ReadOnly: Boolean default False;
  314.     property ShowHint;
  315.     property Style;
  316.     property TabOrder;
  317.     property TabStop;
  318.     property Visible;
  319.     property OnClick;
  320.     property OnDblClick;
  321.     property OnDragDrop;
  322.     property OnDragOver;
  323.     property OnDrawItem;
  324.     property OnEndDrag;
  325.     property OnEnter;
  326.     property OnExit;
  327.     property OnKeyDown;
  328.     property OnKeyPress;
  329.     property OnKeyUp;
  330.     property OnMeasureItem;
  331.     property OnMouseDown;
  332.     property OnMouseMove;
  333.     property OnMouseUp;
  334.     property OnStartDrag;
  335.   end;
  336.  
  337. { TDBRadioGroup }
  338.  
  339.   TDBRadioGroup = class(TCustomRadioGroup)
  340.   protected
  341.     procedure Change; dynamic;
  342.     procedure Click; override;
  343.     procedure KeyPress(var Key: Char); override;
  344.     function CanModify: Boolean; override;
  345.     procedure Notification(AComponent: TComponent;
  346.       Operation: TOperation); override;
  347.     property DataLink: TFieldDataLink;
  348.   public
  349.     constructor Create(AOwner: TComponent); override;
  350.     destructor Destroy; override;
  351.     property Field: TField;
  352.     property ItemIndex;
  353.     property Value: string;
  354.   published
  355.     property Align;
  356.     property Caption;
  357.     property Color;
  358.     property Columns;
  359.     property Ctl3D;
  360.     property DataField: string;
  361.     property DataSource: TDataSource;
  362.     property DragCursor;
  363.     property DragMode;
  364.     property Enabled;
  365.     property Font;
  366.     property Items write SetItems;
  367.     property ParentColor;
  368.     property ParentCtl3D;
  369.     property ParentFont;
  370.     property ParentShowHint;
  371.     property PopupMenu;
  372.     property ReadOnly: Boolean default False;
  373.     property ShowHint;
  374.     property TabOrder;
  375.     property TabStop;
  376.     property Values: TStrings;
  377.     property Visible;
  378.     property OnChange: TNotifyEvent;
  379.     property OnClick;
  380.     property OnDragDrop;
  381.     property OnDragOver;
  382.     property OnEndDrag;
  383.     property OnEnter;
  384.     property OnExit;
  385.     property OnStartDrag;
  386.   end;
  387.  
  388. { TDBMemo }
  389.  
  390.   TDBMemo = class(TCustomMemo)
  391.   protected
  392.     procedure Change; override;
  393.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  394.     procedure KeyPress(var Key: Char); override;
  395.     procedure Loaded; override;
  396.     procedure Notification(AComponent: TComponent;
  397.       Operation: TOperation); override;
  398.     procedure WndProc(var Message: TMessage); override;
  399.   public
  400.     constructor Create(AOwner: TComponent); override;
  401.     destructor Destroy; override;
  402.     procedure LoadMemo;
  403.     property Field: TField;
  404.   published
  405.     property Align;
  406.     property Alignment;
  407.     property AutoDisplay: Boolean default True;
  408.     property BorderStyle;
  409.     property Color;
  410.     property Ctl3D;
  411.     property DataField: string;
  412.     property DataSource: TDataSource;
  413.     property DragCursor;
  414.     property DragMode;
  415.     property Enabled;
  416.     property Font;
  417.     property ImeMode;
  418.     property ImeName;
  419.     property MaxLength;
  420.     property ParentColor;
  421.     property ParentCtl3D;
  422.     property ParentFont;
  423.     property ParentShowHint;
  424.     property PopupMenu;
  425.     property ReadOnly: Boolean default False;
  426.     property ScrollBars;
  427.     property ShowHint;
  428.     property TabOrder;
  429.     property TabStop;
  430.     property Visible;
  431.     property WantTabs;
  432.     property WordWrap;
  433.     property OnChange;
  434.     property OnClick;
  435.     property OnDblClick;
  436.     property OnDragDrop;
  437.     property OnDragOver;
  438.     property OnEndDrag;
  439.     property OnEnter;
  440.     property OnExit;
  441.     property OnKeyDown;
  442.     property OnKeyPress;
  443.     property OnKeyUp;
  444.     property OnMouseDown;
  445.     property OnMouseMove;
  446.     property OnMouseUp;
  447.     property OnStartDrag;
  448.   end;
  449.  
  450. { TDBImage }
  451.  
  452.   TDBImage = class(TCustomControl)
  453.   protected
  454.     procedure CreateParams(var Params: TCreateParams); override;
  455.     function GetPalette: HPALETTE; override;
  456.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  457.     procedure KeyPress(var Key: Char); override;
  458.     procedure Notification(AComponent: TComponent;
  459.       Operation: TOperation); override;
  460.     procedure Paint; override;
  461.   public
  462.     constructor Create(AOwner: TComponent); override;
  463.     destructor Destroy; override;
  464.     procedure CopyToClipboard;
  465.     procedure CutToClipboard;
  466.     procedure LoadPicture;
  467.     procedure PasteFromClipboard;
  468.     property Field: TField;
  469.     property Picture: TPicture;
  470.   published
  471.     property Align;
  472.     property AutoDisplay: Boolean default True;
  473.     property BorderStyle: TBorderStyle default bsSingle;
  474.     property Center: Boolean default True;
  475.     property Color;
  476.     property Ctl3D;
  477.     property DataField: string;
  478.     property DataSource: TDataSource;
  479.     property DragCursor;
  480.     property DragMode;
  481.     property Enabled;
  482.     property Font;
  483.     property ParentColor default False;
  484.     property ParentCtl3D;
  485.     property ParentFont;
  486.     property ParentShowHint;
  487.     property PopupMenu;
  488.     property ReadOnly: Boolean default False;
  489.     property QuickDraw: Boolean default True;
  490.     property ShowHint;
  491.     property Stretch: Boolean default False;
  492.     property TabOrder;
  493.     property TabStop default True;
  494.     property Visible;
  495.     property OnClick;
  496.     property OnDblClick;
  497.     property OnDragDrop;
  498.     property OnDragOver;
  499.     property OnEndDrag;
  500.     property OnEnter;
  501.     property OnExit;
  502.     property OnKeyDown;
  503.     property OnKeyPress;
  504.     property OnKeyUp;
  505.     property OnMouseDown;
  506.     property OnMouseMove;
  507.     property OnMouseUp;
  508.     property OnStartDrag;
  509.   end;
  510.  
  511. const
  512.   InitRepeatPause = 400;  { pause before repeat timer (ms) }
  513.   RepeatPause     = 100;  { pause before hint window displays (ms)}
  514.   SpaceSize       =  5;   { size of space between special buttons }
  515.  
  516. type
  517.   TNavButton = class;
  518.   TNavDataLink = class;
  519.  
  520.   TNavGlyph = (ngEnabled, ngDisabled);
  521.   TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast,
  522.                   nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh);
  523.   TButtonSet = set of TNavigateBtn;
  524.   TNavButtonStyle = set of (nsAllowTimer, nsFocusRect);
  525.  
  526.   ENavClick = procedure (Sender: TObject; Button: TNavigateBtn) of object;
  527.  
  528. { TDBNavigator }
  529.  
  530.   TDBNavigator = class (TCustomPanel)
  531.   protected
  532.     Buttons: array[TNavigateBtn] of TNavButton;
  533.     procedure DataChanged;
  534.     procedure EditingChanged;
  535.     procedure ActiveChanged;
  536.     procedure Loaded; override;
  537.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  538.     procedure Notification(AComponent: TComponent;
  539.       Operation: TOperation); override;
  540.     procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
  541.   public
  542.     constructor Create(AOwner: TComponent); override;
  543.     destructor Destroy; override;
  544.     procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
  545.     procedure BtnClick(Index: TNavigateBtn);
  546.   published
  547.     property DataSource: TDataSource;
  548.     property VisibleButtons: TButtonSet default [nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh];
  549.     property Align;
  550.     property DragCursor;
  551.     property DragMode;
  552.     property Enabled;
  553.     property Flat: Boolean default False;
  554.     property Ctl3D;
  555.     property Hints: TStrings;
  556.     property ParentCtl3D;
  557.     property ParentShowHint;
  558.     property PopupMenu;
  559.     property ConfirmDelete: Boolean default True;
  560.     property ShowHint;
  561.     property TabOrder;
  562.     property TabStop;
  563.     property Visible;
  564.     property BeforeAction: ENavClick;
  565.     property OnClick: ENavClick;
  566.     property OnDblClick;
  567.     property OnDragDrop;
  568.     property OnDragOver;
  569.     property OnEndDrag;
  570.     property OnEnter;
  571.     property OnExit;
  572.     property OnResize;
  573.     property OnStartDrag;
  574.   end;
  575.  
  576. { TNavButton }
  577.  
  578.   TNavButton = class(TSpeedButton)
  579.   protected
  580.     procedure Paint; override;
  581.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  582.       X, Y: Integer); override;
  583.     procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
  584.       X, Y: Integer); override;
  585.   public
  586.     destructor Destroy; override;
  587.     property NavStyle: TNavButtonStyle;
  588.     property Index : TNavigateBtn;
  589.   end;
  590.  
  591. { TNavDataLink }
  592.  
  593.   TNavDataLink = class(TDataLink)
  594.   protected
  595.     procedure EditingChanged; override;
  596.     procedure DataSetChanged; override;
  597.     procedure ActiveChanged; override;
  598.   public
  599.     constructor Create(ANav: TDBNavigator);
  600.     destructor Destroy; override;
  601.   end;
  602.  
  603. { TDBLookupControl }
  604.  
  605.   TDBLookupControl = class;
  606.  
  607.   TDataSourceLink = class(TDataLink)
  608.   protected
  609.     procedure FocusControl(Field: TFieldRef); override;
  610.     procedure ActiveChanged; override;
  611.     procedure RecordChanged(Field: TField); override;
  612.   end;
  613.  
  614.   TListSourceLink = class(TDataLink)
  615.   protected
  616.     procedure ActiveChanged; override;
  617.     procedure DataSetChanged; override;
  618.   end;
  619.  
  620.   TDBLookupControl = class(TCustomControl)
  621.   protected
  622.     procedure Notification(AComponent: TComponent;
  623.       Operation: TOperation); override;
  624.     property DataField: string;
  625.     property DataSource: TDataSource;
  626.     property KeyField: string;
  627.     property KeyValue: Variant;
  628.     property ListField: string;
  629.     property ListFieldIndex: Integer default 0;
  630.     property ListSource: TDataSource;
  631.     property ParentColor default False;
  632.     property ReadOnly: Boolean default False;
  633.     property TabStop default True;
  634.   public
  635.     constructor Create(AOwner: TComponent); override;
  636.     destructor Destroy; override;
  637.     property Field: TField;
  638.   end;
  639.  
  640. { TDBLookupListBox }
  641.  
  642.   TDBLookupListBox = class(TDBLookupControl)
  643.   protected
  644.     procedure CreateParams(var Params: TCreateParams); override;
  645.     procedure CreateWnd; override;
  646.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  647.     procedure KeyPress(var Key: Char); override;
  648.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  649.       X, Y: Integer); override;
  650.     procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
  651.     procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
  652.       X, Y: Integer); override;
  653.     procedure Paint; override;
  654.     procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
  655.   public
  656.     constructor Create(AOwner: TComponent); override;
  657.     property KeyValue;
  658.     property SelectedItem: string;
  659.   published
  660.     property Align;
  661.     property BorderStyle: TBorderStyle default bsSingle;
  662.     property Color;
  663.     property Ctl3D;
  664.     property DataField;
  665.     property DataSource;
  666.     property DragCursor;
  667.     property DragMode;
  668.     property Enabled;
  669.     property Font;
  670.     property ImeMode;
  671.     property ImeName;
  672.     property KeyField;
  673.     property ListField;
  674.     property ListFieldIndex;
  675.     property ListSource;
  676.     property ParentColor;
  677.     property ParentCtl3D;
  678.     property ParentFont;
  679.     property ParentShowHint;
  680.     property PopupMenu;
  681.     property ReadOnly;
  682.     property RowCount: Integer;
  683.     property ShowHint;
  684.     property TabOrder;
  685.     property TabStop;
  686.     property Visible;
  687.     property OnClick;
  688.     property OnDblClick;
  689.     property OnDragDrop;
  690.     property OnDragOver;
  691.     property OnEndDrag;
  692.     property OnEnter;
  693.     property OnExit;
  694.     property OnKeyDown;
  695.     property OnKeyPress;
  696.     property OnKeyUp;
  697.     property OnMouseDown;
  698.     property OnMouseMove;
  699.     property OnMouseUp;
  700.     property OnStartDrag;
  701.   end;
  702.  
  703. { TDBLookupComboBox }
  704.  
  705.   TPopupDataList = class(TDBLookupListBox)
  706.   protected
  707.     procedure CreateParams(var Params: TCreateParams); override;
  708.   public
  709.     constructor Create(AOwner: TComponent); override;
  710.   end;
  711.  
  712.   TDropDownAlign = (daLeft, daRight, daCenter);
  713.  
  714.   TDBLookupComboBox = class(TDBLookupControl)
  715.   protected
  716.     procedure CreateParams(var Params: TCreateParams); override;
  717.     procedure Paint; override;
  718.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  719.     procedure KeyPress(var Key: Char); override;
  720.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  721.       X, Y: Integer); override;
  722.     procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
  723.     procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
  724.       X, Y: Integer); override;
  725.     procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
  726.   public
  727.     constructor Create(AOwner: TComponent); override;
  728.     procedure CloseUp(Accept: Boolean);
  729.     procedure DropDown;
  730.     property KeyValue;
  731.     property ListVisible: Boolean;
  732.     property Text: string;
  733.   published
  734.     property Color;
  735.     property Ctl3D;
  736.     property DataField;
  737.     property DataSource;
  738.     property DragCursor;
  739.     property DragMode;
  740.     property DropDownAlign: TDropDownAlign default daLeft;
  741.     property DropDownRows: Integer default 7;
  742.     property DropDownWidth: Integer default 0;
  743.     property Enabled;
  744.     property Font;
  745.     property ImeMode;
  746.     property ImeName;
  747.     property KeyField;
  748.     property ListField;
  749.     property ListFieldIndex;
  750.     property ListSource;
  751.     property ParentColor;
  752.     property ParentCtl3D;
  753.     property ParentFont;
  754.     property ParentShowHint;
  755.     property PopupMenu;
  756.     property ReadOnly;
  757.     property ShowHint;
  758.     property TabOrder;
  759.     property TabStop;
  760.     property Visible;
  761.     property OnClick;
  762.     property OnCloseUp: TNotifyEvent;
  763.     property OnDragDrop;
  764.     property OnDragOver;
  765.     property OnDropDown: TNotifyEvent;
  766.     property OnEndDrag;
  767.     property OnEnter;
  768.     property OnExit;
  769.     property OnKeyDown;
  770.     property OnKeyPress;
  771.     property OnKeyUp;
  772.     property OnMouseDown;
  773.     property OnMouseMove;
  774.     property OnMouseUp;
  775.     property OnStartDrag;
  776.   end;
  777.  
  778. { TDBRichEdit }
  779.  
  780.   TDBRichEdit = class(TCustomRichEdit)
  781.   protected
  782.     procedure Change; override;
  783.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  784.     procedure KeyPress(var Key: Char); override;
  785.     procedure Loaded; override;
  786.     procedure Notification(AComponent: TComponent;
  787.       Operation: TOperation); override;
  788.   public
  789.     constructor Create(AOwner: TComponent); override;
  790.     destructor Destroy; override;
  791.     procedure LoadMemo;
  792.     property Field: TField;
  793.   published
  794.     property Align;
  795.     property Alignment;
  796.     property AutoDisplay: Boolean default True;
  797.     property BorderStyle;
  798.     property Color;
  799.     property Ctl3D;
  800.     property DataField: string;
  801.     property DataSource: TDataSource;
  802.     property DragCursor;
  803.     property DragMode;
  804.     property Enabled;
  805.     property Font;
  806.     property HideSelection;
  807.     property HideScrollBars;
  808.     property ImeMode;
  809.     property ImeName;
  810.     property MaxLength;
  811.     property ParentColor;
  812.     property ParentCtl3D;
  813.     property ParentFont;
  814.     property ParentShowHint;
  815.     property PlainText;
  816.     property PopupMenu;
  817.     property ReadOnly: Boolean default False;
  818.     property ScrollBars;
  819.     property ShowHint;
  820.     property TabOrder;
  821.     property TabStop;
  822.     property Visible;
  823.     property WantReturns;
  824.     property WantTabs;
  825.     property WordWrap;
  826.     property OnChange;
  827.     property OnClick;
  828.     property OnDblClick;
  829.     property OnDragDrop;
  830.     property OnDragOver;
  831.     property OnEndDrag;
  832.     property OnEnter;
  833.     property OnExit;
  834.     property OnKeyDown;
  835.     property OnKeyPress;
  836.     property OnKeyUp;
  837.     property OnMouseDown;
  838.     property OnMouseMove;
  839.     property OnMouseUp;
  840.     property OnResizeRequest;
  841.     property OnSelectionChange;
  842.     property OnProtectChange;
  843.     property OnSaveClipboard;
  844.     property OnStartDrag;
  845.   end;
  846.  
  847. implementation
  848.