Skip to main content

SetIfZero

procedure SetIfZero(aNewValue: Variant)

Example

procedure ScriptEvent(var Value: variant);
begin
Field.SetIfZero(1);
Value := Field.Value;
end;

Usage

SetIfZero assigns a replacement under Velox's type-dependent null-or-zero sentinel rule.

Additional Technical Info

SetIfZero reads the current field Variant once and assigns aNewValue when the same effective condition used by IsNullZero is true.

Field categoryAssignment condition
Velox numeric/date typecurrent Variant is Null, Empty or Clear, or equals numeric zero
every other typeTrim(VarToStr(CurrentValue)) = ''

Boolean false and date/time value zero qualify. A string containing '0' does not. Types omitted from Velox's numeric set take the string branch even if they have a numeric-looking representation.

The condition is recomputed independently rather than calling IsNullZero, but the current implementations are equivalent. Variant comparison/conversion can raise for unsupported values. If the condition is false, the method does nothing.

Assignment uses TField.Value and therefore obeys the actual field's conversion, edit/read-only, range and validation rules. It can mark the current record modified or raise, but does not post or commit. Be cautious when zero is valid business data rather than a missing-value sentinel.

External references

Created 2026-07-15