Как проверить предыдущее значение поля из обработчика события OnValidate?

Вы можете скопировать и отредактировать недавно созданную копию за один проход, вызвав конструктор dict с дополнительными аргументами ключевого слова:

>>> dict1 = {"key1": "value1", "key2": "value2"}
>>> dict2 = dict(dict1, key2="WHY?!")
>>> dict1
{'key2': 'value2', 'key1': 'value1'}
>>> dict2
{'key2': 'WHY?!', 'key1': 'value1'}
0
задан Fabrizio 16 January 2019 в 19:16
поделиться

1 ответ

Используйте Unassigned

procedure  TForm1.FldOnValidate(AField : TField);
begin
    if Sender.OldValue <> Unassigned then
      if Sender.NewValue <= Sender.OldValue then
        raise Exception.Create('The new value is not bigger than the previous one');
end;

Но правильное место - OnChange событие

procedure TForm1.ClientDataSet1ValChange(Sender: TField);

begin
    if Sender.OldValue <> Unassigned then
      if Sender.NewValue <= Sender.OldValue then
        raise Exception.Create('The new value is not bigger than the previous one');
end;
0
ответ дан Sami 16 January 2019 в 19:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: