|
|
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
Версия PB - 7.0.3. Необходимо, что бы пользователь мог вводить в поле EditMask ( не в DW!!! ) что-то типа 34,52 или 29,92, т.е. ДВЕ цифры до запятой и две после. При этом вполне допустимым является ввод чего-нибудь типа 0,47. Собственно проблема с формированием маски под все это. Если поставить "##.##", то пользователь страшно обижается, что ему никак не удается ввести 0 перед запятой, т.е. получить что-то типа 0,57 (идею объяснить пользователю, что в таком случае 0 можно не указывать прошу не высказывать). Если поставить что-нибудь типа "##,##0.00", то пользователь еще ничего не говорит, т.к. он такой вариант еще не видел, но то что будут крики "А почему это все реагирует по разному на ввод первой цифры!!!" и так прогнозируются. А как побороть "странное" поведение ЕМ в этом случая я не знаю. :( Можно, конечно попробовать вариант "##,##00.00"... но он мне не нравится.. хотя бы потому, что это "не красиво", да и вообще... а если возникнет необходимость вводить ТРИ цифры перед запятой? Как это можно реализовать я уже не знаю... буду признателен за просвещение моей дремучести... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2005, 12:52 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
поставь тогда обычный Едит и сам проверяй на правельность ввода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2005, 14:15 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
zuzuпоставь тогда обычный Едит и сам проверяй на правельность ввода. 1. Эта проблема в PB вообще что ли не решается??? 2. Какой обычный Едит? Маску снять? "Шурик, это же не наш метод!" (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2005, 14:48 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
А что, свойство Mask динамически изменять нельзя ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2005, 15:16 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
PaulJBА что, свойство Mask динамически изменять нельзя ? ... можно... все можно... но... вот как Вы себе это представляете? Т.е. в какой момент менять маску и с какой на какую? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2005, 15:51 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
Используйте маску: #0.#0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2005, 15:57 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
urvasИспользуйте маску: #0.#0 Этот вариант ничем не лучше другого случая, который я упоминал - "##,##0.00". Тут присутствует та же проблема - разная реакция на одинаковую визуальную ситуацию. Выражается это в том, что когда у нас есть "0,00" и курсор стоит перед первым символом, то в случае нажатия цифры отличной от 0 (например, 3) мы можем получить как 3,00, так и 30,00. Результат зависит от наших предыдущих действий. У меня это проявлялось очень четко (в смысле - это не случайный одноразовый глюк, а я могу его симитировать), хотя не всегда я мог симмитировать ситуацию с первого раза. Насколько я понимаю, проблема в том, что по разному оценивается положение курсора. Т.е. ВИЗУАЛЬНО он в обоих случаях в самом начале, а вот "физически" он, или между "#" и "0", или действительно в самом начале (это мое предположение, но даже если оно ложное, то мне не легче, т.к. проблема проявляется на практике). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2005, 16:22 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
Ну я бы поступил так: 1. сделал бы настройку маски как например ячеек в Excel-e. Пусть настраивают как хотят. 2. при получении фокуса - автоматическое выделение содержимого (в событии GetFocus вставил SelectText(1,999) ). Если я правильно понял проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2005, 18:41 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
Опередил предыдущий!!! В событии getfocus This.SelectText(1,0) А ввод заканчивать нажатием на клавишу разделителя целой и дробной части - ВСЕГДА! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2005, 18:46 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
PaulJBНу я бы поступил так: 1. сделал бы настройку маски как например ячеек в Excel-e. Пусть настраивают как хотят. 2. при получении фокуса - автоматическое выделение содержимого (в событии GetFocus вставил SelectText(1,999) ). Если я правильно понял проблему. хм... или я неправильно понял... или я неправильно объяснил проблему... 1. хм... это КАК? Т.е. реализовать механизм, когда пользователь в процессе выполнения приложения может менять маску на поле? Круто! :) Реализуемо, конечно... но: 1.1. Это подразумевает некоторые телодвижения в рамках всего проекта, т.к. в проекте все должно быть единообразно. 1.2. Меня заклюют (например, словами "Пользователь туп!") сразу после того, как я рискну повторить эту мысль. :) 1.3.Это подразумевает, что пользователь должен помнить/знать некоторый формат маски, согласно которому я потом буду извращаться. :) 2. А причем здесь получение фокуса? Проблема с разной реакцей на одинаковое визуальное состояние возникает не только в момент попадания в поле. Она может возникнуть по ходу нахождения в поле, т.е. - вводим что-нибудь, потом делитом или BackSpase`ом что-нибудь стираем и/или ходим стрелкой. Результат - вопли пользователя! А вообще... самое "лучшее" решение которое мне пришло в голову (если уж извращаться по крупному) это перейти на sle и повеситься на pbm_char. А там уж отслеживать все что душе угодно... но это уже какое-то редкостное извращение (имхо, конечно). urvasОпередил предыдущий!!! В событии getfocus This.SelectText(1,0) А ввод заканчивать нажатием на клавишу разделителя целой и дробной части - ВСЕГДА! Хм... и чем это лечит? В случае маски типа "#0.#0" (или похожей) разной реакции на одинаковую ситуация я могу добиться уже после того, как "погуляю" по полю... Ну а завершение потем нажатия "на клавишу разделителя целой и дробной части" означает, что я повесился на pbm_char... а раз так, то нафига ставить садисткие эксперименты над юзверем? Лучше уж тогда реализовать работу маски "ручками"... вот только тогда взникает недоуменный вопрос на тему editMask и его возможности. Хм... насколько я понял нормального варианта решения такой ситуации (простого установления некой маски хитрого формата и дальше EM сам отследить все правильно) просто нет... однако... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 13:08 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
Сделайте ДВА поля для целой и дробной части... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 13:33 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
а не пробывали маску 0#.## ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 13:44 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
Сам я закрыв глаза поставил "00.00"... было стыдно... но я вспомнил то как отображается формат даты и задавив совесть быстро закрыл форму :). Но если будет нормальное решение, то я исправлю. urvasСделайте ДВА поля для целой и дробной части... "Оооо... месье понимает толк в извращениях!" (с) :) Именно так у нас и сделано в другом месте :) leonaа не пробывали маску 0#.## Попробовал... удалось повторить эффект разной реакции. Хотя надо признать, что это получилось не сразу и я почти поверил, что это именно то, что спасет человечество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 14:05 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
Ну если EditMask такой дремучий..., почему (не в DW!!! ) в одну строку? Там все проще с форматами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 14:16 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
BadgerНу если EditMask такой дремучий..., почему ( не в DW!!! ) в одну строку? Там все проще с форматами. Дремучий это я :) а EditMask... может я просто "не умею его готовить"? Да неправильно это... мы используем собственные расширения стандартных объектов. Стиль должен быть везде один (в том числе и в программировании проекта). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 15:23 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
ДремучийСтиль должен быть везде один (в том числе и в программировании проекта). Не могу не согласиться :) Правда постепенно в "проектах" все начинают писать на универсальных объектах типа u_dw от PFC, а к нему наделать базовых dw для которых стиль форматов описан и храниться в базе данных, остальное лесом, в результате единообразие, и ненадо искать черную кошку в черной комнате..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 17:21 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
поддерживаю Дремучего -- editmask на форме сделан не для людей и не для программистов. Видимо, для программистов есть pbm_char + возможность писать программы.. неужли, в PFC точно такой же editmask? иногда надо его полодить на не DW, а но форму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 12:49 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
Так никто и не нашёл работающего решения? У меня ни один способ не подошёл... Есть идея при переходе в элемент dw выделять целую часть... Но может есть что проще? Там же не везде цифры да и как то плохо работает с датами и проч... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2007, 16:04 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
Не, ну должно же быть что-то простое... У меня пока только это: В событие itemfocuschanged //Event_ID: pbm_dwnitemchangefocus dec ld_value CHOOSE CASE dwo.name CASE 'column_name1' ld_value = this.object.column_name1[row] selecttext(1,Len(string(round(ld_value, 0)))) CASE 'column_name2' ld_value = this.object.column_name2[row] selecttext(1,Len(string(round(ld_value, 0)))) /*------------------------------*/ END CHOOSE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2007, 17:35 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
Тоже пришел к выводу что с маской для чисел в DW ничего хорошего не добиться и сделал просто Edit с форматом #,##0.00## и с автоселектом финансовое приложение - юзер`а вводят очень много чисел - все довольны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 00:21 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
А такую маску #,##0.00 Ваш ПБ понимает? 10ка понимает, так что попоробуйте, вдруг и 7ка тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 18:43 |
|
||
|
Проблема с формированием маски для элемента на форме типа EditMask
|
|||
|---|---|---|---|
|
#18+
breathemА такую маску #,##0.00 Ваш ПБ понимает? 10ка понимает, так что попоробуйте, вдруг и 7ка тоже. PB 9, Масска именно такая - в ней и проблема. С маской #,###.00 вводить числа куда удобнее, но заказчик упорно хочет видеть нолик. За что и страдает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 16:45 |
|
||
|
|

start [/forum/moderation_log.php?user_name=UserObject]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 441ms |
| total: | 608ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...