【发布时间】:2019-03-23 00:27:27
【问题描述】:
我通常将验证逻辑实现为:
procedure TMyDM.IBQueryAMOUNTValidate(
Sender: TField);
begin
inherited;
if Sender.AsFloat>100
then raise Exception.Create('Amount is too large!');
end;
问题是 - 是否有机会不在OnValidate 中提出Exception(这会停止进一步处理),而是在OnValidate 中静默恢复原始值并继续OnChange、CheckBrowseMode 和CheckBrowseMode/Post调用的所有GUI更新?
当然,我知道我总是可以用处理OldValue 和NewValue 的OnChange 逻辑替换OnValidate 逻辑,但在我看来,如果我坚持使用OnValidate,代码会更简洁。
【问题讨论】:
标签: delphi delphi-2009