Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Строки в Memo


Автор: Denwer 20.1.2008, 03:00
В Memo в столбик выстроены слова.
Как сделать чтобы все эти слова были
выстроены в одну строку через запятую.
Можно в Memo2, а можно и в txt. файл.

Автор: VICTAR 20.1.2008, 03:04
Код

Memo2.Text:=Memo1.Lines.CommaText;

Автор: Denwer 20.1.2008, 13:26
Всё получилось, но есть одно но...
Слова в конце строки обрываются, пол слова в конце и пол слова
уже в начале следующей.
Можно ли сделать так, чтобы в конце каждой строки после запятой
сделать эфект кнопки enter, типа перенос. 

Автор: tommy256 20.1.2008, 14:13
+#13 эффект Enter'a

Автор: Denwer 20.1.2008, 18:19
промучался, ничего не выходит.
Как это реализовать в коде?
Тоесть идём по строке с конца, как только встречается запятая то 'enter' . И так далее.

Автор: ivan219 20.1.2008, 18:50
Denwer, тебе нужно из столбика в строку через запятую???
Код

var
  S: String;
  I: Integer;
begin
 S := '';
 for I := 0 to Memo1.Lines.Count - 1 do
  S := S + Memo1.Lines.Strings[I] + ',';
end;

Автор: Denwer 20.1.2008, 20:35
Да всё, всё правильно. Ты меня понял. Но ещё хотелось бы вот так.

Cейчас вот так - http://totaloverdoses.narod.ru/begin.jpg
А хотелось бы вот так http://totaloverdoses.narod.ru/end.jpg

Тоесть переносос после запятой...

Автор: ivan219 20.1.2008, 22:29
У тебя вся строка считается как неразрывная вот и проблема.
Не очень хорошее но всёже решение:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  I, AWidth: Integer;
  S, S1: String;
begin
 S := '';
 AWidth := Memo2.Width - 10; // Отступ от правого края
 for I := 0 to Memo1.Lines.Count - 1 do
  begin
   S1 := Memo1.Lines.Strings[I] + ',';
   if Canvas.TextWidth(S + S1) > AWidth  then
    begin
     Memo2.Lines.Add(S);
     S := '';
    end;
   S := S + S1;
  end;
end;

Автор: Denwer 22.1.2008, 10:43
Работает, то что надо... спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)