|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Проблема: Необходимо запретить выход из DW до заполнения вручную необходимого количества полей. На окне куча элементов и вставлять в каждый проверку заполнения "DW редактирования" и возврат фокуса в него не хочется. Каким событием можно заблокировать выход фокуса из DW, так что бы при щелчке на новом элементе в нем не отработало ни одного события, а фокус остался в исходном DW? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2009, 17:39 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Да, совсем забыл. Все таки на 1 кнопку "Сохранить" на окне нажать можно! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2009, 17:43 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
перенести дв в респонс окно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2009, 18:05 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
перенести DW в другое окно не могу. Так как на окне в этой вкладке еще 2 DW. От позиции в одном, зависят данные в других. Т.е. при rowfocuschanged в одном я делаю retrive других. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2009, 18:10 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
events: ItemChanged , ItemError ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2009, 22:24 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
2 vovan_z Если юзер открыл окно, не внес никаких изменений в первое ДВ и пытается из него выйти - такое допускается? Ибо, при этом вариант от Mykola не сработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 09:59 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Mykolaevents: ItemChanged , ItemError Эти события не отрабатывают при смене фокуса с одного DW на другой. Они отрабытывают только при смене фокума строк/колонок внутри 1 DW. Даже если бы и отрабытывали то мне перед сменой фокуса всегда последним действием пришлось бы чтото менять в DW. А это не подходит! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 10:29 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
PaulJB 2 vovan_z Если юзер открыл окно, не внес никаких изменений в первое ДВ и пытается из него выйти - такое допускается? Ибо, при этом вариант от Mykola не сработает. Такое допускается! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 10:31 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Конечно - это не мое собачье дело, да и в жизни все быть может, но сам подход все же настораживает. vovan_zПроблема: Необходимо запретить выход из DW до заполнения вручную необходимого количества полей. ... Конечно, должна быть защита от дурака, но лишать пользователя возможностей : - отказаться от ввода данных - или скопировать откуда-то часть текста, чтобы потом его вставить в поле программы - или перейти в другую программу, чтобы срочно решить како-либо вопрос - или ... да мало ли что может быть ? Я бы не рискнул. Так вместо благодарности - можно и проклятья получить. Good Luck ! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 10:52 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
ChVКонечно - это не мое собачье дело, да и в жизни все быть может, но сам подход все же настораживает. vovan_zПроблема: Необходимо запретить выход из DW до заполнения вручную необходимого количества полей. ... Конечно, должна быть защита от дурака, но лишать пользователя возможностей : - отказаться от ввода данных - или скопировать откуда-то часть текста, чтобы потом его вставить в поле программы - или перейти в другую программу, чтобы срочно решить како-либо вопрос - или ... да мало ли что может быть ? Я бы не рискнул. Так вместо благодарности - можно и проклятья получить. Good Luck ! Переключатся в другие окна программы и другие приложения ты можешь легко. Так что модальное окно еще хуже в этом плане. Иногда такое решение на мой взгляд вполне приемлеменое, н-р когда фокус уходит на другое DW смена строки в котором должа обновить данные в редатируемом ранее DW и ты не можешь дать уйти фокусу не заполнив обязательные параметры или как раз задать вопрос "Т.к. обязательные поля не заполены. Отменить то что было введено?". Как для этото и пригодилоль бы такое событие. Но кажется что его нет:(.наверное придется вствлять вызов обработки в setfocus каждого объекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 12:13 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
еще вариант: пробежаться по всем контролам окна и задизаблить всех кроме кнопки и текущего датавиндов. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 13:15 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Dmitry..еще вариант: пробежаться по всем контролам окна и задизаблить всех кроме кнопки и текущего датавиндов. Кстати, МЫСЛЬ! так должно получится. А как получить все контролы окна?и в них вложенные? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 13:27 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
window.controls[] if window.controls[i] - tab, userobject, то tab.controls[], userobject.controls[] ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 13:44 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
ItemChanged срабатывает только тогда, когда значение поля было изменено юзером иначе - нет. Т.е. если окно отобразилось и юзер в поле ничего не вводил (в поле содержится значение по умолчанию), при выходе из него ItemChanged не сработает т.к. ничего не менялось. Можно конечно поиграться с флагами SetItemStatus, но это, кажись, ничего не давало. Можно еще попробовать установить св-во Required (точно не помню как называется). Тогда если поле пустое, система по идее должна вызывать ItemError, но при этом билдер довольно назойливо напоминает об заполнении этих полей. Для установки недоступности поля можно использовать Protected. Удобно тем, что там можно указывать выражения. ... но тоже не лишено глюков. Если интересует - расскажу. К сож. не могу проверить т.к. билдера нет под рукой, хотя времени уже вагон ... :( ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 15:49 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
vovan_zНеобходимо запретить выход из DW до заполнения вручную необходимого количества полей. Идея по сути дела преступная... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 18:38 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Почему?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 18:52 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Потому :-) ,что те элементы пользовательского интерфейса, которые инициируют действия пргораммы зависящие от состояния заполнения данных и должны вызывать проверку наличия этих данных. А заниматься пленением ввода (за исключением модальных окон) - нехорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 19:24 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Филиппзаниматься пленением ввода (за исключением модальных окон) - нехорошо.Ну я скажу, что доступность для ввода определенных полей в окне, в зависимости от значений заполнения других, еще никто не отменял? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 23:08 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
PaulJBФилиппзаниматься пленением ввода (за исключением модальных окон) - нехорошо.Ну я скажу, что доступность для ввода определенных полей в окне, в зависимости от значений заполнения других, еще никто не отменял? ;) пленение ввода - это обратный перевод с Capturing Input Так вот какое имеет отношение Capturing Input к доступности для ввода , не очень ясно... То бишь бывает, не пущать, а бывает - держать :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 02:35 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Знакомая ситуация Явные огрехи при проектировании интерфейса Самый нормальный выход - перед сохранением проверить корректность вводимых данных + контроль каждого элемента "за собой" ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 10:10 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Попробуй, проверка обязательных полей строки. integer dwcontrol.FindRequired ( DWBuffer dwbuffer, long row, integer colnbr, string colname, boolean updateonly ) - (скопировано из хелпа) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 11:14 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Уважаемые форумчане, сразу приношу свой извинения за оффтоп. Как сейчас помню в 1994 г в Ленинграде (так раньше назывался СП), в книжном магазине напоролся на книгу, автор гражданин USA (не помню его фамилию), называется "Философия пользовательского интерфейса" (80%) названия правильно, там рекомендовано как правильно создавать интерфейс, т.е. какие цвета использовать вместе какие нет, где лучше расположить кнопки, ширину обеъктов и.т.д.(очень похоже на науку эргономику) и там же написано как делать дружественное поведение программы на действия пользователя. Книга была дорогая не купил, так больше ни разу её не видел. Если кто, что то знает о ней киньте в личку (Автор, правильное название). Уважаемый ФИЛИПП посмотрите у себя там. Заранее всем благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 11:38 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
maxATC... Если кто, что то знает о ней киньте в личку (Автор, правильное название). Уважаемый ФИЛИПП посмотрите у себя там. Заранее всем благодарен.Поищите по инету - на тему User friendly interface очень много чего понаписано, и не только гражданами USA и не только на английском языке. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 11:57 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Ikar, Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 12:06 |
|
Блокировка выхода фокуса из текущего DW
|
|||
---|---|---|---|
#18+
Ну хорошо, я смотрю у всех свое мнение. И как же по вашему должны работать например 2 DW в окне. Если при изменении фокуса строки в dw1 происходит retriev dw2. А dw2 является редактируемым, причем еще с обязательными полями(с входом и выходом из режима редактирования). Я хочу что бы находясь в режиме редактирования можно было как то откловить событие выхода из dw2, что бы в dw1 не сработал setfocus и rowfocuschanged. И выдать сообщение что данные не все введены и что варианта два либы отменить введеное и фокусировать на dw1 затем dw2 будет обновлено либо остаться и заполнять до конца dw2. Где я думаю не правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 15:59 |
|
|
start [/forum/topic.php?fid=15&msg=35768822&tid=1336404]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 270ms |
0 / 0 |