| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > TMemo |
| Автор: Domain 19.3.2010, 09:25 |
| Всем привет. У меня возникла такая ситуация, когда в компоненте TMemo нужно сделать следующее: должна быть строчка, которую пользователь не может редактировать(стирать, вырезать и т.д.), но после этой строчки может писать текст все, что пожелает. Как реализовать подобную тему. Может посоветуете другой подход к реализации данной задачи. |
| Автор: Данкинг 19.3.2010, 11:17 |
| При клике на эту строчку делай Memo->ReadOnly. При выходе - наоборот. |
| Автор: Domain 19.3.2010, 13:03 |
| Ну не все так просто. Например в одной строке, пример: "стирать нельзя" >> "можно писать" и все это в одной строке, как например в консоли . |
| Автор: vikaz 19.3.2010, 13:37 |
| Просто так все это сделать не получиться, компонент не предназначен для таких ограничений на ввод. Вот предложения: 1. Создать массив StringList и согласовать его с событиями TMemo (клик мыши, перемещение кнопок и т.д. и т.п). В зависимости от манипуляции, производить определенные действия со строками StringList, а после этого перерисовывать Memo. Но это может привести к проблемам, при слишком большой объеме данных, будет видно перерисовку. 2. Доработать механизм, который предложил камрад, ранее. При перемещении по строке, парсить только её и проверять, можно ли в определенном месте вводить данные. |
| Автор: xvr 19.3.2010, 14:43 |
| Замени TMemo на TRichEdit, выдели свою строчку и поставь атрибут RichEdit->SelAttributes->Protected=true; |
| Автор: Domain 22.3.2010, 09:33 |
| Спасибо xvr, помогло |
| Автор: Domain 22.3.2010, 10:09 |
| только что теперь мне придется все время выделять текст и делать что-то подобное? можно как-то это автоматизировать? |
| Автор: xvr 22.3.2010, 14:35 | ||||
Угу
|