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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2012, 23:51   #1
Nub200
Новичок
Джуниор
 
Аватар для Nub200
 
Регистрация: 01.11.2012
Сообщений: 2
По умолчанию Копирование из одного RichEdit в другой

Здравствуйте, возникла проблемка с передачей свойств от одного RichEdit к другому (чтоб сохранялись разные размеры шрифта, цвета, стиля и т.п.). При написании данного кода:

Код:
procedure TMainForm.MainButtonClick(Sender: TObject);

var
MemoryStream: TMemoryStream;

begin

MemoryStream:=TMemoryStream.Create;

try
    MainRE.Lines.SaveToStream(MemoryStream);
    MemoryStream.Seek(0,soFromBeginning);
    SecRE.Lines.LoadFromStream(MemoryStream)}
  finally
    MemoryStream.Free;
      end;

MainRE.Text:='';

end;
Все копирует, но необходимо, чтоб текст не затерался, а добавлялся во втором RichEdit.
Попробовал второй код, но там явно что-то накосячил:

Код:
procedure TMainForm.MainButtonClick(Sender: TObject);

var
MemoryStream, SecStream:TMemoryStream;

begin

MemoryStream:=TMemoryStream.Create;
SecStream:=TMemoryStream.Create;
  try
  MemoryStream.Seek(0, soFromBeginning);
  SecStream.Seek(0, soFromBeginning);
  MainRE.Lines.SaveToStream(MemoryStream);
  SecRE.Lines.SaveToStream(SecStream);
  SecStream.Write(MemoryStream, SecStream.Size);
  SecRE.Lines.LoadFromStream(SecStream);
finally
    MemoryStream.Free;
    SecStream.Free;
  end;

MainRE.Text:='';

end;
Очень хочется услышать мнение специалистов.)
За ранее, спасибо.

Последний раз редактировалось artemavd; 20.11.2012 в 12:27.
Nub200 вне форума Ответить с цитированием
Старый 22.11.2012, 10:20   #2
Nub200
Новичок
Джуниор
 
Аватар для Nub200
 
Регистрация: 01.11.2012
Сообщений: 2
По умолчанию

И снова здравствуйте. Копался со своей проблемкой и дошел до следующего.

Код:

procedure TMainForm.MainButtonClick(Sender: TObject);

var
MemoryStream, SecStream:TMemoryStream;
len: integer;
begin

MemoryStream:=TMemoryStream.Create;
SecStream:= TMemoryStream.Create;

try

//SecStream.Seek(0,soFromBeginning);
MainRE.Lines.SaveToStream(MemoryStr eam);
MemoryStream.Seek(0,soFromBeginning );
SecRE.Lines.SaveToStream(SecStream) ;
len:=length(SecRE.text);
SecStream.position:=len;
SecStream.CopyFrom(MemoryStream,0);
SecStream.Position:=0;
SecRE.Lines.LoadFromStream(SecStrea m);

finally
SecStream.Free;
MemoryStream.Free;
end;

MainRE.Text:='';

end;


Когда поле ввода, куда все будет копироваться (SecRE) еще пустое, то все передается без проблем, а вот когда там уже есть текст, то получаю вместо добавления текста следующее:

{\rt{\rtf1\ansi\ansicpg1251\deff0\d eflang1049{\fonttbl{\f0\fnil\fchars et204 Tahoma;}{\f1\fnil Tahoma;}}
{\colortbl ;\red255\green0\blue0;}
\viewkind4\uc1\pard\cf1\b\f0\fs24\' ef\'e0\'f1\'ee\'f7\'ea\'e0\cf0\b0\f 1
\par }


Подскажите, что не так делаю?)
Nub200 вне форума Ответить с цитированием
Старый 22.11.2012, 12:06   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Так не получится. В rtf-формате есть своя структура с заголовком, блоками описания фонтов и собственно текста. Простое объединение двух таких кусков не даст новую rtf-структуру. Скорее всего программно по-символьного перетаскивать данные из одного RichEdit в другой с анализом формата. Возможно найдете продвинутый аналог RichEdit-а, где это реализовано
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование с одного листа на другой + вычисления rus65 Microsoft Office Excel 4 25.07.2011 14:34
копирование из одного двумерного массива в другой Sanprof Общие вопросы Delphi 7 08.10.2010 17:31
копирование ячейки с одного листа в другой RECit Microsoft Office Excel 7 02.08.2010 20:37
Копирование данных из одного файла в другой! vipcrash Microsoft Office Excel 17 23.01.2010 21:11
Копирование информации из одного листа на другой Юрийpirs2008 Microsoft Office Excel 6 24.03.2009 07:59