powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Блокировка выхода фокуса из текущего DW
36 сообщений из 36, показаны все 2 страниц
Блокировка выхода фокуса из текущего DW
    #35765486
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема:
Необходимо запретить выход из DW до заполнения вручную необходимого количества полей. На окне куча элементов и вставлять в каждый проверку заполнения "DW редактирования" и возврат фокуса в него не хочется. Каким событием можно заблокировать выход фокуса из DW, так что бы при щелчке на новом элементе в нем не отработало ни одного события, а фокус остался в исходном DW?
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35765505
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, совсем забыл. Все таки на 1 кнопку "Сохранить" на окне нажать можно!
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35765579
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
перенести дв в респонс окно.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35765587
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перенести DW в другое окно не могу. Так как на окне в этой вкладке еще 2 DW. От позиции в одном, зависят данные в других. Т.е. при rowfocuschanged в одном я делаю retrive других.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35765940
Mykola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
events: ItemChanged
, ItemError
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766339
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vovan_z
Если юзер открыл окно, не внес никаких изменений в первое ДВ и пытается из него выйти - такое допускается?
Ибо, при этом вариант от Mykola не сработает.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766422
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mykolaevents: ItemChanged
, ItemError

Эти события не отрабатывают при смене фокуса с одного DW на другой. Они отрабытывают только при смене фокума строк/колонок внутри 1 DW. Даже если бы и отрабытывали то мне перед сменой фокуса всегда последним действием пришлось бы чтото менять в DW. А это не подходит!
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766427
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulJB 2 vovan_z
Если юзер открыл окно, не внес никаких изменений в первое ДВ и пытается из него выйти - такое допускается?
Ибо, при этом вариант от Mykola не сработает.
Такое допускается!
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766501
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно - это не мое собачье дело, да и в жизни все быть может, но сам подход все же настораживает.
vovan_zПроблема:
Необходимо запретить выход из DW до заполнения вручную необходимого количества полей. ...
Конечно, должна быть защита от дурака, но лишать пользователя возможностей :
- отказаться от ввода данных
- или скопировать откуда-то часть текста, чтобы потом его вставить в поле программы
- или перейти в другую программу, чтобы срочно решить како-либо вопрос
- или ... да мало ли что может быть ?
Я бы не рискнул. Так вместо благодарности - можно и проклятья получить.

Good Luck !
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766747
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChVКонечно - это не мое собачье дело, да и в жизни все быть может, но сам подход все же настораживает.
vovan_zПроблема:
Необходимо запретить выход из DW до заполнения вручную необходимого количества полей. ...
Конечно, должна быть защита от дурака, но лишать пользователя возможностей :
- отказаться от ввода данных
- или скопировать откуда-то часть текста, чтобы потом его вставить в поле программы
- или перейти в другую программу, чтобы срочно решить како-либо вопрос
- или ... да мало ли что может быть ?
Я бы не рискнул. Так вместо благодарности - можно и проклятья получить.

Good Luck !
Переключатся в другие окна программы и другие приложения ты можешь легко. Так что модальное окно еще хуже в этом плане. Иногда такое решение на мой взгляд вполне приемлеменое, н-р когда фокус уходит на другое DW смена строки в котором должа обновить данные в редатируемом ранее DW и ты не можешь дать уйти фокусу не заполнив обязательные параметры или как раз задать вопрос "Т.к. обязательные поля не заполены. Отменить то что было введено?". Как для этото и пригодилоль бы такое событие. Но кажется что его нет:(.наверное придется вствлять вызов обработки в setfocus каждого объекта.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766902
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще вариант:

пробежаться по всем контролам окна и задизаблить всех кроме кнопки и текущего датавиндов.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766939
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry..еще вариант:

пробежаться по всем контролам окна и задизаблить всех кроме кнопки и текущего датавиндов.

Кстати, МЫСЛЬ! так должно получится. А как получить все контролы окна?и в них вложенные?
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766990
SasaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
window.controls[]
if window.controls[i] - tab, userobject, то tab.controls[], userobject.controls[]
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35767400
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ItemChanged срабатывает только тогда, когда значение поля было изменено юзером иначе - нет.
Т.е. если окно отобразилось и юзер в поле ничего не вводил (в поле содержится значение по умолчанию), при выходе из него ItemChanged не сработает т.к. ничего не менялось. Можно конечно поиграться с флагами SetItemStatus, но это, кажись, ничего не давало. Можно еще попробовать установить св-во Required (точно не помню как называется). Тогда если поле пустое, система по идее должна вызывать ItemError, но при этом билдер довольно назойливо напоминает об заполнении этих полей.
Для установки недоступности поля можно использовать Protected. Удобно тем, что там можно указывать выражения. ... но тоже не лишено глюков. Если интересует - расскажу.
К сож. не могу проверить т.к. билдера нет под рукой, хотя времени уже вагон ... :(
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35767936
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vovan_zНеобходимо запретить выход из DW до заполнения вручную необходимого количества полей.
Идея по сути дела преступная...
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35767952
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему?:)
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35767996
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому :-)

