powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Блокировка ввода символа в DW
20 сообщений из 20, страница 1 из 1
Блокировка ввода символа в DW
    #35552847
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья, может кто сталкивался такой проблемой, подскажите как решить.
Мне нужно сделать что бы в строковое поле DW ножно было ввести только символы от 1 до 9 и '*'. Т.е. нужна блокировка именно на этапе нажатия клавиш. спасибо
...
Рейтинг: 0 / 0
Блокировка ввода символа в DW
    #35552923
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ищи про PeekMessage API...
...
Рейтинг: 0 / 0
Блокировка ввода символа в DW
    #35552945
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перехватить EditChanged event и возвращать через settext() и selecttext() старое значение и курсор, если введен не тот символ.
...
Рейтинг: 0 / 0
Блокировка ввода символа в DW
    #35552951
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyПерехватить EditChanged event и возвращать через settext() и selecttext() старое значение и курсор, если введен не тот символ.
Учесть, что при вставке из клипборда может за раз вставиться несколько символов.
...
Рейтинг: 0 / 0
Блокировка ввода символа в DW
    #35552995
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyПерехватить EditChanged event и возвращать через settext() и selecttext() старое значение и курсор, если введен не тот символ.
Так можно, но поздно :-)
...
Рейтинг: 0 / 0
Блокировка ввода символа в DW
    #35553048
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
Блокировка ввода символа в DW
    #35553079
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Блокировка ввода символа в DW
    #35553235
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приблизительно вот так:
...
Рейтинг: 0 / 0
Блокировка ввода символа в DW
    #35553671
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, Филипп
все заработало
...
Рейтинг: 0 / 0
Блокировка ввода символа в DW
    #35553876
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите что вмешиваюсь в вашу идиллию, но есть вопрос.
А что будет если юзер вставит текст из клипборда?
...
Рейтинг: 0 / 0
Блокировка ввода символа в DW
    #35553948
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильно что вмешиваетесь!
да, через клипбоард эти блокировки не срабатывают!
нодо искать способ проверки в буфере обмена и блокировки вставки из клип боард!
может кто уже делал?
...
Рейтинг: 0 / 0
Блокировка ввода символа в DW
    #35554077
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vovan_zда, через клипбоард эти блокировки не срабатывают!
нодо искать способ проверки в буфере обмена и блокировки вставки из клип боард!
может кто уже делал?
Потому что слишком низкоуровневое API используется.
Реализуйте то, что я предложил выше.
...
Рейтинг: 0 / 0
Блокировка ввода символа в DW
    #35554082
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я когда-то задавался такой-же задачей

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

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

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

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

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

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


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