Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать, есть ли в TRichEdit двоичные объекты [D7, WinXP]


Tack ©   (2007-06-14 19:22:00) 

Есть TRichEdit, в него юзеры пишут текст и вставляют двоичные OLE-объекты (картинки, формулы и т.д.). Как программе можно узнать, что в данном редакторе есть какой-нибудь из двоичных объектов кроме текста?


Tack   (2007-06-15 20:47:00) [1]

Разобрался со спецификацией RTF, вот результат. Надо просто проанализироввать RTF-содержимое на предмет RTF-ключей \pict (для картинок), \object (для OLE), \intbl (для таблиц без текста)

function RTFTextHasEmbeddedOLE(sRTF: String): Boolean;
const
 NToFind = 3;
 MaxSWidth = 6;
 SToFind: array [0..(NToFind - 1)] of String[MaxSWidth] =
   ('pict', 'object', 'intbl');
var
 i, k: Integer;
begin
 // Делает простой поиск последовательностей \pict, \object, \intbl
 // Если они присутствуют, то OLE-объекты тоже присутствуют
 Result := False;
 for i := 0 to Length(sRTF) - 1 do
   if sRTF[i] = '\' then
   begin
     for k := 0 to NToFind - 1 do
     begin
       if SToFind[k] = Copy(sRTF, i + 1, Length(SToFind[k])) then
       begin
         Result := True;
         Exit;
       end;
     end;
   end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо