Modificat focus_field e test di autopremimento
git-svn-id: svn://10.65.10.50/trunk@2927 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
fd1e643907
commit
b873becb66
@ -240,6 +240,18 @@ int TMask::first_focus(short id)
|
||||
return f;
|
||||
}
|
||||
|
||||
TOperable_field& TMask::focus_field() const
|
||||
{
|
||||
const short focus = get_focus_id(win());
|
||||
|
||||
if (focus > 0 )
|
||||
((TMask *)this)->_focus = id2pos(focus);
|
||||
TMask_field & f = fld(_focus);
|
||||
|
||||
CHECK(f.is_kind_of(CLASS_OPERABLE_FIELD), "Can't set focus to non operable_field");
|
||||
return (TOperable_field&)f;
|
||||
}
|
||||
|
||||
void TMask::set_focus_field(short id)
|
||||
{
|
||||
const int pos = id2pos(id);
|
||||
@ -1141,7 +1153,7 @@ void TMask::autosave(TRelation& r) const
|
||||
if (!save)
|
||||
{
|
||||
e.autoload(r);
|
||||
save = f.empty();
|
||||
save = f.empty();
|
||||
}
|
||||
if (save)
|
||||
e.autosave(r);
|
||||
@ -1197,16 +1209,20 @@ void TMask::on_idle()
|
||||
_error_severity = 0;
|
||||
set_focus();
|
||||
}
|
||||
if (_test_fld >= 0 && _last_test != _focus)
|
||||
{
|
||||
TEditable_field & e = (TEditable_field &) field(_test_fld);
|
||||
const TEditable_field & c = (TEditable_field &) fld(_focus);
|
||||
if (!c.has_a_common_key(e))
|
||||
{
|
||||
e.test_key_complete(FALSE);
|
||||
_test_fld = -1;
|
||||
}
|
||||
_last_test = _focus;
|
||||
if (_test_fld >= 0)
|
||||
{
|
||||
const TOperable_field & f = focus_field();
|
||||
if (_last_test != f.dlg())
|
||||
{
|
||||
TEditable_field & e = (TEditable_field &) field(_test_fld);
|
||||
|
||||
if (!f.in_key(0) || !e.has_a_common_key(f))
|
||||
{
|
||||
e.test_key_complete(FALSE);
|
||||
_test_fld = -1;
|
||||
}
|
||||
_last_test = f.dlg();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -271,8 +271,7 @@ public:
|
||||
int first_focus(short id);
|
||||
|
||||
// @cmember Ritorna il numero del controllo che possiede il focus
|
||||
TOperable_field& focus_field() const
|
||||
{ return (TOperable_field&)fld(_focus); }
|
||||
TOperable_field& focus_field() const;
|
||||
|
||||
// @cmember Disabilita la lettura dei check della maschera
|
||||
void disable_starting_check()
|
||||
|
Loading…
x
Reference in New Issue
Block a user