From 2d68a26e97ad055a6b146322e525e9a04f7eb9bc Mon Sep 17 00:00:00 2001 From: juha Date: Sat, 13 Sep 2014 09:40:00 +0000 Subject: [PATCH] LCL: Implement DBAction on DBControls. Issue #25988, patch from Luigi git-svn-id: trunk@46203 - --- lcl/dbctrls.pp | 20 ++++++++++++++++++++ lcl/dbgrids.pas | 26 ++++++++++++++++++++------ lcl/include/customdbcombobox.inc | 12 ++++++++++++ lcl/include/customdblistbox.inc | 12 ++++++++++++ lcl/include/dbcalendar.inc | 12 ++++++++++++ lcl/include/dbcheckbox.inc | 12 ++++++++++++ lcl/include/dbedit.inc | 12 ++++++++++++ lcl/include/dbgroupbox.inc | 12 ++++++++++++ lcl/include/dbimage.inc | 12 ++++++++++++ lcl/include/dbmemo.inc | 12 ++++++++++++ lcl/include/dbradiogroup.inc | 12 ++++++++++++ lcl/include/dbtext.inc | 12 ++++++++++++ 12 files changed, 160 insertions(+), 6 deletions(-) diff --git a/lcl/dbctrls.pp b/lcl/dbctrls.pp index 536aada176..24a36cc987 100644 --- a/lcl/dbctrls.pp +++ b/lcl/dbctrls.pp @@ -194,6 +194,8 @@ Type public constructor Create(AOwner: TComponent); override; destructor Destroy; override; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; property Field: TField read GetField; published property CustomEditMask: Boolean read FCustomEditMask write FCustomEditMask default False; @@ -267,6 +269,8 @@ Type public constructor Create(AOwner: TComponent); override; destructor Destroy; override; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; property Field: TField read GetField; published property Align; @@ -339,6 +343,8 @@ Type public constructor Create(AOwner: TComponent); override; destructor Destroy; override; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; property Field: TField read GetField; property DataField: string read GetDataField write SetDataField; property DataSource: TDataSource read GetDataSource write SetDataSource; @@ -517,6 +523,8 @@ Type constructor Create(TheOwner: TComponent); override; destructor Destroy; override; procedure EditingDone; override; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; property Field: TField read GetField; property ItemIndex; property Value: string read FValue write SetValue; @@ -579,6 +587,8 @@ Type public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; property Checked; property Field: TField read GetField; property State; @@ -647,6 +657,8 @@ Type public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; procedure EditingDone; override; property Field: TField read GetField; property Text; @@ -851,6 +863,8 @@ Type destructor Destroy; override; procedure EditingDone; override; procedure LoadMemo; virtual; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; property Field: TField read GetField; published property Align; @@ -916,6 +930,8 @@ Type public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; property Field: TField read GetField; published property Align; @@ -995,6 +1011,8 @@ Type public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; property Field: TField read GetField; procedure Change; virtual; published @@ -1057,6 +1075,8 @@ Type constructor Create(TheOwner: TComponent); override; destructor Destroy; override; procedure EditingDone; override; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; property Field: TField read GetField; published diff --git a/lcl/dbgrids.pas b/lcl/dbgrids.pas index b7e93c6056..7b624dade1 100644 --- a/lcl/dbgrids.pas +++ b/lcl/dbgrids.pas @@ -488,6 +488,8 @@ type procedure ResetColWidths; destructor Destroy; override; function MouseToRecordOffset(const x,y: Integer; out Column: TColumn; out RecordOffset: Integer): TGridZone; + function ExecuteAction(AAction: TBasicAction): Boolean; override; + function UpdateAction(AAction: TBasicAction): Boolean; override; property AllowOutboundEvents; property SelectedField: TField read GetCurrentField write SetCurrentField; property SelectedIndex: Integer read GetSelectedIndex write SetSelectedIndex; @@ -1428,7 +1430,7 @@ begin Result := 0; end; -procedure TCustomDBGrid.PrepareCellHints(ACol, ARow: Integer); +procedure TCustomDBGrid.PrepareCellHints(aCol, aRow: Integer); begin if not DataLink.Active then Exit; FSavedRecord := DataLink.ActiveRecord; @@ -1441,7 +1443,7 @@ begin DataLink.ActiveRecord := FSavedRecord; end; -function TCustomDBGrid.GetCellHintText(ACol, ARow: Integer): String; +function TCustomDBGrid.GetCellHintText(aCol, aRow: Integer): String; var C: TColumn; begin @@ -1455,7 +1457,7 @@ begin end; -function TCustomDBGrid.GetTruncCellHintText(ACol, ARow: integer): String; +function TCustomDBGrid.GetTruncCellHintText(aCol, aRow: Integer): string; var F: TField; begin @@ -1609,7 +1611,7 @@ begin {$endif} end; -procedure TCustomDBGrid.doLayoutChanged; +procedure TCustomDBGrid.DoLayoutChanged; begin if csDestroying in ComponentState then exit; @@ -1638,7 +1640,7 @@ begin end; end; -function TCustomDBGrid.IsEOF: boolean; +function TCustomDBGrid.ISEOF: boolean; begin {$ifdef dbgDBGrid} DebugLn('%s.IsEOF', [ClassName]); @@ -2620,7 +2622,7 @@ begin inc(FLayoutChangedCount); end; -procedure TCustomDBGrid.EditingColumn(aCol: Integer; Ok: Boolean); +procedure TCustomDBGrid.EditingColumn(aCol: Integer; Ok: boolean); begin {$ifdef dbgDBGrid}DebugLnEnter('%s.EditingColumn INIT aCol=%d Ok=%s', [ClassName, aCol, BoolToStr(ok, true)]); {$endif} @@ -3481,6 +3483,18 @@ begin end; end; +function TCustomDBGrid.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := (DataLink <> nil) + and DataLink.ExecuteAction(AAction); +end; + +function TCustomDBGrid.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := (DataLink <> nil) + and DataLink.UpdateAction(AAction); +end; + { TComponentDataLink } function TComponentDataLink.GetFields(Index: Integer): TField; diff --git a/lcl/include/customdbcombobox.inc b/lcl/include/customdbcombobox.inc index 4a2251bb09..7889957aab 100644 --- a/lcl/include/customdbcombobox.inc +++ b/lcl/include/customdbcombobox.inc @@ -119,3 +119,15 @@ begin inherited Destroy; end; +function TCustomDBComboBox.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := inherited ExecuteAction(AAction) or + (FDataLink <> nil) and FDataLink.ExecuteAction(AAction); +end; + +function TCustomDBComboBox.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := inherited UpdateAction(AAction) or + (FDataLink <> nil) and FDataLink.UpdateAction(AAction); +end; + diff --git a/lcl/include/customdblistbox.inc b/lcl/include/customdblistbox.inc index e7f6edea90..026efaea31 100644 --- a/lcl/include/customdblistbox.inc +++ b/lcl/include/customdblistbox.inc @@ -119,3 +119,15 @@ begin inherited Destroy; end; +function TCustomDBListBox.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := inherited ExecuteAction(AAction) or + (FDataLink <> nil) and FDataLink.ExecuteAction(AAction); +end; + +function TCustomDBListBox.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := inherited UpdateAction(AAction) or + (FDataLink <> nil) and FDataLink.UpdateAction(AAction); +end; + diff --git a/lcl/include/dbcalendar.inc b/lcl/include/dbcalendar.inc index 41a55e7964..41805b5b08 100644 --- a/lcl/include/dbcalendar.inc +++ b/lcl/include/dbcalendar.inc @@ -102,6 +102,18 @@ begin inherited EditingDone; end; +function TDBCalendar.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := inherited ExecuteAction(AAction) or + (FDataLink <> nil) and FDataLink.ExecuteAction(AAction); +end; + +function TDBCalendar.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := inherited UpdateAction(AAction) or + (FDataLink <> nil) and FDataLink.UpdateAction(AAction); +end; + { Public Methods } constructor TDBCalendar.Create(TheOwner: TComponent); begin diff --git a/lcl/include/dbcheckbox.inc b/lcl/include/dbcheckbox.inc index cd1f580766..77c7f2205a 100644 --- a/lcl/include/dbcheckbox.inc +++ b/lcl/include/dbcheckbox.inc @@ -195,4 +195,16 @@ begin inherited Destroy; end; +function TDBCheckBox.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := inherited ExecuteAction(AAction) or + (FDataLink <> nil) and FDataLink.ExecuteAction(AAction); +end; + +function TDBCheckBox.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := inherited UpdateAction(AAction) or + (FDataLink <> nil) and FDataLink.UpdateAction(AAction); +end; + // included by dbctrls.pas diff --git a/lcl/include/dbedit.inc b/lcl/include/dbedit.inc index 606f2eadfa..75b3249904 100644 --- a/lcl/include/dbedit.inc +++ b/lcl/include/dbedit.inc @@ -259,3 +259,15 @@ begin inherited Destroy; end; +function TDBEdit.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := inherited ExecuteAction(AAction) or + (FDataLink <> nil) and FDataLink.ExecuteAction(AAction); +end; + +function TDBEdit.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := inherited UpdateAction(AAction) or + (FDataLink <> nil) and FDataLink.UpdateAction(AAction); +end; + diff --git a/lcl/include/dbgroupbox.inc b/lcl/include/dbgroupbox.inc index 67528b54bd..db4160f770 100644 --- a/lcl/include/dbgroupbox.inc +++ b/lcl/include/dbgroupbox.inc @@ -71,4 +71,16 @@ begin inherited Destroy; end; +function TDBGroupBox.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := inherited ExecuteAction(AAction) or + (FDataLink <> nil) and FDataLink.ExecuteAction(AAction); +end; + +function TDBGroupBox.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := inherited UpdateAction(AAction) or + (FDataLink <> nil) and FDataLink.UpdateAction(AAction); +end; + // included by dbctrls.pas diff --git a/lcl/include/dbimage.inc b/lcl/include/dbimage.inc index f36050b880..70e9212c37 100644 --- a/lcl/include/dbimage.inc +++ b/lcl/include/dbimage.inc @@ -272,4 +272,16 @@ begin inherited Destroy; end; +function TDBImage.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := inherited ExecuteAction(AAction) or + (FDataLink <> nil) and FDataLink.ExecuteAction(AAction); +end; + +function TDBImage.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := inherited UpdateAction(AAction) or + (FDataLink <> nil) and FDataLink.UpdateAction(AAction); +end; + // included by dbctrls.pas diff --git a/lcl/include/dbmemo.inc b/lcl/include/dbmemo.inc index dac93f83fc..4e38d9aa46 100644 --- a/lcl/include/dbmemo.inc +++ b/lcl/include/dbmemo.inc @@ -243,4 +243,16 @@ begin end; end; +function TDBMemo.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := inherited ExecuteAction(AAction) or + (FDataLink <> nil) and FDataLink.ExecuteAction(AAction); +end; + +function TDBMemo.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := inherited UpdateAction(AAction) or + (FDataLink <> nil) and FDataLink.UpdateAction(AAction); +end; + // included by dbctrls.pas diff --git a/lcl/include/dbradiogroup.inc b/lcl/include/dbradiogroup.inc index 037821ba22..d319a7466b 100644 --- a/lcl/include/dbradiogroup.inc +++ b/lcl/include/dbradiogroup.inc @@ -145,6 +145,18 @@ begin inherited EditingDone; end; +function TDBRadioGroup.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := inherited ExecuteAction(AAction) or + (DataLink <> nil) and DataLink.ExecuteAction(AAction); +end; + +function TDBRadioGroup.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := inherited UpdateAction(AAction) or + (DataLink <> nil) and DataLink.UpdateAction(AAction); +end; + constructor TDBRadioGroup.Create(TheOwner: TComponent); begin inherited Create(TheOwner); diff --git a/lcl/include/dbtext.inc b/lcl/include/dbtext.inc index 0ec5c7be65..fabfdba7c3 100644 --- a/lcl/include/dbtext.inc +++ b/lcl/include/dbtext.inc @@ -104,3 +104,15 @@ begin FDataLink.Destroy; inherited Destroy; end; + +function TDBText.ExecuteAction(AAction: TBasicAction): Boolean; +begin + Result := inherited ExecuteAction(AAction) or + (FDataLink <> nil) and FDataLink.ExecuteAction(AAction); +end; + +function TDBText.UpdateAction(AAction: TBasicAction): Boolean; +begin + Result := inherited UpdateAction(AAction) or + (FDataLink <> nil) and FDataLink.UpdateAction(AAction); +end;