|
Объект.Valid() формы FormSet-а + форма-мессага = вечный Valid()
|
|||
---|---|---|---|
#18+
вообще вопрос был поставлен про увод фокуса из контрола с помощью мышки при получении сообщения и разница при использовании клавы в этом же случае. Ну и в чем причина такого поведения. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2010, 13:34 |
|
Объект.Valid() формы FormSet-а + форма-мессага = вечный Valid()
|
|||
---|---|---|---|
#18+
CTAC-KO, я тоже возмущаться начну сейчас, так как считаю все сотворенное бредом, воткни тотже код в метод лостфокус тогда и радуйся ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2010, 13:44 |
|
Объект.Valid() формы FormSet-а + форма-мессага = вечный Valid()
|
|||
---|---|---|---|
#18+
Во-первых, когда делаешь тестовый пример, надо делать ЧИСТУЮ форму. Без всевозможных "наворотов". Вот зачем мне разбираться в куче параметров, если ты используешь только один из них? Во-вторых, если бы ты сделал в качестве класс MessageWindow просто форму с единственной кнопкой "Выход" без какого-либо кода (ЧИСТУЮ форму), то увидел бы, что проблемы не возникает. Из этого, мог бы сделать вывод, что проблема в каких-то действиях непосредственно в твоем классе формы MessageWindow. Далее, добавляя код из оригинальной формы мог бы найти, что проблема возникает если дается команда this.btnOK.SetFocus() Т.е. факт ЯВНОГО увода фокуса на другой объект и пораждает подобный эффект. Что, собственно, и следовало ожидать, ведь на момент подачи этой команды форма еще не видна (в init-формы - это запрещенная команда!). Значит, подобную команду давать не надо. "Рулить" тем, какой объект получит фокус следует через указание значения свойства TabIndex. Или разнести кнопки по страницам PageFrame без закладок и просто активизировать нужную страницу. ==================================================== Вообще-же, выдача сообщений в событии Valid() объектов - это создание СЕБЕ больших проблем. Не должно быть здесь НИКАКИХ сообщений. Все сообщения выводятся при попытке сохранить сделанные изменения. Но никак не в процессе внесения этих изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2010, 14:41 |
|
Объект.Valid() формы FormSet-а + форма-мессага = вечный Valid()
|
|||
---|---|---|---|
#18+
прошелмимоCTAC-KO, я тоже возмущаться начну сейчас, да я не возмущался, просто вопрос был не в том, и по поводу Valid-а я уже отписывал. прошелмимовоткни тотже код в метод лостфокус тогда и радуйся об этом тоже уже думал и писал, хотя не пробовал прошелмимотак как считаю все сотворенное бредом,Действительно все так плохо? Или все из-за того что выбран метод Valid? 2Владимир Спасибо! Да, виноват, подумал на формсет, а оказалось все как обычно - hands.dll... Так а как же мне выставить кнопку выбранной по-умолчанию, т.е. чтобы форма появилась с фокусом на ней? Надо тогда ей выставить как-то TabIndex=1... Ладно буду разбираться. Что до проверки в методе валида а не перед записью - так удобнее, т.к. форма пошаговая, т.е. есть несколько страниц с данными и если просто в конце вывести предупреждение юзер потом долго думает а где это, ищет и все такое. А так его сразу предупреждают на текущей странице на текущем контроле. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2010, 15:09 |
|
Объект.Valid() формы FormSet-а + форма-мессага = вечный Valid()
|
|||
---|---|---|---|
#18+
CTAC-KOТак а как же мне выставить кнопку выбранной по-умолчанию, т.е. чтобы форма появилась с фокусом на ней? Надо тогда ей выставить как-то TabIndex=1...У кнопок есть свойство Default. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2010, 15:10 |
|
Объект.Valid() формы FormSet-а + форма-мессага = вечный Valid()
|
|||
---|---|---|---|
#18+
авторДействительно все так плохо? Или все из-за того что выбран метод Valid? вместо подъема форм можно подумать в сторону подсветки невалидных значений + вывода информационных сообщений в постоянное окно - лог вариант метода Valid контрола, статусбар фокса для сообщатора - это как самый простой вариант, всемто него может существовать особое окно для логирования действий аля 1-це(к примеру) и т.д. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
в моей библиотеке у контролов есть св-во lValid у свойства есть ассайн метод, который анализирует св-во lAlertcolor (возможность/нужность подсветки невалидности) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
+ в реальной библиотеке доп.танцы с запоминанием старых, новых значений и т.д., но наличие заготовленных таким образом классов решает проблему визуального отображения валидности ввода, снижает трудозатраты если интересно отказаться от вывода пользователю взлетающих и надоедающих окон + разбор полетов в виде различных псевдо вопросов про глюки от фокса, то поболтаем на эту тему ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2010, 16:04 |
|
Объект.Valid() формы FormSet-а + форма-мессага = вечный Valid()
|
|||
---|---|---|---|
#18+
авторВсе сообщения выводятся при попытке сохранить сделанные изменения. Но никак не в процессе внесения этих изменений. согласен но иногда встречаются ТЗ, утвержденные ..., в которых тупо ставится задача орать и светить во время каждого телодвижения оператора до момента попытки сохранения всего документа, и ничего с этим не поделать (как пример - ввод ПД в различных системах КБ). и это благо, что в фокспро есть событийность на каждый чих. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2010, 16:16 |
|
Объект.Valid() формы FormSet-а + форма-мессага = вечный Valid()
|
|||
---|---|---|---|
#18+
Вот полностью по изложенному выше плану я и собираюсь действовать! И окошко лога типа 1цэ (не так давно как раз поднимал на форуме тему работы вфп с окнами и понял что придеццо ваять класс-форму) и подсветка контролов с инвалидной инфой, и подобное lValid св-во у меня тоже давно есть, я его назвал Validated. И подсветку тоже давно сделал именно для того чтобы юзеру было сразу видать че он криво понабрал (заливаю фон контрола желтым). Кроме того как раз заделал подсветку полей, в которых наличие инфы - обязательно. Уж не знаю как кто, но я решил обводить их красным прямоугольником. Сообщения типа этих мне надо для случаев, к примеру, если тело вводит дату, которая является выходным днем, например, что недопустимо, или там год нетекущий. Выходит что инфа-то есть, но кривая и об этом я специально так предупреждаю, иначе юзер тупо не увидит и не отреагирует, а если и в этом случае не отреагирует - то потом будет искать постранично ту дату. В любом случае интересно конечно же пообщаться по поводу. Ты из этих логов (1цэ) инфу сохраняешь? Если да: локально или в бд? историю подтягиваешь? еще какие-то делал по ним фичи - типа очистки там, поиска и тп? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2010, 20:05 |
|
|
start [/forum/topic.php?fid=41&msg=36412662&tid=1585687]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 352ms |
total: | 486ms |
0 / 0 |