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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2020, 17:47   #1
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 99
По умолчанию Перенос строки

Здравствуйте, пытаюсь сделать так, чтобы при достижении определённого количества символов в edit1 текст после последнего пробела переносился в edit2

Код:
if Length(Edit1.Text) > 23 then begin
  for i:=length(Edit1.Text) downto 1 do
  if Edit1.Text[i]= ' ' then
  Edit2.Text := copy(Edit1.Text, i+1, Length(Edit1.Text)-i);
но переносится после первого пробела.
Подскажите пожалуйста как исправить.
Alex711 вне форума Ответить с цитированием
Старый 09.03.2020, 17:54   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,674
По умолчанию

После нахождения пробела надо прервать цикл с помощью break.
Arigato вне форума Ответить с цитированием
Старый 09.03.2020, 21:21   #3
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 99
По умолчанию

Не получается.
Alex711 вне форума Ответить с цитированием
Старый 09.03.2020, 21:24   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,674
По умолчанию

Не получается break написать?
Arigato вне форума Ответить с цитированием
Старый 09.03.2020, 21:37   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,897
По умолчанию

Там же еще и скобки ставить нужно
northener вне форума Ответить с цитированием
Старый 09.03.2020, 22:00   #6
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 99
По умолчанию

Вот такая фигня получается когда текст доходит до 23-го символа.
Изображения
Тип файла: jpg Snap_2020.03.09_21h58m22s_001_.jpg (36.7 Кб, 0 просмотров)
Alex711 вне форума Ответить с цитированием
Старый 10.03.2020, 02:14   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,897
По умолчанию

Цитата:
Сообщение от Alex711 Посмотреть сообщение
Вот такая фигня получается когда текст доходит до 23-го символа.
Тут нужно смотреть больше кода.
northener вне форума Ответить с цитированием
Старый 10.03.2020, 23:02   #8
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 99
По умолчанию

Рабочий вариант:

Код:
 if Length(Edit1.Text) > 23 then
  for i:=23 downto 1 do
  if Edit1.Text[i]= ' ' then
  Break;
  Edit2.Text := copy(Edit1.Text, i+1, Length(Edit1.Text)-i);
Подсказали на другом форуме.
Alex711 вне форума Ответить с цитированием
Старый 10.03.2020, 23:48   #9
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,674
По умолчанию

Нехороший вариант. Лучше так:
Код:
 if Length(Edit1.Text) > 23 then
  for i:=23 downto 1 do
  if Edit1.Text[i]= ' ' then begin
    Edit2.Text := copy(Edit1.Text, i+1, Length(Edit1.Text)-i);
    Break;
  end;
Arigato вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос строки Unity64 Общие вопросы C/C++ 1 17.04.2015 05:47
перенос строки muham33 PHP 6 28.12.2012 07:24
Перенос строки в C++ MarksmaN-vip Общие вопросы C/C++ 2 05.06.2011 12:33
Перенос строки boostman Общие вопросы Delphi 2 08.08.2008 18:12