powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перехват LostFocus
3 сообщений из 3, страница 1 из 1
Перехват LostFocus
    #38878804
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

На форме 2 контейнера. В одном грид, во втором объекты, который отображают содержимое строки грида для редактирования.
Допустим юзер что-то поменял и, не нажав кнопку "Сохранить", перемещается в грид на другую строку.

Хотелось бы выдавать предупреждение о несохраненных данных только при переходе на объекты вне контейнера.

Напрашивается использование LostFocus, но проблема в том, при изменении данных используются модальные формы для
выбора из справочников и т.п. Соответственно событие LostFocus контейнера отрабатывает не в самый подходящий момент.

Как бы его заставить работать, только когда мне надо?
...
Рейтинг: 0 / 0
Перехват LostFocus
    #38878845
Дед Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу поделиться отпытом, как сделано у меня. В каждом объекте редактирования в свойстве 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.,<Имя таблицы>), кнопкой "Отменить".

Такое возможно при использовании буферизации.
...
Рейтинг: 0 / 0
Перехват LostFocus
    #38879129
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как вариант...
Но только у меня есть объекты, у которых нет InteractiveChange (фотографии например)

Наверно надо мудрить какую-то пропертю и прикручивать к ней assign и отключать объекты, переход на которые запрещен.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перехват LostFocus
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]