text field

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gusag

text field

Сообщение gusag »

Подскажите, пожалуйста, как ограничить в text field количество строчек? Если это невозможно, то как отслеживать каждое нажатие клавишь. Заранее спасибо. Два дня бьюсь. Ничего не получается. :cry:
Аватара пользователя
Admin
Администратор
Сообщения: 3960
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

Перевод строки = <13,10>
Аватара пользователя
Admin
Администратор
Сообщения: 3960
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

У полей ?Text есть ?Text{PROP:Lines} = количество строк в поле типа Текст
gusag

Сообщение gusag »

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

Сообщение Гость »

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

Сообщение Гость »

В догонок - в аттаче простейший пример демонстрирующий написанное мною в предыдущем посте.
Аватара пользователя
Admin
Администратор
Сообщения: 3960
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

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

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