dataEvent method
Implementation
void dataEvent(TDataEvent event, dynamic info) {
void handleFieldChange(TField aField) {
if (aField.fieldKind == TFieldKind.fkData ||
aField.fieldKind == TFieldKind.fkInternalCalc) {
setModified(true);
}
if (state != TDataSetState.dsSetKey) {
if (aField.fieldKind == TFieldKind.fkData) {
if (_internalCalcFields) {
refreshInternalCalcFields(activeBuffer()!);
} else if (autoCalcFields && _calcFieldsSize != 0) {
calculateFields(activeBuffer()!);
}
}
aField.change();
}
}
void handleScrollOrChange() {
if (state != TDataSetState.dsInsert) updateCursorPos();
}
switch (event) {
case TDataEvent.deFieldChange:
handleFieldChange(info as TField);
break;
case TDataEvent.deDataSetChange:
case TDataEvent.deDataSetScroll:
handleScrollOrChange();
break;
case TDataEvent.deLayoutChange:
_enableControlsEvent = TDataEvent.deLayoutChange;
break;
default:
break;
}
if (!controlsDisabled() && _state != TDataSetState.dsBlockRead) {
for (var i = 0; i < myDataSourceCount; i++) {
myDataSources(i).processEvent(event, info);
}
}
}