![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать, есть ли в 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;