From 43b3d42d58c996ffc1f6f6361dfc49ff93bb0f1a Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 20 Jul 1995 13:38:46 +0000 Subject: [PATCH] Correzzioni varie a Gestione tracciati git-svn-id: svn://10.65.10.50/trunk@1625 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba1100.cpp | 2 +- ba/ba1100.h | 1 + ba/ba1101.cpp | 43 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/ba/ba1100.cpp b/ba/ba1100.cpp index 160ce5ae4..9849082da 100755 --- a/ba/ba1100.cpp +++ b/ba/ba1100.cpp @@ -837,7 +837,7 @@ bool TManutenzione_app::menu(MENU_TAG m) riga_selezionata = _browse->selected(); riga = _browse->row(); insert_riga (riga_selezionata, riga); - break; + break; case K_ENTER: riga_selezionata = _browse->selected(); diff --git a/ba/ba1100.h b/ba/ba1100.h index a504ac64e..dd04b5cb8 100755 --- a/ba/ba1100.h +++ b/ba/ba1100.h @@ -56,6 +56,7 @@ class TRec_sheet : public TObject protected: bool check_key_expr(int key, const char* key_expr); static bool key_notify(int r, KEY k); + static bool fld_notify(int r, KEY k); void save(); virtual long items() const { return _rec->fields(); } diff --git a/ba/ba1101.cpp b/ba/ba1101.cpp index 5f77359bf..d505f8ecd 100755 --- a/ba/ba1101.cpp +++ b/ba/ba1101.cpp @@ -69,7 +69,9 @@ bool TDir_sheet::on_key(KEY key) case 'E': key = K_DEL; break; case 'I': - key = K_INS; break; + key = K_F6; break; + case K_F4: + key = K_ESC; break; default: break; } @@ -191,12 +193,50 @@ bool TRec_sheet::key_notify(int r, KEY k) if (k == K_INS) { + const int items = f.items(); + f.disable_cell(0, 1); if (f.items() >= 8) return FALSE; + if (items > 1) + { + const int s = f.selected() + 1; + + for (int i = items - 1; i > s ; i--) + { + TToken_string & r1 = f.row(i); + const TToken_string & r = f.row(i - 1); + r1 = r; + } + f.row(s) = ""; + f.force_update(); + } } return TRUE; } +bool TRec_sheet::fld_notify(int r, KEY k) +{ + TSheet_field& f = (TSheet_field&) _mask->field(F_FIELDS); + if (k == K_INS) + { + const int items = f.items(); + if (items > 1) + { + const int s = f.selected() + 1; + + for (int i = items - 1; i > s ; i--) + { + TToken_string & r1 = f.row(i); + const TToken_string & r = f.row(i - 1); + r1 = r; + } + f.row(s) = ""; + f.force_update(); + } + } + return TRUE; +} + void TRec_sheet::save() { @@ -228,6 +268,7 @@ void TRec_sheet::edit() _mask->set (F_NUM, _dir->num()); _mask->set (F_DES, _dir->des()); f1.sheet_mask().field(FLD_LEN).set_handler(len_handler); + f1.set_notify(fld_notify); int nfields = _rec->fields(); f1.enable_column(FLD_DES - 101, _descr != NULL);