|
Перехват LostFocus
|
|||
---|---|---|---|
#18+
Добрый день! На форме 2 контейнера. В одном грид, во втором объекты, который отображают содержимое строки грида для редактирования. Допустим юзер что-то поменял и, не нажав кнопку "Сохранить", перемещается в грид на другую строку. Хотелось бы выдавать предупреждение о несохраненных данных только при переходе на объекты вне контейнера. Напрашивается использование LostFocus, но проблема в том, при изменении данных используются модальные формы для выбора из справочников и т.п. Соответственно событие LostFocus контейнера отрабатывает не в самый подходящий момент. Как бы его заставить работать, только когда мне надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 10:36 |
|
Перехват LostFocus
|
|||
---|---|---|---|
#18+
Могу поделиться отпытом, как сделано у меня. В каждом объекте редактирования в свойстве InteractiveChange прописана функция: Thisform.KontrolEdit(This.Value,This.ControlSource) Так как используется буферизация таблиц, то сравниваются измененное значение со значеним ControlSource Если значения отличаются, то блокируется Grid, и астивируется кнопка "Сохранить" *//Фстроенная функция Thisform.KontrolEdit//* PARAMETERS BaseKontrol, EditKontrol WITH Thisform IF EVALUATE(EditKontrol) # BaseKontrol .Command1.Enabled = .T. .Command2.Enabled = .T. .Grid1.Enabled = .F. ENDIF ENDWITH А в кнопке "Сохранить" есть команда, которая сбрасывает данные из буфера в таблицы = TABLEUPDATE(.F.,.F.,<Имя таблицы>) и отменяет блокировку Grid .Grid1.Enabled = .T., которая разблокирует Grid Или отменить внесенные изменения командой =TABLEREVERT(.T.,<Имя таблицы>), кнопкой "Отменить". Такое возможно при использовании буферизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 11:00 |
|
Перехват LostFocus
|
|||
---|---|---|---|
#18+
Как вариант... Но только у меня есть объекты, у которых нет InteractiveChange (фотографии например) Наверно надо мудрить какую-то пропертю и прикручивать к ней assign и отключать объекты, переход на которые запрещен. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 13:51 |
|
|
start [/forum/topic.php?fid=41&fpage=27&tid=1582444]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 130ms |
0 / 0 |