diff --git a/components/datetimectrls/datetimepicker.pas b/components/datetimectrls/datetimepicker.pas index 7e220d836e..e5adab22e3 100644 --- a/components/datetimectrls/datetimepicker.pas +++ b/components/datetimectrls/datetimepicker.pas @@ -288,6 +288,7 @@ type procedure ConfirmChanges; virtual; procedure UndoChanges; virtual; + procedure DoEditingDone; override; function GetCheckBoxRect(IgnoreRightToLeft: Boolean = False): TRect; function GetDateTimePartFromTextPart(TextPart: TTextPart): TDateTimePart; function GetSelectedDateTimePart: TDateTimePart; @@ -427,8 +428,6 @@ type procedure RemoveAllHandlersOfObject(AnObject: TObject); override; procedure Paint; override; - procedure EditingDone; override; - published // end; @@ -3163,12 +3162,12 @@ begin inherited Paint; end; -procedure TCustomDateTimePicker.EditingDone; +procedure TCustomDateTimePicker.DoEditingDone; begin if FNoEditingDone <= 0 then begin ConfirmChanges; - inherited EditingDone; + inherited DoEditingDone; end; end; diff --git a/lcl/controls.pp b/lcl/controls.pp index a65e115c8c..b8bdc9aaac 100644 --- a/lcl/controls.pp +++ b/lcl/controls.pp @@ -949,7 +949,8 @@ type cfProcessingWMPaint, cfKillChangeBounds, cfKillInvalidatePreferredSize, - cfKillAdjustSize + cfKillAdjustSize, + cfEditingDoneChanged ); TControlFlags = set of TControlFlag; @@ -1407,6 +1408,7 @@ type procedure MouseLeave; virtual; function DialogChar(var Message: TLMKey): boolean; virtual; procedure UpdateMouseCursor(X, Y: integer); + procedure DoEditingDone; virtual; protected procedure Changed; function GetPalette: HPalette; virtual; @@ -1607,7 +1609,7 @@ type constructor Create(TheOwner: TComponent);override; destructor Destroy; override; procedure BeforeDestruction; override; - procedure EditingDone; virtual; + procedure EditingDone; procedure ExecuteDefaultAction; virtual; procedure ExecuteCancelAction; virtual; procedure BeginDrag(Immediate: Boolean; Threshold: Integer = -1); diff --git a/lcl/dbctrls.pp b/lcl/dbctrls.pp index 36a126a85c..16bf95f76f 100644 --- a/lcl/dbctrls.pp +++ b/lcl/dbctrls.pp @@ -379,8 +379,7 @@ Type procedure DataChange(Sender: TObject); override; procedure DoSelectionChange(User: Boolean); override; procedure UpdateData(Sender: TObject); override; - public - procedure EditingDone; override; + procedure DoEditingDone; override; published property Align; property Anchors; @@ -565,10 +564,10 @@ Type property DataLink: TFieldDataLink read FDataLink; function GetButtonValue(Index: Integer): string; procedure UpdateRadioButtonStates; override; + procedure DoEditingDone; override; public 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; @@ -729,12 +728,12 @@ Type procedure Change; override; procedure UpdateData(Sender: TObject); virtual; abstract; procedure WndProc(var Message: TLMessage); override; + procedure DoEditingDone; override; 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; property ItemIndex; @@ -961,10 +960,10 @@ Type procedure KeyPress(var Key:Char); override; procedure WndProc(var Message : TLMessage); override; class procedure WSRegisterClass; override; + procedure DoEditingDone; override; public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; - procedure EditingDone; override; procedure LoadMemo; virtual; function ExecuteAction(AAction: TBasicAction): Boolean; override; function UpdateAction(AAction: TBasicAction): Boolean; override; @@ -1207,12 +1206,12 @@ Type procedure SetDataSource(Value: TDataSource); procedure UpdateDate(const AValue: string); procedure CMGetDataLink(var Message: TLMessage); message CM_GETDATALINK; + procedure DoEditingDone; override; protected procedure Notification(AComponent: TComponent; Operation: TOperation); override; public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; - procedure EditingDone; override; function ExecuteAction(AAction: TBasicAction): Boolean; override; function UpdateAction(AAction: TBasicAction): Boolean; override; diff --git a/lcl/grids.pas b/lcl/grids.pas index 7701ee5522..412841a163 100644 --- a/lcl/grids.pas +++ b/lcl/grids.pas @@ -244,9 +244,9 @@ type procedure msg_SelectAll(var Msg: TGridMessage); message GM_SELECTALL; procedure msg_SetPos(var Msg: TGridMessage); message GM_SETPOS; procedure msg_GetGrid(var Msg: TGridMessage); message GM_GETGRID; + procedure DoEditingDone; override; public constructor Create(Aowner : TComponent); override; - procedure EditingDone; override; property EditText; property OnEditingDone; end; @@ -286,8 +286,8 @@ type procedure msg_SetValue(var Msg: TGridMessage); message GM_SETVALUE; procedure msg_SetPos(var Msg: TGridMessage); message GM_SETPOS; procedure msg_GetGrid(var Msg: TGridMessage); message GM_GETGRID; + procedure DoEditingDone; override; public - procedure EditingDone; override; property BorderStyle; property OnEditingDone; end; @@ -971,6 +971,7 @@ type function DoCompareCells(Acol,ARow,Bcol,BRow: Integer): Integer; virtual; procedure DoCopyToClipboard; virtual; procedure DoCutToClipboard; virtual; + procedure DoEditingDone; override; procedure DoEditButtonClick(const ACol,ARow: Integer); virtual; procedure DoEditorHide; virtual; procedure DoEditorShow; virtual; @@ -1258,7 +1259,6 @@ type constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Invalidate; override; - procedure EditingDone; override; { Exposed procs } procedure AdjustInnerCellRect(var ARect: TRect); @@ -8146,10 +8146,10 @@ begin end; end; -procedure TCustomGrid.EditingDone; +procedure TCustomGrid.DoEditingDone; begin if not FEditorShowing then - inherited EditingDone; + inherited DoEditingDone; end; function TCustomGrid.EditorGetValue(validate:boolean=false): boolean; @@ -10083,9 +10083,9 @@ begin {$IfDef DbgGrid} DebugLn('TStringCellEditor.Change END');{$ENDIF} end; -procedure TStringCellEditor.EditingDone; +procedure TStringCellEditor.DoEditingDone; begin - inherited EditingDone; + inherited DoEditingDone; if FGrid<>nil then FGrid.EditingDone; end; @@ -12834,10 +12834,10 @@ begin {$Endif} end; -procedure TPickListCellEditor.EditingDone; +procedure TPickListCellEditor.DoEditingDone; begin {$ifdef dbgGrid}DebugLn('TPickListCellEditor.EditingDone INIT');{$ENDIF} - inherited EditingDone; + inherited DoEditingDone; if FGrid<>nil then FGrid.EditingDone; {$ifdef dbgGrid}DebugLn('TPickListCellEditor.EditingDone END');{$ENDIF} diff --git a/lcl/include/control.inc b/lcl/include/control.inc index b487280916..124a5548b4 100644 --- a/lcl/include/control.inc +++ b/lcl/include/control.inc @@ -576,7 +576,11 @@ end; ------------------------------------------------------------------------------} procedure TControl.EditingDone; begin - if Assigned(OnEditingDone) then OnEditingDone(Self); + if cfEditingDoneChanged in FControlFlags then + begin + DoEditingDone; + Exclude(FControlFlags, cfEditingDoneChanged); + end; end; procedure TControl.FontChanged(Sender: TObject); @@ -1741,6 +1745,11 @@ begin end; end; +procedure TControl.DoEditingDone; +begin + if Assigned(OnEditingDone) then OnEditingDone(Self); +end; + {------------------------------------------------------------------------------ TControl.DragOver ------------------------------------------------------------------------------} @@ -5879,6 +5888,7 @@ end; procedure TControl.CMChanged(var Message: TLMessage); begin + Include(FControlFlags, cfEditingDoneChanged); if FParent<>nil then FParent.WindowProc(Message); end; diff --git a/lcl/include/customdbcombobox.inc b/lcl/include/customdbcombobox.inc index c2372bc763..4a86ab7a7b 100644 --- a/lcl/include/customdbcombobox.inc +++ b/lcl/include/customdbcombobox.inc @@ -81,10 +81,10 @@ begin end; end; -procedure TCustomDBComboBox.EditingDone; +procedure TCustomDBComboBox.DoEditingDone; begin FDataLink.UpdateRecord; - inherited EditingDone; + inherited DoEditingDone; end; procedure TCustomDBComboBox.WndProc(var Message: TLMessage); diff --git a/lcl/include/customedit.inc b/lcl/include/customedit.inc index 349e0a140c..99cdc82932 100644 --- a/lcl/include/customedit.inc +++ b/lcl/include/customedit.inc @@ -671,10 +671,10 @@ begin inherited DoExit; end; -procedure TCustomEdit.EditingDone; +procedure TCustomEdit.DoEditingDone; begin if not ReadOnly then - inherited EditingDone; + inherited DoEditingDone; end; procedure TCustomEdit.FontChanged(Sender: TObject); diff --git a/lcl/include/dbcalendar.inc b/lcl/include/dbcalendar.inc index 15bc9cfc00..fca1997c1f 100644 --- a/lcl/include/dbcalendar.inc +++ b/lcl/include/dbcalendar.inc @@ -96,10 +96,10 @@ begin end; end; -procedure TDBCalendar.EditingDone; +procedure TDBCalendar.DoEditingDone; begin FDataLink.UpdateRecord; - inherited EditingDone; + inherited DoEditingDone; end; function TDBCalendar.ExecuteAction(AAction: TBasicAction): Boolean; diff --git a/lcl/include/dblistbox.inc b/lcl/include/dblistbox.inc index 31d7316cac..b225b11594 100644 --- a/lcl/include/dblistbox.inc +++ b/lcl/include/dblistbox.inc @@ -54,9 +54,9 @@ begin FDataLink.Field.Text := Items[ItemIndex]; end; -procedure TDBListBox.EditingDone; +procedure TDBListBox.DoEditingDone; begin FDataLink.UpdateRecord; - inherited EditingDone; + inherited DoEditingDone; end; diff --git a/lcl/include/dbmemo.inc b/lcl/include/dbmemo.inc index fb20db4767..525ee1133c 100644 --- a/lcl/include/dbmemo.inc +++ b/lcl/include/dbmemo.inc @@ -119,11 +119,11 @@ begin FDataLink.OnUpdateData:=@UpdateData; end; -procedure TDBMemo.EditingDone; +procedure TDBMemo.DoEditingDone; begin if FDataLink.CanModify and FDatalink.Editing then begin FDataLink.UpdateRecord; - inherited EditingDone; + inherited DoEditingDone; end else FDatalink.Reset; end; diff --git a/lcl/include/dbradiogroup.inc b/lcl/include/dbradiogroup.inc index bcd2b2154e..b8d6a85724 100644 --- a/lcl/include/dbradiogroup.inc +++ b/lcl/include/dbradiogroup.inc @@ -154,10 +154,10 @@ begin end; end; -procedure TDBRadioGroup.EditingDone; +procedure TDBRadioGroup.DoEditingDone; begin FDataLink.UpdateRecord; - inherited EditingDone; + inherited DoEditingDone; end; function TDBRadioGroup.ExecuteAction(AAction: TBasicAction): Boolean; diff --git a/lcl/stdctrls.pp b/lcl/stdctrls.pp index 6609e141c1..5fc87d75fd 100644 --- a/lcl/stdctrls.pp +++ b/lcl/stdctrls.pp @@ -768,7 +768,7 @@ type procedure Change; virtual; procedure DoEnter; override; procedure DoExit; override; - procedure EditingDone; override; + procedure DoEditingDone; override; function GetCaretPos: TPoint; virtual; function GetNumbersOnly: Boolean; virtual; function GetReadOnly: Boolean; virtual;