diff --git a/include/mask.h b/include/mask.h index 5d414326e..9dd7d3597 100755 --- a/include/mask.h +++ b/include/mask.h @@ -118,7 +118,7 @@ protected: void init_mask(); // @cmember Legge la pagina da file WINDOW read_page(TScanner& scanner, bool toolbar = false); - WINDOW insert_page(const char* title, int where); + WINDOW insert_page(const char* title, int pos); // @cmember Aggiunge i tags ad una pagina void add_tag_button(byte pag, TToken_string& tags, byte sel); diff --git a/include/maskfld.cpp b/include/maskfld.cpp index 15cb5712b..1711da8e3 100755 --- a/include/maskfld.cpp +++ b/include/maskfld.cpp @@ -1403,9 +1403,16 @@ bool TEditable_field::parse_item(TScanner& scanner) return yesnofatal_box("Numero di parametri VALIDATE errato nel campo %d: %d", _ctl_data._dlg, nparms); #endif - + for (int i = 0; i < nparms; i++) - _validate->_parms.add(scanner.operand()); + { + // per risolvere problemi nelle formule + // l'ultimo parametro viene letto fino in fondo alla riga + if (i == nparms-1) + _validate->_parms.add(scanner.line().trim()); + else + _validate->_parms.add(scanner.operand()); + } return TRUE; } diff --git a/include/validate.cpp b/include/validate.cpp index bebc22480..de264f920 100755 --- a/include/validate.cpp +++ b/include/validate.cpp @@ -25,7 +25,7 @@ HIDDEN bool _expr_val(TMask_field& f, KEY) const char* s = e.varname(i); if (s[0] != '#') { - TString err; err << TR("Non esiste la variabile ") << s << TR(" nell'espressione ") << e; + TString err; err << TR("Le variabili devono cominciare con #") << ": " << s << '\n' << e; return f.error_box((const char*)err); } s++; @@ -474,15 +474,16 @@ HIDDEN bool _date_cmp(TMask_field& f, KEY) return FALSE; } -HIDDEN bool _fixlen_val(TMask_field& f, KEY) +HIDDEN bool _fixlen_val(TMask_field& f, KEY) { - const TFixed_string s(f.get()); - - if (s.empty()) return TRUE; + if (f.empty()) + return true; + const TString& s = f.get(); const int length = atoi(get_val_param(0)); const bool ok = s.len() == length; - if (!ok) f.error_box(FR("Lunghezza errata: deve essere %d"), length); + if (!ok) + f.error_box(FR("La lunghezza del campo deve essere %d"), length); return ok; }