* 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,30 +7659,31 @@ end;
Procedure TDataLink.DataEvent(Event: TDataEvent; Info: JSValue); Procedure TDataLink.DataEvent(Event: TDataEvent; Info: JSValue);
begin begin
Case Event of if Event = deUpdateState then
deFieldChange, deRecordChange: CheckActiveAndEditing
If Not FUpdatingRecord then else if Active then
RecordChanged(TField(Info)); case Event of
deDataSetChange: begin deFieldChange, deRecordChange:
SetActive(DataSource.DataSet.Active); if not FUpdatingRecord then
CalcRange; RecordChanged(TField(Info));
CalcFirstRecord(Integer(Info)); deDataSetChange:
DatasetChanged; begin
SetActive(DataSource.DataSet.Active);
CalcRange;
CalcFirstRecord(Integer(Info));
DatasetChanged;
end;
deDataSetScroll: DatasetScrolled(CalcFirstRecord(Integer(Info)));
deLayoutChange:
begin
CalcFirstRecord(Integer(Info));
LayoutChanged;
end;
deUpdateRecord: UpdateRecord;
deCheckBrowseMode: CheckBrowseMode;
deFocusControl: FocusControl(Info);
end; end;
deDataSetScroll: DatasetScrolled(CalcFirstRecord(Integer(Info)));
deLayoutChange: begin
CalcFirstRecord(Integer(Info));
LayoutChanged;
end;
deUpdateRecord: UpdateRecord;
deUpdateState: CheckActiveAndEditing;
deCheckBrowseMode: CheckBrowseMode;
deFocusControl:
FocusControl(Info);
end;
end; end;