Corretto errore MI0159

git-svn-id: svn://10.65.10.50/trunk@1192 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1995-03-29 15:44:53 +00:00
parent 0fded21259
commit 8be9148697
2 changed files with 3210 additions and 3186 deletions

View File

@ -2026,6 +2026,15 @@ bool TEdit_field::validate(KEY k)
// Certified 90% // Certified 90%
bool TEdit_field::on_hit() bool TEdit_field::on_hit()
{ {
if (_validate_func >= 0 &&
(_validate_func == AUTOEXIT_FUNC ||
_validate_func == NUMCALC_FUNC ||
_validate_func == STRCALC_FUNC))
{
set(get());
bool ok = validate(is_edit() ? K_TAB : K_SPACE); // Check validation expression
if (!ok) return FALSE;
}
if (_handler) if (_handler)
{ {
bool ok = _handler(*this, is_edit() ? K_TAB : K_SPACE); bool ok = _handler(*this, is_edit() ? K_TAB : K_SPACE);
@ -2056,9 +2065,10 @@ bool TEdit_field::on_key(KEY key)
switch(key) switch(key)
{ {
case K_TAB: case K_TAB:
if (_validate_func == AUTOEXIT_FUNC || if (_validate_func >= 0 &&
_validate_func == NUMCALC_FUNC || (_validate_func == AUTOEXIT_FUNC ||
_validate_func == STRCALC_FUNC) _validate_func == NUMCALC_FUNC ||
_validate_func == STRCALC_FUNC))
set_focusdirty(); // Forza validate set_focusdirty(); // Forza validate
if (to_check(K_TAB, TRUE)) if (to_check(K_TAB, TRUE))
{ {

View File

@ -472,7 +472,21 @@ HIDDEN bool _reqif_val(TEdit_field& f, KEY k)
HIDDEN bool _autoexit_val(TEdit_field& f, KEY key) HIDDEN bool _autoexit_val(TEdit_field& f, KEY key)
{ {
if (f.mask().mode() != MODE_QUERY) return TRUE; TMask& m = f.mask();
if (m.mode() != MODE_QUERY) return TRUE;
const int next = m.next_fld();
if (next != DLG_NULL && next != f.dlg() && m.field(next).in_key(0))
{
const byte last = m.num_keys();
for (byte k = 1; k <= last; k++)
if (f.in_key(k) && m.field(next).in_key(k))
return TRUE;
}
const int nparms = get_val_param_num(); const int nparms = get_val_param_num();
bool one_not_empty = FALSE; bool one_not_empty = FALSE;
for (int i = nparms; i-- > 0;) for (int i = nparms; i-- > 0;)