Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объединить RTF 
:(
    Опции темы
GrigoriyFomin
Дата 11.2.2011, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 16.11.2010

Репутация: нет
Всего: нет



Подскажите ,есть ли красивый способ объединить текст в формате RTF  в один? Имеем 2 поля типа блоб с RTF, нужно их засунуть в один TRichEdit, сохранив оформление.
PM MAIL   Вверх
klyaksa
Дата 12.2.2011, 11:00 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 187
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



Через буфер обмена.
PM MAIL   Вверх
Snowy
Дата 12.2.2011, 13:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Вот так можно склеить 2 ричедита:
Код
procedure MergeRichText(re1, re2: TRichEdit);
  function AddRtfCallback(dwCookie: Longint; pbBuff: PByte; cb: Longint;  var pcb: Longint): Longint; stdcall;
  var s: TStream;
  begin
    s := TStream(dwCookie);
    Result := 0;
    with s do
    begin
      if (Size = Position) then
      begin
        pcb := 0;
        Exit;
      end
      else if (Size - Position) <= cb then
      begin
        pcb := Size;
        Read(pbBuff^, Size);
      end
      else begin
        pcb := cb;
        Read(pbBuff^, cb);
      end;
    end;
  end;
var
  ms: TMemoryStream;
  EditStream: TEditStream;
begin
  re1.SelStart := MAXINT;
  ms := TMemoryStream.Create;
  re2.Lines.SaveToStream(ms);
  ms.Position := 0;
  try
    EditStream.dwCookie := Longint(ms);
    EditStream.dwError := 0;
    EditStream.pfnCallback := @AddRtfCallback;
    SendMessage(re1.Handle, EM_STREAMIN, SF_RTF or SFF_SELECTION, Longint(@EditStream));
  finally
    ms.Free;
  end;
end;
2 параметра - ричедит в который текст добавить, второй - ричедит из которого текст добавить.
P.S. uses RichEdit;
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.