michael.vancann...@wisa.be wrote / napĂsal(a):
On Tue, 5 Apr 2011, LacaK wrote:
--or--
introduce any new method (ValidateFieldData ? ;-))) and let tdatsset
descendants use it:
{$IFDEF FPC}
ValidateFieldData(Field: TField; Buffer: Pointer);
{$ENDIF}
--or--
some smarter solution ?
The whole code, which is repeated (and can be put in one place) is:
if not (State in [dsEdit, dsInsert, dsFilter, dsCalcFields]) then
begin
DatabaseErrorFmt(SNotEditing,[Name],self);
exit;
end;
if (Field.FieldNo>0) and not (State in [dsSetKey, dsFilter]) then
begin
if Read
OnlythenDatabaseErrorFmtSReadOnlyField,[Field.DisplayName],
Self);
Field.Validate(Buffer);
end;
You are right in your dislike.
I will create a 'BeforeSetFieldData' in TDataset and put the code in
there,
and the same for 'AfterSetFieldData' with the OnChange code.
OK,
Then please do not forget commit necessary changes also in other
descendants (not only in TCustomBufDataSet but also in TParadox,
TMemDataset, TFixedFormatDataSet, TDbf) to completelly fix 'missing
onvalidate call' problem.
Thanks
Laco.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel