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) if (fld_id <= 0)
{ {
const int gr = -fld_id; 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); c->reset();
if (gr == 0 || c.in_group(gr)) c->set_dirty(false);
{
c._flags.dirty = c._flags.focusdirty = false;
c.reset();
}
} }
} }
else field(fld_id).reset(); else
field(fld_id).reset();
} }
const TString& TMask::get(short fld_id) const 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 if (d == false) // Non permette di annullare il dirty dei campi errati
return; return;
} }
#ifdef DBG
if (d == 3)
_flags.dirty = d; // Riga per breakpoint
#endif
_flags.dirty = d; _flags.dirty = d;
set_focusdirty(d != 0); set_focusdirty(d != 0);
} }
@ -1748,7 +1744,7 @@ void TEditable_field::set_field(const TString& fr)
} }
else else
{ {
if (!fr.blank()) if (fr.full())
_field = new TFieldref(fr, 0); _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) void TSheet_field::row2mask(int n, TToken_string& r, int mode)
{ {
TMask& m = sheet_row_mask(n); 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; const TSpreadsheet& s = (const TSpreadsheet&)*_ctl;
TString val; TString val;
for (short id = FIRST_FIELD; id <= _last_column_id; id++) 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) 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 && if (id >= FIRST_FIELD &&
!f.is_kind_of(CLASS_BUTTON_FIELD) && !f.is_kind_of(CLASS_BUTTON_TOOL) && !f->is_kind_of(CLASS_BUTTON_FIELD) && !f->is_kind_of(CLASS_BUTTON_TOOL) &&
(f.active() || f.ghost())) (f->active() || f->ghost()))
{ {
if (f.has_check() && (mode & 0x1)) if (f->has_check() && (mode & 0x1))
f.check(STARTING_CHECK); f->check(STARTING_CHECK);
f.set_dirty(false); f->set_dirty(false);
if (mode & 0x2) 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)
if (f.dirty() == 1) f->set_dirty(false);
f.set_dirty(false);
} }
// Imposta titolo se pagina singola // Imposta titolo se pagina singola

View File

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