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

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

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

Восстановить пароль

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

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

Цитата:
Сообщение от evg_m Посмотреть сообщение
1. Берем последние 45 знаков (selStart Copy)
2. ищем среди них начало строки(#13) (pos)
3. если есть вставляем в текущую позицию начало строки (seltext)
4. сдвигаем текущую позицию (selstart)
Это алгоритм. КОД был выше.
Пасиб, твой код был самым стоящим. Но всё равно если после перехода на новую строку перейти к предыдущей и отредактировать её то можно более 45 символов ввести.
Отаку
kirsan007 вне форума Ответить с цитированием
Старый 06.04.2011, 21:18   #12
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Код:
if Length(memo1.Lines[memo1.Lines.count-1]) = 45 then
 memo1.Lines.Add('');
??
Но только при возврате косяки могут быть. Но их зарихтовать можно, если сесть и подумать.
Слушай, а какая тебе разница, код тебе кидают или алгоритм? Проще пареной репы алгоритм в код переделать.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 06.04.2011 в 21:29.
MyLastHit вне форума Ответить с цитированием
Старый 06.04.2011, 21:19   #13
kirsan007
Пользователь
 
Аватар для kirsan007
 
Регистрация: 24.02.2011
Сообщений: 28
По умолчанию

Ну я дошел до
Код:
if Length(memo1.Lines[memo1.Lines.count]) = 45 then begin
 memo1.Lines.Add('');
На новую строку переносит. Но опять же проблема с редактирование предыдущих строк.
Отаку
kirsan007 вне форума Ответить с цитированием
Старый 06.04.2011, 21:46   #14
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,544
По умолчанию

Для НЕПОСЛЕДНЕЙ строки, а точнее НЕПОСЛЕДНЕЙ позиции в строке надо смотреть (искать начало строки) не только назад(seltext -45)
Цитата:
1. Берем последние 45 знаков (selStart Copy)
но и вперед.и учbтывать ОБЩУЮ длину строки. (от #13 до#13). Доработка алгоритма и кода остается для самостоятельной работы.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 06.04.2011, 21:53   #15
kirsan007
Пользователь
 
Аватар для kirsan007
 
Регистрация: 24.02.2011
Сообщений: 28
По умолчанию

Мало что понял.. ну да ладно.
Сузил мемо + увеличил шрифт.. ну и пойдёт.
Всем спасибо.
Отаку
kirsan007 вне форума Ответить с цитированием
Старый 07.04.2011, 03:40   #16
custanator
Новичок
Джуниор
 
Регистрация: 06.04.2011
Сообщений: 17
По умолчанию

KeyPress
if length(Memo1.Text) mod 45+2 = 0 then (2 на спец символы)
begin
Memo1.Lines.Add('');
end;
custanator вне форума Ответить с цитированием
Старый 07.04.2011, 11:26   #17
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,544
По умолчанию

Цитата:
Memo1.Lines.Add('');
Добавит пустые строки в конце
НО никак не повлияет на ранее введенные неверные(>45) строки.
или при вводе не в конец текста.

Цитата:
if length(Memo1.Text) mod 45+2 = 0
А если у человека есть 45 (45+2) строк по одному символу.
то тоже надо добавить?
программа — запись алгоритма на языке понятном транслятору
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