,что те элементы пользовательского интерфейса, которые инициируют действия пргораммы зависящие от состояния заполнения данных и должны вызывать проверку наличия этих данных.
А заниматься пленением ввода (за исключением модальных окон) - нехорошо.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768242
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филиппзаниматься пленением ввода (за исключением модальных окон) - нехорошо.Ну я скажу, что доступность для ввода определенных полей в окне, в зависимости от значений заполнения других, еще никто не отменял? ;)
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768353
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulJBФилиппзаниматься пленением ввода (за исключением модальных окон) - нехорошо.Ну я скажу, что доступность для ввода определенных полей в окне, в зависимости от значений заполнения других, еще никто не отменял? ;)

пленение ввода - это обратный перевод с Capturing Input
Так вот какое имеет отношение Capturing Input к доступности для ввода , не очень ясно...
То бишь бывает, не пущать, а бывает - держать :-)
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768622
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знакомая ситуация
Явные огрехи при проектировании интерфейса
Самый нормальный выход - перед сохранением проверить корректность вводимых данных + контроль каждого элемента "за собой"
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768822
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй, проверка обязательных полей строки.
integer dwcontrol.FindRequired ( DWBuffer dwbuffer, long row, integer
colnbr, string colname, boolean updateonly ) - (скопировано из хелпа)
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768901
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые форумчане, сразу приношу свой извинения за оффтоп. Как сейчас помню в 1994 г в Ленинграде (так раньше назывался СП), в книжном магазине напоролся на книгу, автор гражданин USA (не помню его фамилию), называется "Философия пользовательского интерфейса" (80%) названия правильно, там рекомендовано как правильно создавать интерфейс, т.е. какие цвета использовать вместе какие нет, где лучше расположить кнопки, ширину обеъктов и.т.д.(очень похоже на науку эргономику) и там же написано как делать дружественное поведение программы на действия пользователя. Книга была дорогая не купил, так больше ни разу её не видел.
Если кто, что то знает о ней киньте в личку (Автор, правильное название).
Уважаемый ФИЛИПП посмотрите у себя там.
Заранее всем благодарен.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768978
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxATC...
Если кто, что то знает о ней киньте в личку (Автор, правильное название).
Уважаемый ФИЛИПП посмотрите у себя там.
Заранее всем благодарен.Поищите по инету - на тему User friendly interface очень много чего понаписано, и не только гражданами USA и не только на английском языке.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35769009
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ikar,

Спасибо.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35769780
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо, я смотрю у всех свое мнение. И как же по вашему должны работать например 2 DW в окне. Если при изменении фокуса строки в dw1 происходит retriev dw2. А dw2 является редактируемым, причем еще с обязательными полями(с входом и выходом из режима редактирования). Я хочу что бы находясь в режиме редактирования можно было как то откловить событие выхода из dw2, что бы в dw1 не сработал setfocus и rowfocuschanged. И выдать сообщение что данные не все введены и что варианта два либы отменить введеное и фокусировать на dw1 затем dw2 будет обновлено либо остаться и заполнять до конца dw2. Где я думаю не правильно?
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35769852
ono?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vovan_z,
почему не хотите добавить кнопки Edit и Save,
и соответственно играться с enable/disable DW ?
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35769865
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ono?vovan_z,
почему не хотите добавить кнопки Edit и Save,
и соответственно играться с enable/disable DW ?
у меня есть кнопка Edit/Save
так в режиме edit разве я могу позволить выскочить из редактируемего dw2 в dw1 и обновить dw2
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35769897
ono?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vovan_z,

