LCL: call OnEditingDone (DoEditingDone) only if something changed

git-svn-id: trunk@58337 -
This commit is contained in:
ondrej 2018-06-19 17:11:31 +00:00
parent 452ea18e69
commit f1b3d3f742
12 changed files with 45 additions and 35 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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}

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;