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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2011, 22:33   #1
meklias
 
Регистрация: 10.07.2010
Сообщений: 7
По умолчанию Сохранить содержимое memo с форматированием

Вопрос по компоненту memo,
как сохранить содержимое memo, не просто текст, а полностью. т.е. (шрифт и цвет текста, цвет самого memo и сам текст разумеется)).)
чтоб просто текст сохранить есть такоей код.
Memo1.Lines.SaveToFile('1.txt');
а загрузить текст:
Memo1.Lines.LoadFromFile('1.txt');
а как с другим? цвет, шрифт и т.д. помпгите пожалуйста.
meklias вне форума Ответить с цитированием
Старый 23.03.2011, 09:50   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

а как с другим? цвет, шрифт и т.д. помпгите пожалуйста.
например так
Код:
Memo.Lines.add('#FONT-COLOR=clRed');
memo.lines.Add('#FONT-SIZE=10');
Memo.lines.Savetofile

Мемо.Lines.Loadformfile
if memo.lines.strings[n][1]='#' then DecodeLine;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 24.03.2011, 16:05   #3
meklias
 
Регистрация: 10.07.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
а как с другим? цвет, шрифт и т.д. помпгите пожалуйста.
например так
Код:
Memo.Lines.add('#FONT-COLOR=clRed');
memo.lines.Add('#FONT-SIZE=10');
Memo.lines.Savetofile

Мемо.Lines.Loadformfile
if memo.lines.strings[n][1]='#' then DecodeLine;
почему здесь выдаёт ошибку??
Мемо.Lines.Loadformfile
meklias вне форума Ответить с цитированием
Старый 24.03.2011, 16:11   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Вообще-то, для этого придуман RichEdit и формат rtf.
_SERGEYX_ вне форума Ответить с цитированием
Старый 24.03.2011, 16:34   #5
meklias
 
Регистрация: 10.07.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Вообще-то, для этого придуман RichEdit и формат rtf.
спасибо. немного теперь другая проблема.
Код:
if memo1.lines.Strings[n][1]='#' then DecodeLine;
где [n] выдаёт ошибку. я понял что в var прописать n надо, пишу
n:string; он здесь значит выдаёт ошибку(((
meklias вне форума Ответить с цитированием
Старый 24.03.2011, 18:02   #6
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

N это ведь номер строки, должно быть целым числом. если Вы хотите считать какие-то строки на предмет наличия в них каких-то кодов (типа #) то надо в цикле считывать, где номер строки это будет переменная цикла, сам цикл от 0 до lines.count-1 , ну а если гарантированно строки с кодами - последние, то считываете так: lines[lines.count-1] - последняя строка lines[lines.count-2]- предпоследняя и т.д.
phomm вне форума Ответить с цитированием
Старый 24.03.2011, 19:41   #7
meklias
 
Регистрация: 10.07.2010
Сообщений: 7
По умолчанию

причём тут строки?
мне просто надо сохранить содержимое memo.
"сам текст, шрифт и цвет текста, и цвет самого memo",
как просто текст сохранить знаю, а как всё полностью нет.
помогите кто знает. скиньте код или расскажите!
заранье спасибо.
meklias вне форума Ответить с цитированием
Старый 24.03.2011, 21:25   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Memo.lines.Savetofile и Мемо.Lines.Loadformfile имеют текстовій параметр, задающий имя файл (желательно с полным путем, иначе можно концы не найти куда пишется или откуда читается)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.03.2011, 23:22   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Вот тебе пример для для присвоения цвета текста мемо :
Код:
procedure TForm1.Button3Click(Sender: TObject);
const
  c = '#Color="';
var
  s: string;
begin
  //Строка  #Color="clRed"
  s := Edit1.Text;
  if AnsiPos(c, s) > 0 then
  begin
    //удалем первую часть #Color="
    Delete(s, AnsiPos(c, s), Length(c));
    if AnsiPos('"', s) > 0 then
    begin
      //ищем закр ковычку..  "
      Delete(s, AnsiPos('"', s), Length('"'));
      Memo1.Font.Color := StringToColor(s); //присвайваем цвет
      // ShowMessage(s);
    end;
  end;
end;
Надеюсь смысл ясен.
Отрезаем пурвую часть, далее ищем последнюю, результат присвайваем.

остальсь добавить TStringList + цикл For..to..do, и удаление этих строк из файла перед выводом в мемо.
т.е. получается вся работа сводится к циклу StringList'у(посреднику) и показаннм мною примером.

А дальше сами.... ручками и головой. функции Copy.AnsiPos,Delete вам в помощь....

Последний раз редактировалось Человек_Борща; 24.03.2011 в 23:24.
Человек_Борща вне форума Ответить с цитированием
Старый 25.03.2011, 22:04   #10
meklias
 
Регистрация: 10.07.2010
Сообщений: 7
По умолчанию

всем спасибо)
meklias вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнить содержимое двух Memo. santaIsAbsent Общие вопросы Delphi 1 17.08.2010 11:33
как удалить содержимое ячейки, чтобы сохранить ее формулу mvl1000000 Microsoft Office Excel 5 06.03.2010 21:27
содержимое TStringList в Memo OPF_Nik Помощь студентам 5 31.01.2010 17:22
Как сохранить содержимое StringGrid-a в Unicode? iiunbreakableii Общие вопросы Delphi 2 28.08.2009 14:48
Добавить в Memo содержимое ListView Shouldercannon Общие вопросы Delphi 5 28.04.2009 16:32