Страница 1 из 1

text field

Добавлено: 28 Август 2005, 19:05
gusag
Подскажите, пожалуйста, как ограничить в text field количество строчек? Если это невозможно, то как отслеживать каждое нажатие клавишь. Заранее спасибо. Два дня бьюсь. Ничего не получается. :cry:

Добавлено: 29 Август 2005, 0:28
Admin
Перевод строки = <13,10>

Добавлено: 29 Август 2005, 0:29
Admin
У полей ?Text есть ?Text{PROP:Lines} = количество строк в поле типа Текст

Добавлено: 29 Август 2005, 11:01
gusag
На такое свойство выдается ошибка, мол нет его.
Насчет перевода строки я в курсе. А как можно отслеживать каждое нажатие клавиши? Если проверять содержимое поля после нажатия кнопки ОК, то проблем нет. А во время набора? В том-то задача и стоит, что бы был счетчик, на котором юзер мог видеть сколько символов он может еще ввести. В поле entry есть такая штука как NewSelection, с помощью которой я делал подобное, а в текстовом ничего подобного не наблюдаю. :?

Добавлено: 29 Август 2005, 11:20
Гость
?Text{PROP:Lines} - есть свойство Text{PROP:LineCount} - но оно RO.
А отслеживать нажатия нужно как обычно и универсально - калбечиться текстовый контрол, в оконном обработчике событий обрабатываем WM_CHAR (в параметре WParam будет код нажатой кнопки)

Добавлено: 29 Август 2005, 13:00
Гость
В догонок - в аттаче простейший пример демонстрирующий написанное мною в предыдущем посте.

Добавлено: 29 Август 2005, 14:04
Admin

Код: Выделить всё

  ACCEPT
    CASE EVENT()
    OF EVENT:TextPressKey
      IF ?TextString{PROP:LineCount} > 3
        MESSAGE('Нельзя вводить больше трех строк!')
      END
    END
  END