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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2011, 15:13   #1
hitman1234
 
Регистрация: 23.05.2011
Сообщений: 3
По умолчанию Перенос строки Memo

Здравствуйте.
На фомне 2 Мемо и Edit. В первом ввожу текст. После того ввожу слово в Edit,e. Нужно, чтобы В Memo1 находились строки с этим словом и переносились в Memo2.
Сделал вот что:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
if (Memo1.Lines.Count > 0) and (Memo2.Lines.Count > 0) then
begin
Memo2.Lines.Clear;
for i:= 1 to Memo1.Lines.Count do
if Pos(edit1.Text, Memo1.Lines.Strings[i]) <> 0 then
Memo2.Lines.Add(Memo1.Lines.Strings[i]);
end;
end;
Что я делаю не так ?
hitman1234 вне форума Ответить с цитированием
Старый 24.05.2011, 15:24   #2
ИринаForeve
Пользователь
 
Аватар для ИринаForeve
 
Регистрация: 27.04.2009
Сообщений: 48
По умолчанию

Ошибка:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
if (Memo1.Lines.Count > 0) then
begin
Memo2.Lines.Clear;
for i:= 1 to Memo1.Lines.Count do
if Pos(edit1.Text, Memo1.Lines.Strings[i]) <> 0 then
Memo2.Lines.Add(Memo1.Lines.Strings[i]);
end;
end;
Второе поле не нужно проверять на содержание (оно же может быть и пустым, разве нет?).
Но нужно учесть что если предложение будет на две строки, и в нем искомое слово, то перенесется только часть предложения.
ИринаForeve вне форума Ответить с цитированием
Старый 24.05.2011, 15:40   #3
hitman1234
 
Регистрация: 23.05.2011
Сообщений: 3
По умолчанию

Спасибо, а как сделать так, чтобы переносилось всё предложение, если предложение на 2 строки или больше
hitman1234 вне форума Ответить с цитированием
Старый 24.05.2011, 15:49   #4
ИринаForeve
Пользователь
 
Аватар для ИринаForeve
 
Регистрация: 27.04.2009
Сообщений: 48
По умолчанию

Если в задании ничего по этому поводу не сказано, то просто установить формат ввода в виде сообщения, допустим разместить метку над полем, его в свою очередь сделать пошире, на сколько возможно, а в метке написать "Каждое предложение вводить в одну строку, новое предложение через "Enter" с новой строки".
Либо добавлять поиск точки в предложение, тогда тоже устанавливать формат ввода, что в конце предложения обязательно ставить точку...
в общем то вариантов решения много, но нужно отталкиваться от задания.
ИринаForeve вне форума Ответить с цитированием
Старый 24.05.2011, 16:22   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

попробуйте так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
  Memo2.Lines.Clear;
  for i:= 0 to Memo1.Lines.Count-1 do
       if Pos(edit1.Text, Memo1.Lines[i]) > 0 then
               Memo2.Lines.Add(Memo1.Lines[i]);
end;
p.s. ваши ошибки: не надо чистить Memo2 в цикле
и строчки в Memo нумеруются от нуля.
индекс первой - 0
индекс последней, соответственно Memo1.Lines.Count-1
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Memo, перенос строк Dominatorsha Помощь студентам 4 29.12.2010 17:30
Memo перенос строк. mt10forex Помощь студентам 7 07.07.2010 09:23
memo поиск и перенос строки andrey poki Общие вопросы Delphi 4 22.03.2009 06:54
Перенос строки boostman Общие вопросы Delphi 2 08.08.2008 18:12