powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Событие itemchanged в DWObject
16 сообщений из 16, страница 1 из 1
Событие itemchanged в DWObject
    #32447664
Сотников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сабж происходит, когда я изменяю данные в ячейке и теряю фокус.
А как мне отловить просто потерю фокуса с контрола в DWObject, даже если данные не были изменены?
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32447686
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Событие ItemFocusChanged разве не подходит?
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32447926
Сотников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оно вызывается если поле получает фокус а не отдает его.
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32447993
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял - надо что то типа RowFocusChanging но для колонок.
Задавал я когда то подобный вопрос, но к сож. никто толком ничего не присоветовал.
Я делаю так:
- создал instance переменную
- в событии ItemFocusChanged записываю в нее текущий DWO, а перед этим можно анализировать ее содержимое. Она содержит предыдущую колонку, или isValid(DWO) = false на старте. Конечно, этой колонкой фокус будет уже потерян, но мне этот вариант подошел.

З.Ы.
Мне тут Филипп присоветовал по всем вопросам предварительно перечитывать PFC (матчасть), признаюсь - не смотрел :)) Мож. там это уже решено ...
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32447998
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОно вызывается если поле получает фокус а не отдает его.
какая разница?
Код: plaintext
1.
2.
if dwo.name<>  "CheckedField"  then
// обработка потери фокуса полем CheckedField
end if


если надо дополнительно отлавливать как пользователь уходит в другой объект, то у DW надо еще замапить pbm_dwnkillfocus
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32448018
Сотников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
if dwo.name<> "CheckedField" then
// обработка потери фокуса полем CheckedField
end if


Читаем код:
Если любой элемент DWO получает фокус выполнять обработку CheckedField.

Думаем и решаем что большая разница со следующим:
При потере фокуса CheckedField выполнять обработку.

Придется делать так как посоветовал PaulJB.
Как то странно такое НУЖНОЕ событие и делать через кувырок.
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32448060
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry :-(

Кстати, rowfocuschanging тоже не так давно появилось.
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32448103
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сотников, а чем оно такое нужное ?
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32448557
Сотников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Филипп:

Очень нужное. В зависимости от введенных данных в к-л поле DWO расчитать значения других полей.
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32448611
Фотография DenisVK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сотников Очень нужное. В зависимости от введенных данных в к-л поле DWO расчитать значения других полей.
Ну тогда используй - itemchanged
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32448623
Сотников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гм топики что-ли сначала не читают?

Сабж происходит, когда я изменяю данные в ячейке и теряю фокус.
А как мне отловить просто потерю фокуса с контрола в DWObject, даже если данные не были изменены?
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32448636
Фотография DenisVK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тебе пересчитывать данные, если данные на основании которых они расчитывабтся не меняются????
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32448651
dGrichine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Сотников

Re: Событие itemchanged в DWObject
Такая постановка вопроса не совсем корректна, так как DWObject, как таковой, не имеет ни событий ни функций...

События и функции может иметь только DW control, который и определяет для какого именно DWObject'а применить событие...

Так что вам правильно указали на использование события ItemFocusChanged
и кода в нем:
if dwo.name <> "CheckedField" then
// обработка потери фокуса полем CheckedField
end if

Даже если вы подключите pbm_dwnkillfocus, то вы подключите его опять к DW control и вам все равно придется определять в этом событии имя DWO, получится что-то вроде:
if dwo.name = "CheckedField" then
// обработка потери фокуса полем CheckedField
end if

Вам выбирать чем пользоваться...

===
Гришин Дмитрий
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32448672
Фотография DenisVK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс... Извини, невнимательно прочитал....
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32449119
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСабж происходит, когда я изменяю данные в ячейке и теряю фокус.
А как мне отловить просто потерю фокуса с контрола в DWObject, даже если данные не были изменены?

Важно понимать следующее:
-Событие ItemChanged происходит, непосредственно перед записью измененных данных в Primary bufer DataWindow.
-Событие же ItemFocusChanged происходит при изменении текущего элемента (Колонки) DataWindow.

Первоначально ввод и измение данных происходят в т.н edit contol'e в виде строки и только потом, после конвертации в формат колонки и проверки правил валидации данные будут записаны в Primary bufer . Именно на этапе конвертации/валидации может возникать событие ItemError . В случае успеха возникает событие ItemChanged . Если обработку данного события вы завершите с ReturnCode 1, то опять же произойдет возникновение ItemError.

Завершение редактирование (сброс данных в буфер DW) будет происходить неявно при попытке перемещения в другое поле DataWindow или же программно через Accepttext().

Всю эту мутотень я написал с одной только целью, что бы четко представляли как данные при ручном вводе/правке попадают во буфер DataWindow, и ещё раз четко и внятно объяснили мне и возможно остальным, что Вам нужно.
...
Рейтинг: 0 / 0
Событие itemchanged в DWObject
    #32449266
Centner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Black SavageСобытие ItemFocusChanged разве не подходит?

Сотников Оно вызывается если поле получает фокус а не отдает его.
Ну так при ItemFocusChanged запихни dwo.name в какой нибудь инстанс, и в этот же момент обработай предыдущий.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Событие itemchanged в DWObject
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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