если нередактируемое dw сделать "disable" никто в него не зайдет.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35769930
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vovan_zЯ хочу что бы находясь в режиме редактирования можно было как то откловить событие выхода из dw2, что бы в dw1 не сработал setfocus и rowfocuschanged.
Для этого существует событие rowfocuschang ing , где и следует проверять валидность (dw2.AcceptText() и прочее) и, при невалидности, предотвращать смену фокуса строки, возвращая нужное значение либо при валидности сохранять введенные данные.
А отлавливать выход фокуса из DW для целей валидации - нонсенс.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35770210
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ono?vovan_z,

если нередактируемое dw сделать "disable" никто в него не зайдет.
я в последней версии "disable" и делал

Anatoly Moskovsky хорошо посоветовал с rowfocuschanging
dw1 переделаю с disable на rowfocuschanging
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35770364
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxATCУважаемые форумчане, сразу приношу свой извинения за оффтоп. Как сейчас помню в 1994 г в Ленинграде (так раньше назывался СП), в книжном магазине напоролся на книгу, автор гражданин USA (не помню его фамилию), называется "Философия пользовательского интерфейса" (80%) названия правильно...
Скорее всего имеется в виду Алан Купер
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35774634
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vovan_zПроблема:
Необходимо запретить выход из DW до заполнения вручную необходимого количества полей. На окне куча элементов и вставлять в каждый проверку заполнения "DW редактирования" и возврат фокуса в него не хочется. Каким событием можно заблокировать выход фокуса из DW, так что бы при щелчке на новом элементе в нем не отработало ни одного события, а фокус остался в исходном DW?

я конечно жутко извеняюсь, но чем не устраивает пример и хэлпа?
Втыкаеш это в функцию, и вызываеш её в начале кода каждого события твоих кнопок ...

integer li_colnbr = 1
long ll_row = 1
string ls_colname, ls_textname

// Make sure the last entry is accepted
IF adw_control.AcceptText() = -1 THEN
adw_control.SetFocus()
RETURN -2
END IF

// Find the first empty row and column, if any
IF adw_control.FindRequired(Primary!, ll_row, li_colnbr, ls_colname, true) < 1 THEN
//If search fails due to error, then return
RETURN -2
END IF

// Was any row found?
IF ll_row <> 0 THEN
// Get the text of that column's label.
ls_textname = ls_colname + "_t.Text"
ls_colname = adw_control.Describe(ls_textname)

// Tell the user which column to fill in
MessageBox("Required Value Missing", "Please enter a value for '" + ls_colname + "', row " + &
String(ll_row) + ".", StopSign! )

// Make the problem column current.
adw_control.SetColumn(li_colnbr)
adw_control.ScrollToRow(ll_row)
adw_control.SetFocus()
RETURN -1
END IF

// Return success code if all required rows and columns have data
RETURN 1
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35774677
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voronkvovan_zНа окне куча элементов и вставлять в каждый проверку заполнения "DW редактирования" и возврат фокуса в него не хочется.

я конечно жутко извеняюсь, но чем не устраивает пример и хэлпа?
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35774740
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп
Скорее всего имеется в виду Алан Купер
Спасибо. Очень похоже. "Психбольница в руках пациентов" - здорово, рекомендую.
Данная под тема закрыта. Всех благодарю за участие.
Извините за оффтоп.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35774916
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создай функцию на проверку заполненных обязательных полей (пример Boolean of_row_OK())
возвращает True - все ОК.
На кнопках в евенте Click
if of_row_OK() then твой_евент_обработки_нажатия_данной_кнопки()
Т.е. кнопки будут просто нажималками без каких то либо действий пока пользователь не заполнит поля. Думаю кнопок не много.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35775619
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филиппvoronkvovan_zНа окне куча элементов и вставлять в каждый проверку заполнения "DW редактирования" и возврат фокуса в него не хочется.

я конечно жутко извеняюсь, но чем не устраивает пример и хэлпа?

ну не внимательно читал, ну и что ...???
Кричать зачем ?

Я вроде на больную мозоль никому не наступил ... и денег никому не должен ...

А вааще, я заинтригован ... больше 10 лет ковыряюсь с билдером, разное видел, но хочетса, очень хочетса взглянуть, шо ж там за окно такое с кучей элементов ???

комрад vovan_z, если это конечно не коммерческая тайна ... скрин-шот - в студию плз ...
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Блокировка выхода фокуса из текущего DW
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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