Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Блокировка ввода символа в DW / 20 сообщений из 20, страница 1 из 1
22.09.2008, 18:07
    #35552847
vovan_z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Друзья, может кто сталкивался такой проблемой, подскажите как решить.
Мне нужно сделать что бы в строковое поле DW ножно было ввести только символы от 1 до 9 и '*'. Т.е. нужна блокировка именно на этапе нажатия клавиш. спасибо
...
Рейтинг: 0 / 0
22.09.2008, 18:46
    #35552923
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Ищи про PeekMessage API...
...
Рейтинг: 0 / 0
22.09.2008, 19:02
    #35552945
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Перехватить EditChanged event и возвращать через settext() и selecttext() старое значение и курсор, если введен не тот символ.
...
Рейтинг: 0 / 0
22.09.2008, 19:04
    #35552951
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Anatoly MoskovskyПерехватить EditChanged event и возвращать через settext() и selecttext() старое значение и курсор, если введен не тот символ.
Учесть, что при вставке из клипборда может за раз вставиться несколько символов.
...
Рейтинг: 0 / 0
22.09.2008, 19:38
    #35552995
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Anatoly MoskovskyПерехватить EditChanged event и возвращать через settext() и selecttext() старое значение и курсор, если введен не тот символ.
Так можно, но поздно :-)
...
Рейтинг: 0 / 0
22.09.2008, 20:30
    #35553048
breathem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Код: plaintext
1.
2.
3.
4.
5.
ItemChanged event (DataWindows)

Return value
 0   (Default) Accept the data value
 1   Reject the data value and do not allow focus to change
 2   Reject the data value but allow the focus to change
...
Рейтинг: 0 / 0
22.09.2008, 21:05
    #35553079
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
breathem
Код: plaintext
1.
2.
3.
4.
5.
ItemChanged event (DataWindows)

Return value
 0   (Default) Accept the data value
 1   Reject the data value and do not allow focus to change
 2   Reject the data value but allow the focus to change


И так можно, но поздно :-)
...
Рейтинг: 0 / 0
23.09.2008, 00:12
    #35553235
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Приблизительно вот так:
...
Рейтинг: 0 / 0
23.09.2008, 10:48
    #35553671
vovan_z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Спасибо, Филипп
все заработало
...
Рейтинг: 0 / 0
23.09.2008, 11:43
    #35553876
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Простите что вмешиваюсь в вашу идиллию, но есть вопрос.
А что будет если юзер вставит текст из клипборда?
...
Рейтинг: 0 / 0
23.09.2008, 12:09
    #35553948
vovan_z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
правильно что вмешиваетесь!
да, через клипбоард эти блокировки не срабатывают!
нодо искать способ проверки в буфере обмена и блокировки вставки из клип боард!
может кто уже делал?
...
Рейтинг: 0 / 0
23.09.2008, 12:58
    #35554077
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
vovan_zда, через клипбоард эти блокировки не срабатывают!
нодо искать способ проверки в буфере обмена и блокировки вставки из клип боард!
может кто уже делал?
Потому что слишком низкоуровневое API используется.
Реализуйте то, что я предложил выше.
...
Рейтинг: 0 / 0
23.09.2008, 12:59
    #35554082
Dmitry..
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
я когда-то задавался такой-же задачей

делал DLL которая перехватывала нажатия клавиш в ДВ
перед на смене фокуса/колонки в ДВ эта ДЛЛ информировалась надо или нет применять маску к текущему полю.
решение так-себе но работало.

если в PBM_DWNKEY можно перехватывать нажатие CTRL+V и SHIFT+Ins, то возможно проще будет это реализовать на ПБ.

для начала, можно просто заблокировать клавиши вставки из клипборда (перехватывать и ничего не делать).

ЗЫ: есть ф-ции получения содержимого клипборда.
...
Рейтинг: 0 / 0
23.09.2008, 14:31
    #35554442
SasaR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Не забыть еще клик мышкой "Paste"...
Кажись решение Анатолия самое-то.
...
Рейтинг: 0 / 0
23.09.2008, 16:22
    #35554843
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Anatoly MoskovskyПростите что вмешиваюсь в вашу идиллию, но есть вопрос.
А что будет если юзер вставит текст из клипборда?

А это не будет ПЕЧАТАНИЕМ на клавиатуре, посему делать нужно это:
Код: plaintext
1.
2.
3.
4.
5.
6.
breathem 
ItemChanged event (DataWindows)

Return value
 0   (Default) Accept the data value
 1   Reject the data value and do not allow focus to change
 2   Reject the data value but allow the focus to change

И делать это в сочетании с PeekMessage.
...
Рейтинг: 0 / 0
23.09.2008, 18:24
    #35555206
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Филипп Anatoly MoskovskyПростите что вмешиваюсь в вашу идиллию, но есть вопрос.
А что будет если юзер вставит текст из клипборда?

А это не будет ПЕЧАТАНИЕМ на клавиатуре

Формально вы правы. А по сути ваше решение не полное.
...
Рейтинг: 0 / 0
24.09.2008, 12:56
    #35556553
vovan_z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Анатолий, большое спасибо за исчерпывающие ответы
...
Рейтинг: 0 / 0
29.12.2008, 01:02
    #35738979
Буу
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
А где находится это pbm_dwnkey?
...
Рейтинг: 0 / 0
29.12.2008, 02:37
    #35739004
18-я весна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
БууА где находится это pbm_dwnkey?
В объекте типа Datawindow создайте новое событие с любым именем и назначьте ему event ID pbm_dwnkey.
...
Рейтинг: 0 / 0
29.12.2008, 08:59
    #35739096
Буу
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка ввода символа в DW
Спасибо!
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Блокировка ввода символа в DW / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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