Patch level : 10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
0001515: 001866 - presscolor. campi memo
Nei campi memo il cursore non si posiziona in prima posizione


git-svn-id: svn://10.65.10.50/trunk@20222 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2010-03-11 16:01:17 +00:00
parent 4f1759b6d7
commit bc24fd1e31
4 changed files with 26 additions and 29 deletions

View File

@ -1465,17 +1465,14 @@ void TMask::reset(short fld_id)
if (fld_id <= 0)
{
const int gr = -fld_id;
for (int f = fields()-1; f >= 0; f--)
FOR_EACH_MASK_FIELD(*this, i, c) if (gr == 0 || c->in_group(gr))
{
TMask_field& c = fld(f);
if (gr == 0 || c.in_group(gr))
{
c._flags.dirty = c._flags.focusdirty = false;
c.reset();
}
c->reset();
c->set_dirty(false);
}
}
else field(fld_id).reset();
else
field(fld_id).reset();
}
const TString& TMask::get(short fld_id) const

View File

@ -525,10 +525,6 @@ void TMask_field::set_dirty(byte d)
if (d == false) // Non permette di annullare il dirty dei campi errati
return;
}
#ifdef DBG
if (d == 3)
_flags.dirty = d; // Riga per breakpoint
#endif
_flags.dirty = d;
set_focusdirty(d != 0);
}
@ -1748,7 +1744,7 @@ void TEditable_field::set_field(const TString& fr)
}
else
{
if (!fr.blank())
if (fr.full())
_field = new TFieldref(fr, 0);
}
}

View File

@ -3203,7 +3203,9 @@ void TSheet_field::mask2row(int n, TToken_string & rec)
void TSheet_field::row2mask(int n, TToken_string& r, int mode)
{
TMask& m = sheet_row_mask(n);
const int campi = m.fields();
m.reset(); // Azzera tutti i campi, soprattutto quelli con (id > _last_column_id)
//const int campi = m.fields();
const TSpreadsheet& s = (const TSpreadsheet&)*_ctl;
TString val;
for (short id = FIRST_FIELD; id <= _last_column_id; id++)
@ -3223,29 +3225,27 @@ void TSheet_field::row2mask(int n, TToken_string& r, int mode)
if (mode > 0)
{
for (int i = 0; i < campi; i++)
FOR_EACH_MASK_FIELD(m, i, f)
{
TMask_field& f = m.fld(i);
const short id = f.dlg();
const short id = f->dlg();
if (id >= FIRST_FIELD &&
!f.is_kind_of(CLASS_BUTTON_FIELD) && !f.is_kind_of(CLASS_BUTTON_TOOL) &&
(f.active() || f.ghost()))
!f->is_kind_of(CLASS_BUTTON_FIELD) && !f->is_kind_of(CLASS_BUTTON_TOOL) &&
(f->active() || f->ghost()))
{
if (f.has_check() && (mode & 0x1))
f.check(STARTING_CHECK);
f.set_dirty(false);
if (f->has_check() && (mode & 0x1))
f->check(STARTING_CHECK);
f->set_dirty(false);
if (mode & 0x2)
f.on_hit();
f->on_hit();
}
}
}
for (int i = 0; i < campi; i++)
FOR_EACH_MASK_FIELD(m, i, f)
{
TMask_field& f = m.fld(i);
if (f.dirty() == 1)
f.set_dirty(false);
if (f->dirty() == 1)
f->set_dirty(false);
}
// Imposta titolo se pagina singola

View File

@ -961,6 +961,10 @@ const TString_array& user_and_groups()
void TDB_cache::discard(int file)
{
rec_cache(file).flush();
rec_cache(file).destroy();
TRecord_cache* rc = (TRecord_cache*)objptr(file);
if (rc != NULL)
{
rc->flush();
rc->destroy();
}
}