Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2011, 18:48   #1
kirsan007
Пользователь
 
Аватар для kirsan007
 
Регистрация: 24.02.2011
Сообщений: 28
Восклицание Tmemo - перенос строк при вводе.

В общем, подскажите, как организовать перенос строк при вводе текста в мемо.

Допустим если вписал в мемо 40 символов тебя перекинуло на новую строку и ты продолжаешь писать с новой строки.
Отаку
kirsan007 вне форума Ответить с цитированием
Старый 06.04.2011, 18:56   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

memo.wordwrap:=false or true;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 06.04.2011, 18:58   #3
kirsan007
Пользователь
 
Аватар для kirsan007
 
Регистрация: 24.02.2011
Сообщений: 28
По умолчанию

Спасибо кэп. Но я вроде попросил перенос после определенного кол-ва символов.
В моем случае этих символов должно быть 45.
Отаку
kirsan007 вне форума Ответить с цитированием
Старый 06.04.2011, 19:06   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

значит обрабатывайте событие OnKeyPress
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.04.2011, 19:18   #5
kirsan007
Пользователь
 
Аватар для kirsan007
 
Регистрация: 24.02.2011
Сообщений: 28
По умолчанию

Я и спрашиваю как это сделать =(
Помогите, КОДОМ.
Отаку
kirsan007 вне форума Ответить с цитированием
Старый 06.04.2011, 19:21   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

решение зависит от того что именно надо.
1. преобразовать УЖЕ введенный текст так чтобы все строки Б=45
2. контроль ввода (б45) для ТЕКУЩЕЙ строку.
Код:
n:=memo.selstart;
s:=copy(memo.text,n-45,45);
// здесь надо помнить что при первом вводе унас НЕТ 45 знаков в мемо.
n:=pos(#13,s);
if n<=0 then begin
 memo.seltext:=#13;
 memo.selstart:=selstart+1;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 06.04.2011, 19:26   #7
kirsan007
Пользователь
 
Аватар для kirsan007
 
Регистрация: 24.02.2011
Сообщений: 28
По умолчанию

Мне необходимо ВО ВРЕМЯ ВВОДА перекидывать на новую строку если ты ввел более 45 символов.
Отаку
kirsan007 вне форума Ответить с цитированием
Старый 06.04.2011, 19:28   #8
kirsan007
Пользователь
 
Аватар для kirsan007
 
Регистрация: 24.02.2011
Сообщений: 28
По умолчанию

Могу анимацию сделать чтоб наглядно показать..
Отаку
kirsan007 вне форума Ответить с цитированием
Старый 06.04.2011, 20:28   #9
kirsan007
Пользователь
 
Аватар для kirsan007
 
Регистрация: 24.02.2011
Сообщений: 28
По умолчанию

В обработчик Memo1KeyPress вписал

Код:
if Length(memo1.Lines[0]) = 45 then begin
 memo1.Lines.Add('');
В итоге после ввода 45 символов перекидывает на новую строку
И затем после каждого введеного символа идет переход на новую строку т.к
Length(memo1.Lines[0]) уже равен 45 вследствии чего выполняется переход.

Как это обойти?
Отаку
kirsan007 вне форума Ответить с цитированием
Старый 06.04.2011, 20:53   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

1. Берем последние 45 знаков (selStart Copy)
2. ищем среди них начало строки(#13) (pos)
3. если есть вставляем в текущую позицию начало строки (seltext)
4. сдвигаем текущую позицию (selstart)
Это алгоритм. КОД был выше.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос строк с одного листа на другой при заданном условии dedelev Microsoft Office Excel 2 11.01.2011 12:47
*.ini, TMemo, Перенос строки skalt12 Общие вопросы Delphi 11 27.08.2010 14:34
перенос строк удаление ненужных строк HelperAwM Microsoft Office Excel 5 26.06.2010 18:42
При условии перенос строк из одного листа в другой Ilya_L Microsoft Office Excel 5 19.06.2010 06:15
Ошибка при вводе даты tools SQL, базы данных 6 05.11.2009 21:12