1{
2 /***************************************************************************
3                               DbExtCtrls.pp
4                               -------------
5
6 ***************************************************************************/
7
8 *****************************************************************************
9  This file is part of the Lazarus Component Library (LCL)
10
11  See the file COPYING.modifiedLGPL.txt, included in this distribution,
12  for details about the license.
13 *****************************************************************************
14}
15unit DBExtCtrls;
16
17{$mode objfpc}
18{$H+}
19
20interface
21
22uses
23  Classes, SysUtils, LCLType, LMessages,
24  DB, DBCtrls, EditBtn;
25
26type
27
28  { TDBDateEdit }
29
30  TDBDateEdit = class(TDateEdit)
31  private
32    FDataLink: TFieldDataLink;
33
34    procedure DataChange(Sender: TObject);
35    procedure UpdateData(Sender: TObject);
36
37    function GetDataField: string;
38    function GetDataSource: TDataSource;
39    procedure SetDataField(const Value: string);
40    procedure SetDataSource(Value: TDataSource);
41    procedure CMGetDataLink(var Message: TLMessage); message CM_GETDATALINK;
42    function GetField: TField;
43
44  protected
45    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
46    function EditCanModify: Boolean; override;
47    procedure EditEnter; override;
48    procedure EditKeyDown(var Key: Word; Shift: TShiftState); override;
49    procedure EditKeyPress(var Key: Char); override;
50    procedure ButtonClick; override;
51    procedure EditChange; override;
52    procedure EditExit; override;
53    procedure Reset; override;
54
55  public
56    constructor Create(AOwner: TComponent); override;
57    destructor Destroy; override;
58    function ExecuteAction(AAction: TBasicAction): Boolean; override;
59    function UpdateAction(AAction: TBasicAction): Boolean; override;
60    property Field: TField read GetField;
61
62  published
63    property DataField: string read GetDataField write SetDataField;
64    property DataSource: TDataSource read GetDataSource write SetDataSource;
65  end;
66
67
68procedure Register;
69
70implementation
71
72procedure Register;
73begin
74  RegisterComponents('Data Controls',[TDBDateEdit]);
75end;
76
77{$Include dbdateedit.inc}
78
79end.
80