Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.85
dez
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 8
#1

Перенос строки в Memo1 при достижении определённой длины строки - Delphi

27.03.2012, 20:10. Просмотров 5591. Ответов 20
Метки нет (Все метки)

Здравствуйте.
помогите. забуксовал.

как правильно перенести строку в Memo1 при достижении определённой длины строки, измеряя её в пикселях?
строка в Memo имеет ограниченную длину, но должна переносится целым словом

Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Memo1Change(Sender: TObject);
var
  dlina_str1: integer;    // длина строки в пикселях
begin
  dlina_str1:= Canvas.TextWidth(Form1.Memo1.Text);
  Form1.Label15.Caption:= IntToStr(dlina_str1);      // контроль длины
 
  if Canvas.TextWidth(Form1.Memo1.Lines.Strings[0]) >100 then   // измерение длины строки
    ...   // не знаю
    
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2012, 20:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перенос строки в Memo1 при достижении определённой длины строки (Delphi):

как нарастить переменную при выборе определённой строки в Combobox - Delphi
как нарастить переменную при выборе определённой строки в Combobox !! очень нужно помигите !! спасибо

Парсинг данных с определенной строки из Memo1-Delphi - Delphi
Здравствуйте) Как сделать, чтобы после загрузки кода страницы в Memo1, парсились данные с определенной строки? Сделать чтобы просто...

Как удалить строки из memo1 которые есть в memo2 - Delphi
Как удалить строки из memo1 которые есть в memo2 Допустим у меня в memo1 строки: Test тест What А в memo2 : Tekst Test Omg...

Как убрать перенос строки в конце RichEdit при вставке из буфера обмена - Delphi
Здравствуйте, уважаемые форумчане! Подскажите пожалуйста: Копирую текст. Вставляю в своей программе в поле RichEdit. Текст...

Отображение определённой строки с сайта - Delphi
Всем бобра! :) Вобщем вопрос такой: Как можно найти определённую строку на сайте, и вывести её в текстове поле? То есть: Есть сайт,...

Два поля Memo. Требуется удалить все строки из memo2, которых нет в поле memo1 - Delphi
Собственно, на форме два поля memo. В memo1 какие-то строки и в поле memo2 также какие-то строки. Требуется обработать поле memo2 так,...

20
dez
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 8
31.03.2012, 07:33  [ТС] #16
всё это для того, чтобы оптимально заполнить строку. если в строке будет мало заглавных букв, то останется много свободного места. если много заглавных, то оно просто не влезет в ячейку.
0
Одиночка
3927 / 1852 / 88
Регистрация: 16.03.2012
Сообщений: 3,869
31.03.2012, 10:51 #17
dez: Как ты, наверное, уже читал ранее в событии OnChange Memo эту обработку делать нельзя. Моё мнение, нужно, как минимум, перекрывать метод переноса строки самого Memo. Опиши конкретнее, когда происходит загрузка текста в Word. Может там другой момент можно выбрать для переноса. И вообще текст сразу в Word писать, без перезаписи в Memo.
0
Lirrk
Нарушитель
393 / 310 / 4
Регистрация: 16.07.2011
Сообщений: 1,102
31.03.2012, 10:53 #18
dez,
Из всего того что вы понаписали я ни фига не понял. Если вам нужно оптимальное расположение в ячейках вордовской таблицы, ворд это может сделать сам. Давайте ему на съедение всё что угодно и он всё сделает. В крайнем случае можно подключить макрос. Вам же нужна только целая строка а не урезанная. так и так вы её целиков вставляете в ячейку. И я вам написал. Возьмите компонент TRichView. Он вам состряпает какую угодно таблицу в формате RTF. Вы сможете потом открыть эту таблицу где угодно и экспортировать хоть в ексель и хоть куда. А огород городить не стоит.
0
dez
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 8
31.03.2012, 13:14  [ТС] #19
В Memo у меня будет 3 строки. В шаблоне Word есть 3 ячейки. Текст в Memo не загружается из файла, а просто набивается вручную. Как состряпать макрос, чтобы он разбивал длинную строку на три ячейки я не знаю (в принципе это тоже самое, что и здесь).

Цитата Сообщение от Lirrk Посмотреть сообщение
Возьмите компонент TRichView
Не получается у меня поставить новый компонент. Всё время вылетает какая нибудь ошибка.
Может косячное качаю.
0
Lirrk
Нарушитель
393 / 310 / 4
Регистрация: 16.07.2011
Сообщений: 1,102
31.03.2012, 20:35 #20
Цитата Сообщение от dez Посмотреть сообщение
Как состряпать макрос, чтобы он разбивал длинную строку на три ячейки...
очевидно только вы и понимаeте, что вам надо. Но подход явно не тот.
Чтобы помочь, нужно понять суть. А вы кругами ходите вокруг какой-то точки...
У вас сверхсекретный проект?
И потом Word работает не с пикселями а с миллиметрами и сантиметрами.
0
Одиночка
3927 / 1852 / 88
Регистрация: 16.03.2012
Сообщений: 3,869
31.03.2012, 20:42 #21
dez: В продолжение предыдущего варианта. Можно сделать рабивку строк как и раньше в событии OnChange, но не заносить строки в Memo, а передавать в Word. А в мемо ставите скролы.
0
31.03.2012, 20:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 20:42
Привет! Вот еще темы с ответами:

Поиск в Memo1 перенос в Memo2 - Delphi
Здравствуйте! Нужна помощь. в Memo1 открывается текстовый файл со списком, нужно чтобы в Memo2 можно было вывести, например текст от 1 до...

Разделение строк на подстроки определённой длины - Delphi
Можете привести пример кода, разделяющего строки на подстроки определённой длины ? И что бы весь этот процесс происходил не в memo...

Ограничение длины строки в TRichEdit - Delphi
Всем привет! Вопрос такой, как можно ограничить количество символов в каждой строке? Нужно чтобы в каждой строке было не больше 32 символа....

длины всех слов строки. - Delphi
Дано предложение. Вывести на экран длины всех слов строки. в делфи.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.