* Patch from Henrique Werlang to let datalink transmit events ony when active

This commit is contained in:
michael 2021-02-19 15:38:36 +00:00
parent b8155b93cb
commit b70bd9f844

View File

@ -7609,12 +7609,8 @@ Var
B : Boolean; B : Boolean;
begin begin
B:=Assigned(DataSource) and Not (DataSource.State in [dsInactive,dsOpening]); B:=Assigned(DataSource) and not (DataSource.State in [dsInactive, dsOpening]);
If B<>FActive then SetActive(B);
begin
FActive:=B;
ActiveChanged;
end;
B:=Assigned(DataSource) and (DataSource.State in dsEditModes) and Not FReadOnly; B:=Assigned(DataSource) and (DataSource.State in dsEditModes) and Not FReadOnly;
If B<>FEditing Then If B<>FEditing Then
begin begin
@ -7663,29 +7659,30 @@ end;
Procedure TDataLink.DataEvent(Event: TDataEvent; Info: JSValue); Procedure TDataLink.DataEvent(Event: TDataEvent; Info: JSValue);
begin begin
Case Event of if Event = deUpdateState then
CheckActiveAndEditing
else if Active then
case Event of
deFieldChange, deRecordChange: deFieldChange, deRecordChange:
If Not FUpdatingRecord then if not FUpdatingRecord then
RecordChanged(TField(Info)); RecordChanged(TField(Info));
deDataSetChange: begin deDataSetChange:
begin
SetActive(DataSource.DataSet.Active); SetActive(DataSource.DataSet.Active);
CalcRange; CalcRange;
CalcFirstRecord(Integer(Info)); CalcFirstRecord(Integer(Info));
DatasetChanged; DatasetChanged;
end; end;
deDataSetScroll: DatasetScrolled(CalcFirstRecord(Integer(Info))); deDataSetScroll: DatasetScrolled(CalcFirstRecord(Integer(Info)));
deLayoutChange: begin deLayoutChange:
begin
CalcFirstRecord(Integer(Info)); CalcFirstRecord(Integer(Info));
LayoutChanged; LayoutChanged;
end; end;
deUpdateRecord: UpdateRecord; deUpdateRecord: UpdateRecord;
deUpdateState: CheckActiveAndEditing;
deCheckBrowseMode: CheckBrowseMode; deCheckBrowseMode: CheckBrowseMode;
deFocusControl: deFocusControl: FocusControl(Info);
FocusControl(Info);
end; end;
end; end;